functype 0.46.1 → 0.47.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.
- package/dist/{Functype-Dc440LS5.d.ts → Functype-Boat1fLo.d.ts} +1 -1
- package/dist/Valuable-DeccMyYD.js +13 -0
- package/dist/cli/exports.d.ts +39 -0
- package/dist/cli/exports.js +1 -0
- package/dist/cli/index.js +5 -642
- package/dist/do/index.d.ts +1 -1
- package/dist/either/index.d.ts +2 -2
- package/dist/either/index.js +1 -1
- package/dist/full-interfaces-D7DbT-2A.js +638 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/list/index.d.ts +2 -2
- package/dist/list/index.js +1 -1
- package/dist/map/index.d.ts +2 -2
- package/dist/map/index.js +1 -1
- package/dist/option/index.d.ts +2 -2
- package/dist/option/index.js +1 -1
- package/dist/set/index.d.ts +2 -2
- package/dist/set/index.js +2 -2
- package/dist/try/index.d.ts +2 -2
- package/dist/try/index.js +1 -1
- package/dist/tuple/index.d.ts +1 -1
- package/package.json +11 -6
- package/dist/Valuable-BlffnwkD.js +0 -13
- /package/dist/{Typeable-E4-aX9Gc.d.ts → Typeable-lfO2nRVW.d.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Brand } from "./branded/index.js";
|
|
2
|
-
import { a as Serializable, c as Foldable, l as Type, n as Typeable, s as Pipe } from "./Typeable-
|
|
2
|
+
import { a as Serializable, c as Foldable, l as Type, n as Typeable, s as Pipe } from "./Typeable-lfO2nRVW.js";
|
|
3
3
|
import { Try } from "./try/index.js";
|
|
4
4
|
import { Set } from "./set/index.js";
|
|
5
5
|
import { Option } from "./option/index.js";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{Brand as e}from"./branded/index.js";import{n as t,t as n}from"./Companion-VlxcFhzb.js";import{None as r,Option as i,Some as a}from"./option/index.js";import{Try as o}from"./try/index.js";import{List as s}from"./list/index.js";import{Left as c,Right as l}from"./either/index.js";import u from"safe-stable-stringify";const d=e=>{let t=Error(e);return t.name=`ParseError`,t},ee=(e,t)=>({toJSON:()=>JSON.stringify({_tag:e,value:t}),toYAML:()=>`_tag: ${e}\nvalue: ${u(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:e,value:t})).toString(`base64`)}),te=e=>({toJSON:()=>JSON.stringify(e),toYAML:()=>Object.entries(e).map(([e,t])=>`${e}: ${u(t)}`).join(`
|
|
2
|
+
`),toBinary:()=>Buffer.from(JSON.stringify(e)).toString(`base64`)}),ne=(e,t)=>t(JSON.parse(e)),re=(e,t)=>{let n=e.split(`
|
|
3
|
+
`),r={};for(let e of n){let t=e.indexOf(`: `);if(t===-1)continue;let n=e.substring(0,t),i=e.substring(t+2);if(!i){r[n]=null;continue}try{r[n]=i===`null`?null:JSON.parse(i)}catch{r[n]=i}}return t(r)},ie=(e,t)=>ne(Buffer.from(e,`base64`).toString(),t),ae=e=>({fromJSON:t=>ne(t,e),fromYAML:t=>re(t,e),fromBinary:t=>ie(t,e)}),oe=e=>{let t=e;return{get(){return t},set(e){t=e},update(e){t=e(t)},getAndSet(e){let n=t;return t=e,n},updateAndGet(e){return t=e(t),t},getAndUpdate(e){let n=t;return t=e(t),n},compareAndSet(e,n){return t===e?(t=n,!0):!1},modify(e){let[n,r]=e(t);return t=n,r}}},f=n(oe,{of:e=>oe(e)}),p=(e=0)=>{let t=f(e),n=e;return{get:()=>t.get(),set:e=>t.set(e),increment:()=>t.updateAndGet(e=>e+1),decrement:()=>t.updateAndGet(e=>e-1),reset:()=>t.set(n),compareAndSet:(e,n)=>t.compareAndSet(e,n)}},se=()=>{let e=f([]);return{add:t=>e.update(e=>[...e,t]),addAll:t=>e.update(e=>[...e,...t]),build:()=>e.get(),clear:()=>e.set([]),size:()=>e.get().length}},m=e=>{let t={_tag:`LazyList`,[Symbol.iterator]:()=>e[Symbol.iterator](),map:t=>m((function*(){for(let n of e)yield t(n)})()),flatMap:t=>m((function*(){for(let n of e)yield*t(n)})()),filter:t=>m((function*(){for(let n of e)t(n)&&(yield n)})()),take:t=>m((function*(){let n=p(0);for(let r of e){if(n.get()>=t)break;yield r,n.increment()}})()),drop:t=>m((function*(){let n=p(0);for(let r of e)n.get()>=t&&(yield r),n.increment()})()),takeWhile:t=>m((function*(){for(let n of e){if(!t(n))break;yield n}})()),dropWhile:t=>m((function*(){let n=f(!0);for(let r of e)n.get()&&t(r)||(n.set(!1),yield r)})()),concat:t=>m((function*(){yield*e,yield*t})()),zip:t=>m((function*(){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let e=n.next(),t=r.next();if(e.done||t.done)break;yield[e.value,t.value]}})()),toList:()=>s(Array.from(e)),toArray:()=>Array.from(e),forEach:t=>{for(let n of e)t(n)},reduce:(t,n)=>{let r=f(n);for(let n of e)r.set(t(r.get(),n));return r.get()},find:t=>{for(let n of e)if(t(n))return i(n);return i.none()},some:t=>{for(let n of e)if(t(n))return!0;return!1},every:t=>{for(let n of e)if(!t(n))return!1;return!0},count:()=>{let t=p(0);for(let n of e)t.increment();return t.get()},get head(){let t=e[Symbol.iterator]().next();return t.done?void 0:t.value},get headOption(){let t=e[Symbol.iterator]().next();return t.done?i.none():i(t.value)},get last(){let t;for(let n of e)t=n;return t},get lastOption(){let t=f(void 0),n=f(!1);for(let r of e)t.set(r),n.set(!0);return n.get()?i(t.get()):i.none()},get tail(){return m((function*(){let t=e[Symbol.iterator]();t.next();let n=t.next();for(;!n.done;)yield n.value,n=t.next()})())},get init(){let t=Array.from(e);return m(t.length===0?[]:t.slice(0,-1))},takeRight:t=>{let n=Array.from(e);return m(t<=0?[]:n.slice(-t))},reverse:()=>m(Array.from(e).reverse()),distinct:()=>m((function*(){let t=new globalThis.Set;for(let n of e)t.has(n)||(t.add(n),yield n)})()),zipWithIndex:()=>m((function*(){let t=p(0);for(let n of e)yield[n,t.get()],t.increment()})()),fold:(t,n)=>{let r=e[Symbol.iterator]().next();return r.done?t():n(r.value)},foldLeft:t=>n=>{let r=f(t);for(let t of e)r.set(n(r.get(),t));return r.get()},foldRight:t=>n=>Array.from(e).reduceRight((e,t)=>n(t,e),t),pipe:e=>e(t),serialize:()=>{let t=Array.from(e);return{toJSON:()=>JSON.stringify({_tag:`LazyList`,value:t}),toYAML:()=>`_tag: LazyList\nvalue: ${u(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:`LazyList`,value:t})).toString(`base64`)}},toString:()=>{let t=[],n=p(0),r=f(!1);for(let i of e)if(n.get()<10)t.push(i),n.increment();else{r.set(!0);break}let i=t.map(e=>String(e)).join(`, `);return r.get()?`LazyList(${i}, ...)`:`LazyList(${i})`}};return t},ce=n(e=>m(e),{empty:()=>m([]),of:e=>m([e]),from:(...e)=>m(e),iterate:(e,t)=>m((function*(){let n=f(e);for(;;)yield n.get(),n.set(t(n.get()))})()),generate:e=>m((function*(){for(;;)yield e()})()),range:(e,t,n=1)=>m((function*(){if(n===0)throw Error(`Step cannot be zero`);let r=f(e);if(n>0)for(;r.get()<t;)yield r.get(),r.set(r.get()+n);else for(;r.get()>t;)yield r.get(),r.set(r.get()+n)})()),repeat:(e,t)=>m((function*(){if(t===void 0)for(;;)yield e;else{let n=p(0);for(;n.get()<t;)yield e,n.increment()}})()),cycle:e=>m((function*(){let t=Array.from(e);if(t.length!==0)for(;;)yield*t})())});function le({_tag:e,impl:t}){return{...t,_tag:e}}function ue(e,t){return!e||typeof e!=`object`||!(`_tag`in e)?!1:t?e._tag===t:!0}function h(t,n){return{brand:t,validate:n,of:r=>n(r)?i(e(t,r)):i.none(),from:r=>n(r)?l(e(t,r)):c(`Invalid ${t}: validation failed`),unsafeOf:r=>{if(!n(r))throw Error(`Invalid ${t}: validation failed`);return e(t,r)},is:e=>{try{return n(e)}catch{return!1}},unwrap:e=>e,refine:(e,t)=>h(e,e=>n(e)&&t(e))}}const de=h(`PositiveNumber`,e=>e>0),fe=h(`NonNegativeNumber`,e=>e>=0),pe=h(`IntegerNumber`,e=>Number.isInteger(e)),me=de.refine(`PositiveInteger`,e=>Number.isInteger(e)),he=h(`NonEmptyString`,e=>e.length>0),ge=h(`EmailAddress`,e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)),_e=h(`UrlString`,e=>{try{return new URL(e),!0}catch{return!1}}),ve=h(`UUID`,e=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)),ye=h(`ISO8601Date`,e=>!isNaN(Date.parse(e))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e));function be(e,t,n){return h(e,e=>e>=t&&e<=n)}function xe(e,t,n){return h(e,e=>e.length>=t&&e.length<=n)}function Se(e,t){return h(e,e=>t.test(e))}const Ce=e=>typeof e==`function`&&Object.keys(e).length>0,we=e=>{let t=e=>typeof e==`function`?e():e,n={when:(r,i)=>e.resolved?n:r?we({resolved:!0,value:t(i)}):n,elseWhen:(r,i)=>e.resolved?n:r?we({resolved:!0,value:t(i)}):n,else:n=>e.resolved?e.value:t(n),orThrow:()=>{if(!e.resolved)throw Error(`Conditional expression has no matching condition`);return e.value}};return n},Te=()=>we({resolved:!1}),Ee=n(Te,{of:()=>Te(),match:e=>t=>{let n=t[e];if(n===void 0)throw Error(`No case defined for value: ${String(e)}`);return typeof n==`function`?n():n},lazy:()=>{let e={resolved:!1},t={when:(n,r)=>(e.resolved||n()&&(e.resolved=!0,e.value=r()),t),elseWhen:(n,r)=>(e.resolved||n()&&(e.resolved=!0,e.value=r()),t),else:t=>e.resolved?e.value:t()};return t}}),g=(e,t)=>t===e?!0:typeof t==`function`?t(e):t&&typeof t==`object`&&`_`in t?t._(e):typeof t==`object`&&t&&typeof e==`object`&&e?Object.entries(t).every(([t,n])=>{let r=e[t];return g(r,n)}):!1,_=e=>{let t=(e,t)=>typeof e==`function`?e(t):e,n=()=>{for(let{pattern:n,result:r}of e.patterns)if(g(e.value,n))return{matched:!0,result:t(r,e.value)};return{matched:!1}},r={case:(n,i)=>e.resolved?r:g(e.value,n)?_({value:e.value,resolved:!0,result:t(i,e.value),patterns:[]}):_({...e,patterns:[...e.patterns,{pattern:n,result:i}]}),caseValue:(t,n)=>{if(e.resolved)return r;if(e.value===t){let t=typeof n==`function`?n():n;return _({value:e.value,resolved:!0,result:t,patterns:[]})}return r},caseValues:(t,n)=>{if(e.resolved)return r;if(t.includes(e.value)){let t=typeof n==`function`?n():n;return _({value:e.value,resolved:!0,result:t,patterns:[]})}return r},when:(e,t)=>r.case(e,t),caseAny:(n,i)=>{if(e.resolved)return r;for(let r of n)if(g(e.value,r))return _({value:e.value,resolved:!0,result:t(i,e.value),patterns:[]});return _({...e,patterns:[...e.patterns,...n.map(e=>({pattern:e,result:i}))]})},default:n=>e.resolved?e.result:t(n,e.value),exhaustive:()=>{if(e.resolved)return e.result;let t=n();if(!t.matched)throw Error(`Non-exhaustive match. No pattern matched value: ${JSON.stringify(e.value)}`);return t.result},orThrow:t=>{if(e.resolved)return e.result;let r=n();if(!r.matched)throw Error(t??`No matching pattern for value: ${JSON.stringify(e.value)}`);return r.result},toOption:()=>{if(e.resolved)return i(e.result);let t=n();return t.matched?i(t.result):i.none()}};return r},De=e=>{let t=(e,t)=>typeof e==`function`?e(t):e;return{case:(n,r)=>{let i={value:e,resolved:!1,patterns:[{pattern:n,result:r}]};return g(e,n)?_({...i,resolved:!0,result:t(r,e)}):_(i)},caseValue:(t,n)=>_(e===t?{value:e,resolved:!0,result:typeof n==`function`?n():n,patterns:[]}:{value:e,resolved:!1,patterns:[]}),caseValues:(t,n)=>t.includes(e)?_({value:e,resolved:!0,result:typeof n==`function`?n():n,patterns:[]}):_({value:e,resolved:!1,patterns:[]}),when:(n,r)=>{let i={value:e,resolved:!1,patterns:[{pattern:n,result:r}]};return n(e)?_({...i,resolved:!0,result:t(r,e)}):_(i)},caseAny:(n,r)=>{for(let i of n)if(g(e,i))return _({value:e,resolved:!0,result:t(r,e),patterns:n.map(e=>({pattern:e,result:r}))});return _({value:e,resolved:!1,patterns:n.map(e=>({pattern:e,result:r}))})}}},Oe=n(e=>De(e),{exhaustive:e=>t=>{let n=e[t];if(n===void 0)throw Error(`No case defined for value: ${String(t)}`);return n},partial:e=>({withDefault:t=>n=>{let r=e[n];return r===void 0?typeof t==`function`?t(n):t:typeof r==`function`?r(n):r}}),withGuards:e=>({withDefault:t=>n=>{for(let[t,r]of e)if(t(n))return typeof r==`function`?r(n):r;return typeof t==`function`?t(n):t}}),struct:()=>{let e=[],t={case:(n,r)=>(e.push({pattern:n,handler:r}),t),build:()=>t=>{for(let{pattern:n,handler:r}of e)if(g(t,n))return r(t);throw Error(`No matching pattern for value: ${JSON.stringify(t)}`)}};return t},builder:()=>{let e=[],t,n={case:(t,r)=>(e.push({pattern:t,result:r}),n),when:(t,r)=>(e.push({pattern:t,result:r}),n),default:n=>(t=n,{build:()=>n=>{for(let{pattern:t,result:r}of e)if(g(n,t))return typeof r==`function`?r(n):r;if(t!==void 0)return typeof t==`function`?t(n):t;throw Error(`No matching pattern for value: ${JSON.stringify(n)}`)}})};return n}});function v(e,t){return{...le({_tag:e,impl:t}),toString(){return`${e}()`},doUnwrap(){if(`isSome`in t&&`isNone`in t){if(typeof t.isSome==`function`&&t.isSome()&&`get`in t&&typeof t.get==`function`)return{ok:!0,value:t.get()};if(typeof t.isNone==`function`&&t.isNone())return{ok:!1,empty:!0}}if(`isLeft`in t&&`isRight`in t){if(typeof t.isRight==`function`&&t.isRight()&&`value`in t)return{ok:!0,value:t.value};if(typeof t.isLeft==`function`&&t.isLeft()&&`value`in t)return{ok:!1,empty:!1,error:t.value}}if(`isSuccess`in t&&`isFailure`in t){if(typeof t.isSuccess==`function`&&t.isSuccess()&&`get`in t&&typeof t.get==`function`)return{ok:!0,value:t.get()};if(typeof t.isFailure==`function`&&t.isFailure()&&`getError`in t&&typeof t.getError==`function`)return{ok:!1,empty:!1,error:t.getError()}}if(`isEmpty`in t&&`head`in t){if(typeof t.isEmpty==`function`&&t.isEmpty())return{ok:!1,empty:!0};if(typeof t.head==`function`)return{ok:!0,value:t.head()};if(`head`in t)return{ok:!0,value:t.head}}return{ok:!0,value:t}}}}const y=`Throwable`;var b=class e extends Error{constructor(e,t){super(e,{cause:t?.cause}),this._tag=y,this.name=t?.taskInfo?.name??y,Object.defineProperties(this,{_tag:{value:y,writable:!1,configurable:!1},data:{value:t?.data,writable:!1,configurable:!1},taskInfo:{value:t?.taskInfo,writable:!1,configurable:!1},name:{value:t?.taskInfo?.name??y,writable:!1,configurable:!1}}),t?.cause&&Object.defineProperty(this,`cause`,{value:t.cause,writable:!1,configurable:!1}),t?.stack?this.stack=t.stack:Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}static apply(t,n,r){if(t instanceof Error){let i=new e(t.message,{data:n,cause:t.cause??void 0,stack:t.stack??void 0,taskInfo:r});for(let e of Object.keys(t))if(!(e in i)){let n=i;n[e]=t[e]}return i}if(t&&typeof t==`object`){let i=t,a=new e(typeof i.message==`string`?i.message:typeof i.error==`string`?i.error:`Object error: ${JSON.stringify(i,Object.getOwnPropertyNames(i).filter(e=>i[e]!==void 0))}`,{data:n??i,taskInfo:r});for(let e of Object.keys(i))if(!(e in a)){let t=a;t[e]=i[e]}return a}if(typeof t==`function`){let i=t.name??`anonymous function`,a=t.toString().substring(0,100)+(t.toString().length>100?`...`:``);return new e(`Function error: ${i}`,{data:n??{functionType:typeof t,functionName:i,functionString:a},taskInfo:r})}let i=typeof t,a=t===null?`null`:t===void 0?`undefined`:String(t);if(i===`number`){let a=t;return new e(Number.isNaN(a)?`Number error: NaN`:Number.isFinite(a)?`Number error: ${a}`:`Number error: ${a>0?`Infinity`:`-Infinity`}`,{data:n??{errorType:i,errorValue:a,originalError:t},taskInfo:r})}if(i===`bigint`)return new e(`BigInt error: ${t}n`,{data:n??{errorType:i,errorValue:String(t),originalError:t},taskInfo:r});if(i===`boolean`)return new e(`Boolean error: ${t}`,{data:n??{errorType:i,errorValue:t,originalError:t},taskInfo:r});if(i===`symbol`){let a=t.description??`unnamed symbol`;return new e(`Symbol error: Symbol(${a})`,{data:n??{errorType:i,symbolDescription:a,originalError:t},taskInfo:r})}return new e(typeof t==`string`?t:`${i.charAt(0).toUpperCase()+i.slice(1)} error: ${a}`,{data:n??{errorType:i,errorValue:a,originalError:t},taskInfo:r})}};function ke(e){return e instanceof Error&&typeof e==`object`&&e._tag===`Throwable`}const Ae=(e,t)=>{if(e.isRight())return S(e.orThrow(),t);if(e.isLeft())return x(e.fold(e=>e,()=>Error(`Unexpected right value`)),void 0,t);throw Error(`Unrecognized task outcome`)},x=(e,t,n)=>{let i={name:n?.name??`Task`,description:n?.description??``},a=b.apply(e,t,i),l={...v(`Err`,{error:a,meta:i}),_tag:`Err`,_meta:i,value:void 0,error:a,isSuccess(){return!1},isFailure(){return!0},isOk(){return!1},isErr(){return!0},map:e=>x(a,t,n),flatMap:e=>x(a,t,n),ap:e=>x(a,t,n),mapAsync:e=>Promise.resolve(x(a,t,n)),flatMapAsync:e=>Promise.resolve(x(a,t,n)),mapError:e=>x(e(a),t,n),recover:e=>S(e,n),recoverWith:e=>S(e(a),n),orThrow:e=>{throw e??a},orElse:e=>e,or:e=>e,orNull:()=>null,orUndefined:()=>void 0,toEither:()=>c(a),toTry:()=>o(()=>{throw a}),toOption:()=>r(),toList:()=>s([]),fold:(e,t)=>e(a),match:e=>e.Err(a),foldLeft:e=>t=>e,foldRight:e=>t=>e,size:0,isEmpty:!0,contains:e=>!1,reduce:e=>{throw Error(`Cannot reduce empty Err`)},reduceRight:e=>{throw Error(`Cannot reduceRight empty Err`)},count:e=>0,find:e=>r(),exists:e=>!1,forEach:e=>{},toPromise:()=>Promise.reject(a),doUnwrap(){return{ok:!1,empty:!1,error:a}},serialize:()=>({toJSON:()=>u({_tag:`Err`,error:a.message??a.toString()})??`{}`,toYAML:()=>`_tag: Err\nerror: ${a.message??a.toString()}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:`Err`,error:a.message??a.toString()})).toString(`base64`)}),pipe:e=>e(l)};return l},S=(e,t)=>{let n={name:t?.name??`Task`,description:t?.description??``},i={...v(`Ok`,{value:e,meta:n}),_tag:`Ok`,_meta:n,value:e,error:void 0,isSuccess(){return!0},isFailure(){return!1},isOk(){return!0},isErr(){return!1},map:n=>S(n(e),t),flatMap:n=>{let r=n(e);return r&&typeof r==`object`&&`isLeft`in r&&`isRight`in r?Ae(r,t):r},ap:n=>n.isOk()?S(n.value(e),t):x(n.error,void 0,t),mapAsync:async n=>S(await n(e),t),flatMapAsync:async t=>await t(e),mapError:n=>S(e,t),recover:n=>S(e,t),recoverWith:n=>S(e,t),orThrow:t=>e,orElse:t=>e,or:n=>S(e,t),orNull:()=>e,orUndefined:()=>e,toEither:()=>l(e),toTry:()=>o(()=>e),toOption:()=>a(e),toList:()=>s([e]),fold:(t,n)=>n(e),match:t=>t.Ok(e),foldLeft:t=>n=>n(t,e),foldRight:t=>n=>n(e,t),size:1,isEmpty:!1,contains:t=>e===t,reduce:t=>e,reduceRight:t=>e,count:t=>t(e)?1:0,find:t=>t(e)?a(e):r(),exists:t=>t(e),forEach:t=>t(e),toPromise:()=>Promise.resolve(e),doUnwrap(){return{ok:!0,value:e}},serialize:()=>({toJSON:()=>u({_tag:`Ok`,value:e})??`{}`,toYAML:()=>`_tag: Ok\nvalue: ${u(e)??`undefined`}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:`Ok`,value:e})).toString(`base64`)}),pipe:e=>e(i)};return i},C=()=>{let e=new AbortController,t=se();return{token:{get isCancelled(){return e.signal.aborted},get signal(){return e.signal},onCancel(n){e.signal.aborted?n():t.add(n)}},cancel(){e.signal.aborted||(e.abort(),t.build().forEach(e=>{try{e()}catch(e){console.error(`Error in cancellation callback:`,e)}}))}}},je=e=>{let t=e?.name??`Task`,n=e?.description??``,r={Async:(e,r=e=>e,i=()=>{},a)=>new Promise(o=>{(async()=>{let s=f(!1),c=f(null),l=f(()=>{});if(a){if(a.isCancelled){try{await i()}catch(e){o(x(e,void 0,{name:t,description:n}));return}o(x(Error(`Task was cancelled before execution started`),void 0,{name:t,description:n}));return}a.onCancel(()=>{s.set(!0),c.set(Error(`Task was cancelled during execution`))}),l.set(()=>{})}try{let r=await e();try{await i()}catch(e){o(x(e,void 0,{name:t,description:n}));return}if(s.get()){c.get()?o(x(c.get(),void 0,{name:t,description:n})):o(x(Error(`Task was cancelled during execution`),void 0,{name:t,description:n}));return}if(r&&typeof r==`object`&&`_tag`in r){let e=r;e._tag===`Ok`||e._tag===`Err`?o(e):o(S(r,{name:t,description:n}))}else o(S(r,{name:t,description:n}))}catch(e){try{await i()}catch(e){o(x(e,void 0,{name:t,description:n}));return}if(s.get()){c.get()?o(x(c.get(),void 0,{name:t,description:n})):o(x(Error(`Task was cancelled during execution`),void 0,{name:t,description:n}));return}try{if(e instanceof Error&&ke(e)){let i=Error(`${t}: ${e.message}`),a=b.apply(i,void 0,{name:t,description:n});Object.defineProperty(a,`cause`,{value:e,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{r(e)}catch(e){console.error(`Error in error handler:`,e)}}),o(x(a,void 0,{name:t,description:n}))}else{let i=await r(e);if(i&&typeof i==`object`&&`_tag`in i){let e=i;e._tag===`Ok`||e._tag===`Err`?o(e):o(x(i,void 0,{name:t,description:n}))}else o(x(i,void 0,{name:t,description:n}))}}catch(e){o(x(e,void 0,{name:t,description:n}))}}finally{l.get()()}})().catch(e=>o(x(e,void 0,{name:t,description:n})))}),Sync:(e,r=e=>e,i=()=>{})=>{try{return S(e(),{name:t,description:n})}catch(e){return x(r(e),void 0,{name:t,description:n})}finally{i()}},AsyncWithProgress:(e,t,n=e=>e,i=()=>{},a)=>{let o=e=>{let n=Math.max(0,Math.min(100,e));n<=100&&t(n)};return r.Async(()=>e(o),n,i,a)}};return{...v(`Task`,r),_type:`Task`}},Me={success:(e,t)=>S(e,t),fail:(e,t,n)=>x(e,t,n),ok:(e,t)=>S(e,t),err:(e,t,n)=>x(e,t,n),fromEither:(e,t)=>Ae(e,t),fromTry:(e,t)=>e.isSuccess()?S(e.orThrow(),t):x(e.fold(e=>e,()=>Error(`Unexpected success`)),void 0,t),getErrorChain:e=>{if(!e)return[];let t=se();t.add(e);let n=f(e);for(;n.get()&&n.get().cause;){let{cause:e}=n.get();if(e)t.add(e),n.set(e);else break;if(t.size()>100)break}return t.build()},formatErrorChain:(e,t)=>{let n=Me.getErrorChain(e),r=t?.separator??`
|
|
4
|
+
`;return n.map((e,n)=>{if(!e)return`${n>0?`↳ `:``}Unknown error`;let{taskInfo:r}=e,i=t?.includeTasks&&r?.name?`[${r.name}] `:``,a=e.message??`No message`,o=f(`${n>0?`↳ `:``}${i}${a}`);return t?.includeStackTrace&&e.stack&&o.set(`${o.get()}\n${e.stack.split(`
|
|
5
|
+
`).slice(1).join(`
|
|
6
|
+
`)}`),o.get()}).join(r)},fromPromise:(e,t)=>(...n)=>w(t??{name:`PromiseTask`,description:`Task from Promise`}).Async(()=>e(...n),e=>e),toPromise:e=>new Promise((t,n)=>{e.isSuccess()?t(e.orThrow()):n(e.error)}),race:(e,t,n)=>w({name:n?.name??`TaskRace`,description:n?.description??`Race between multiple tasks`}).Async(async()=>{let n=se();e.forEach(e=>n.add(e));let r=f(void 0);if(typeof t==`number`&&t>0){let e=new Promise((e,n)=>{r.set(setTimeout(()=>{n(Error(`Task race timed out after ${t}ms`))},t))});n.add(e)}try{return await new Promise((e,t)=>{n.build().forEach(n=>{n.then(n=>{if(n&&typeof n==`object`&&`_tag`in n){let r=n;r._tag===`Ok`?e(r.orThrow()):r._tag===`Err`?t(r.error):e(n)}else e(n)},e=>t(e))})})}finally{r.get()&&clearTimeout(r.get())}},e=>e),fromNodeCallback:(e,t)=>{let n={name:t?.name??`NodeCallbackTask`,description:t?.description??`Task from Node.js callback function`};return(...t)=>w(n).Async(()=>new Promise((n,r)=>{try{e(...t,(e,t)=>{e?r(e):n(t)})}catch(e){r(e)}}),e=>e)},createCancellationTokenSource:C,cancellable:(e,t)=>{let n=C();return{task:w(t).Async(()=>e(n.token),e=>e,()=>{},n.token),cancel:()=>n.cancel()}},withProgress:(e,t=()=>{},n)=>{let r=C(),i=f(0),a=e=>{i.set(Math.max(0,Math.min(100,e))),t(i.get())};return{task:w(n).Async(()=>e(a,r.token),e=>e,()=>{},r.token),cancel:()=>r.cancel(),currentProgress:()=>i.get()}}},w=n(je,Me),Ne={includeTasks:!0,includeStackTrace:!1,separator:`
|
|
7
|
+
`,includeData:!1,maxStackFrames:3,title:`Error`,colors:!1};function Pe(e){let t=new WeakSet;return JSON.stringify(e,(e,n)=>{if(typeof n==`bigint`)return`${n.toString()}n`;if(typeof n==`object`&&n){if(t.has(n))return`[Circular Reference]`;t.add(n)}return e===`stack`&&typeof n==`string`?T(n):n},2)}function T(e){if(e===void 0||e===``)return``;let t=e.split(`
|
|
8
|
+
`);return[t[0],...t.slice(1).map(e=>e.trim())].join(`
|
|
9
|
+
`)}function Fe(e,t){let n={...Ne,...t},r=e instanceof Error?e:b.apply(e),i=w?.getErrorChain?w.getErrorChain(r):[r],a=`${n.colors?`\x1b[31m${n.title}:\x1b[0m ${r.message}`:`${n.title}: ${r.message}`}\n\n${i.map((e,t)=>{let r=` `.repeat(t),i=t>0?`↳ `:``,{taskInfo:a}=e,o=`${r}${i}${n.includeTasks&&a?.name?n.colors?`\x1b[36m[${a.name}]\x1b[0m `:`[${a.name}] `:``}${e.message}`;if(n.includeStackTrace&&e.stack){let t=T(e.stack).split(`
|
|
10
|
+
`).slice(1),i=n.maxStackFrames??Ne.maxStackFrames??3,a=t.slice(0,i).map(e=>`${r} ${n.colors?`\x1B[90m`:``}${e}${n.colors?`\x1B[0m`:``}`).join(`
|
|
11
|
+
`);o+=`\n${a}`,t.length>i&&(o+=`\n${r} ${n.colors?`\x1B[90m`:``}...${t.length-i} more stack frames${n.colors?`\x1B[0m`:``}`)}return o}).join(n.separator)}`;if(n.includeData){let{data:e}=r;if(e){let t=n.colors?`\n\n\x1b[33mContext:\x1b[0m\n${Pe(e)}`:`\n\nContext:\n${Pe(e)}`;a+=t}}return a}function Ie(){return function(e){if(!e)return e;let t=e instanceof Error?e:Error(String(e)),n={message:t.message,name:t.name||`Error`,stack:t.stack?T(t.stack):void 0};if(t.taskInfo&&(n.taskInfo=t.taskInfo),t.data&&(n.data=t.data),typeof w?.getErrorChain==`function`)try{let e=w.getErrorChain(t);e.length>1&&(n.errorChain=w.formatErrorChain(t,{includeTasks:!0}),n.structuredErrorChain=e.map(e=>({message:e.message,name:e.name,taskInfo:e.taskInfo,stack:e.stack?T(e.stack):void 0})))}catch{}return Object.getOwnPropertyNames(t).forEach(e=>{n[e]||(n[e]=t[e])}),n}}const E=(e,n,r,i)=>t(b.apply(n,r,{name:e,description:n}),{code:e,message:n,status:Le(e),context:r,timestamp:new Date().toISOString(),traceId:i?.traceId}),Le=e=>({VALIDATION_FAILED:400,BAD_REQUEST:400,AUTH_REQUIRED:401,PERMISSION_DENIED:403,NOT_FOUND:404,TIMEOUT:408,CONFLICT:409,RATE_LIMITED:429,INTERNAL_ERROR:500,NETWORK_ERROR:503})[e],D=Object.assign(E,{validation:(e,t,n)=>E(`VALIDATION_FAILED`,`Validation failed: ${e} ${n}`,{field:e,value:t,rule:n}),network:(e,t,n)=>E(`NETWORK_ERROR`,`Network error: ${t} ${e}${n?` (${n})`:``}`,{url:e,method:t,statusCode:n}),auth:(e,t)=>E(`AUTH_REQUIRED`,`Authentication required: ${e}${t?` (role: ${t})`:``}`,{resource:e,requiredRole:t}),notFound:(e,t)=>E(`NOT_FOUND`,`Not found: ${e} with id ${t}`,{resource:e,id:t}),permission:(e,t,n)=>E(`PERMISSION_DENIED`,`Permission denied: cannot ${e} ${t}`,{action:e,resource:t,userId:n}),rateLimit:(e,t,n)=>E(`RATE_LIMITED`,`Rate limit exceeded: ${e} requests per ${t}`,{limit:e,window:t,retryAfter:n}),internal:e=>E(`INTERNAL_ERROR`,`Internal server error: ${e}`,{errorId:e,timestamp:new Date().toISOString()}),badRequest:(e,t)=>E(`BAD_REQUEST`,`Bad request: ${e}`,{reason:e,expected:t}),conflict:(e,t)=>E(`CONFLICT`,`Conflict: ${e} already exists with value ${t}`,{resource:e,conflictingValue:t}),timeout:(e,t)=>E(`TIMEOUT`,`Request timeout: ${t} exceeded ${e}ms`,{duration:e,operation:t}),isTypedError:e=>typeof e==`object`&&!!e&&`code`in e&&`message`in e&&`status`in e&&`context`in e&&`_tag`in e&&e._tag===`Throwable`,hasCode:(e,t)=>e.code===t}),O={rule:e=>t=>{if(e===`email`)return typeof t!=`string`||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)?c(D.validation(`value`,t,`must be a valid email`)):l(t);if(e===`url`)try{return new URL(String(t)),l(t)}catch{return c(D.validation(`value`,t,`must be a valid URL`))}if(e===`uuid`)return typeof t!=`string`||!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)?c(D.validation(`value`,t,`must be a valid UUID`)):l(t);if(e===`required`)return t==null||t===``?c(D.validation(`value`,t,`is required`)):l(t);if(e===`numeric`)return typeof t!=`number`&&!/^\d+$/.test(String(t))?c(D.validation(`value`,t,`must be numeric`)):l(t);if(e===`alpha`)return typeof t!=`string`||!/^[a-zA-Z]+$/.test(t)?c(D.validation(`value`,t,`must contain only letters`)):l(t);if(e===`alphanumeric`)return typeof t!=`string`||!/^[a-zA-Z0-9]+$/.test(t)?c(D.validation(`value`,t,`must be alphanumeric`)):l(t);if(e.startsWith(`min:`)){let n=Number(e.split(`:`)[1]),r=Number(t);return isNaN(r)||r<n?c(D.validation(`value`,t,`must be at least ${n}`)):l(t)}if(e.startsWith(`max:`)){let n=Number(e.split(`:`)[1]),r=Number(t);return isNaN(r)||r>n?c(D.validation(`value`,t,`must be at most ${n}`)):l(t)}if(e.startsWith(`minLength:`)){let n=Number(e.split(`:`)[1]);return String(t).length<n?c(D.validation(`value`,t,`must be at least ${n} characters`)):l(t)}if(e.startsWith(`maxLength:`)){let n=Number(e.split(`:`)[1]);return String(t).length>n?c(D.validation(`value`,t,`must be at most ${n} characters`)):l(t)}if(e.startsWith(`pattern:`)){let n=e.substring(8);return new RegExp(n).test(String(t))?l(t):c(D.validation(`value`,t,`must match pattern ${n}`))}if(e.startsWith(`in:`)){let n=e.substring(3).split(`,`);return n.includes(String(t))?l(t):c(D.validation(`value`,t,`must be one of: ${n.join(`, `)}`))}if(e.startsWith(`notIn:`)){let n=e.substring(6).split(`,`);return n.includes(String(t))?c(D.validation(`value`,t,`must not be one of: ${n.join(`, `)}`)):l(t)}if(e===`date`){let e=new Date(String(t));return isNaN(e.getTime())?c(D.validation(`value`,t,`must be a valid date`)):l(t)}if(e===`future`){let e=new Date(String(t));return isNaN(e.getTime())||e<=new Date?c(D.validation(`value`,t,`must be a future date`)):l(t)}if(e===`past`){let e=new Date(String(t));return isNaN(e.getTime())||e>=new Date?c(D.validation(`value`,t,`must be a past date`)):l(t)}return l(t)},combine:(...e)=>t=>{for(let n of e){let e=n(t);if(e.isLeft())return e}return l(t)},custom:(e,t)=>n=>e(n)?l(n):c(D.validation(`value`,n,t)),form:(e,t)=>{let n=[],r={};for(let[i,a]of Object.entries(e)){let e=t[i],o=a(e);if(o.isLeft()){let t=o.fold(e=>e,()=>{throw Error(`Should not be left`)}),r=D.validation(i,e,t.context.rule);n.push(r)}else r[i]=o.orThrow()}return n.length>0?c(s(n)):l(r)}},Re={...O,validators:{email:O.rule(`email`),url:O.rule(`url`),uuid:O.rule(`uuid`),required:O.rule(`required`),numeric:O.rule(`numeric`),positiveNumber:O.combine(O.rule(`numeric`),O.rule(`min:0`)),nonEmptyString:O.combine(O.rule(`required`),O.custom(e=>typeof e==`string`&&e.trim().length>0,`must not be empty`))}},ze=t(O.rule,Re);function Be(e){return typeof e==`object`&&!!e&&`orThrow`in e&&typeof e.orThrow==`function`}function Ve(e){return Be(e)&&`orElse`in e&&typeof e.orElse==`function`&&`or`in e&&typeof e.or==`function`&&`orNull`in e&&typeof e.orNull==`function`&&`orUndefined`in e&&typeof e.orUndefined==`function`}const He={toOption:e=>e.fold(()=>r(),e=>a(e)),toList:e=>e.fold(()=>s([]),e=>s([e])),toEither:(e,t)=>e.fold(()=>c(t),e=>l(e)),isEmpty:e=>e.fold(()=>!0,()=>!1),size:e=>e.fold(()=>0,()=>1)},k=e=>typeof e==`object`&&!!e&&(e._tag===`Some`||e._tag===`None`),A=e=>typeof e==`object`&&!!e&&e._tag===`List`,j=e=>typeof e==`object`&&!!e&&(e._tag===`Left`||e._tag===`Right`),M=e=>typeof e==`object`&&!!e&&(e._tag===`Success`||e._tag===`Failure`),N=()=>{let e=(e,t)=>{if(k(e)||A(e)||j(e)||M(e))return e.map(e=>t(e));throw Error(`Unsupported functor type: ${JSON.stringify(e)}`)},t=e=>{if(k(e))return e.orThrow();if(A(e)){let t=e.toArray();if(t.length>0&&A(t[0])){let e=[];for(let n of t)A(n)&&e.push(...n.toArray());return s(e)}return e.flatten()}if(j(e))return e.isRight()?e.fold(()=>null,e=>e):e;if(M(e))return e.isSuccess()?e.orThrow():e;throw Error(`Unsupported functor type for flatten: ${JSON.stringify(e)}`)},n=(e,t)=>{if(k(e)||A(e)||j(e)||M(e))return e.flatMap(e=>t(e));throw Error(`Unsupported functor type for flatMap: ${JSON.stringify(e)}`)},r=(e,t)=>{if(k(e)&&k(t)||A(e)&&A(t)||j(e)&&j(t)||M(e)&&M(t))return e.flatMap(e=>t.map(t=>e(t)));throw Error(`Unsupported functor type for ap: ${JSON.stringify(e)}`)},a=e=>{if(k(e)){let t=e;if(t.isEmpty)return s([i.none()]);let n=t.orThrow();if(A(n))return n.map(e=>i(e));throw Error(`Unsupported inner container type for sequence`)}if(A(e)){let t=e.toArray();if(t.length===0)return i.none();let n=t[0];if(k(n)){for(let e of t)if(e.isEmpty)return i.none();return i(s(t.map(e=>e.orThrow())))}throw Error(`Unsupported inner container type for sequence`)}throw Error(`Unsupported outer container type for sequence: ${JSON.stringify(e)}`)};return{_tag:`HKT`,map:e,flatten:t,flatMap:n,ap:r,sequence:a,traverse:(t,n)=>a(e(t,e=>n(e))),_type:`HKT`}},P=N();N.map=(e,t)=>P.map(e,t),N.flatten=e=>P.flatten(e),N.flatMap=(e,t)=>P.flatMap(e,t),N.ap=(e,t)=>P.ap(e,t),N.sequence=e=>P.sequence(e),N.traverse=(e,t)=>P.traverse(e,t),N.isOption=k,N.isList=A,N.isEither=j,N.isTry=M;const Ue=e=>({id:e,isSame:t=>t.id===e}),We=n(Ue,{of:e=>Ue(e),pure:e=>Ue(e)}),F=e=>({_tag:`Context`,services:e,get(t){let n=e.get(t.id);return n===void 0?r():a(n)},unsafeGet(t){let n=e.get(t.id);if(n===void 0)throw Error(`Service not found: ${t.id}`);return n},has(t){return e.has(t.id)},add(t,n){let r=new Map(e);return r.set(t.id,n),F(r)},merge(t){let n=new Map(e);for(let[e,r]of t.services)n.set(e,r);return F(n)},get size(){return e.size},toString(){return`Context(${Array.from(e.keys()).join(`, `)})`}}),I={empty:()=>F(new Map),make:(e,t)=>{let n=new Map;return n.set(e.id,t),F(n)},isContext:e=>typeof e==`object`&&!!e&&e._tag===`Context`},L=e=>({_tag:`Success`,isSuccess(){return!0},isFailure(){return!1},isInterrupted(){return!1},map(t){return L(t(e))},mapError(t){return L(e)},mapBoth(t,n){return L(n(e))},flatMap(t){return t(e)},fold(t,n,r){return n(e)},match(t){return t.Success(e)},orThrow(){return e},orElse(t){return e},toOption(){return a(e)},toEither(){return l(e)},toValue(){return{_tag:`Success`,value:e}},toString(){return`Exit.Success(${u(e)})`},toJSON(){return{_tag:`Success`,value:e}}}),R=e=>({_tag:`Failure`,isSuccess(){return!1},isFailure(){return!0},isInterrupted(){return!1},map(t){return R(e)},mapError(t){return R(t(e))},mapBoth(t,n){return R(t(e))},flatMap(t){return R(e)},fold(t,n,r){return t(e)},match(t){return t.Failure(e)},orThrow(){throw e},orElse(e){return e},toOption(){return r()},toEither(){return c(e)},toValue(){return{_tag:`Failure`,error:e}},toString(){return`Exit.Failure(${u(e)})`},toJSON(){return{_tag:`Failure`,error:e}}}),z=e=>({_tag:`Interrupted`,isSuccess(){return!1},isFailure(){return!1},isInterrupted(){return!0},map(t){return z(e)},mapError(t){return z(e)},mapBoth(t,n){return z(e)},flatMap(t){return z(e)},fold(t,n,r){if(r)return r(e);throw Error(`Effect was interrupted: ${e}`)},match(t){return t.Interrupted(e)},orThrow(){throw Error(`Effect was interrupted: ${e}`)},orElse(e){return e},toOption(){return r()},toEither(){throw Error(`Cannot convert Interrupted Exit to Either: ${e}`)},toValue(){return{_tag:`Interrupted`,fiberId:e}},toString(){return`Exit.Interrupted(${e})`},toJSON(){return{_tag:`Interrupted`,fiberId:e}}}),B=n(e=>L(e),{succeed:e=>L(e),fail:e=>R(e),interrupt:e=>z(e),interrupted:()=>z(`interrupted`),isSuccess:e=>e.isSuccess(),isFailure:e=>e.isFailure(),isInterrupted:e=>e.isInterrupted(),fromEither:e=>e.isRight()?L(e.value):R(e.value),fromOption:(e,t)=>e.isSome()?L(e.value):R(t()),zip:(e,t)=>e.isInterrupted()?e:t.isInterrupted()?t:e.isFailure()?e:t.isFailure()?t:L([e.orThrow(),t.orThrow()]),all:e=>{let t=[];for(let n of e){if(n.isInterrupted()||n.isFailure())return n;t.push(n.orThrow())}return L(t)}}),V=e=>e;var Ge=class extends Error{constructor(e,t){super(t??`Effect timed out after ${e}ms`),this.duration=e,this._tag=`TimeoutError`,this.name=`TimeoutError`}},Ke=class extends Error{constructor(e){super(e??`Effect was interrupted`),this._tag=`InterruptedError`,this.name=`InterruptedError`}};const H=e=>{let t={_effect:e,map(e){return H(V({_tag:`Map`,effect:t,f:e}))},flatMap(e){return H(V({_tag:`FlatMap`,effect:t,f:e}))},tap(e){return t.map(t=>(e(t),t))},tapEffect(e){return t.flatMap(t=>e(t).map(()=>t))},mapError(e){return H(V({_tag:`MapError`,effect:t,f:e}))},tapError(e){return t.mapError(t=>(e(t),t))},recover(e){return H(V({_tag:`Recover`,effect:t,fallback:e}))},recoverWith(e){return H(V({_tag:`RecoverWith`,effect:t,f:e}))},fold(e,n){return H(V({_tag:`Fold`,effect:t,onFailure:e,onSuccess:n}))},match(e){return t.fold(e.failure,e.success)},catchTag(e,n){return H(V({_tag:`RecoverWith`,effect:t,f:t=>typeof t==`object`&&t&&`_tag`in t&&t._tag===e?V(n(t)):V(G.fail(t))}))},catchAll(e){return t.recoverWith(e)},retry(e){return e<=0?t:t.recoverWith(()=>t.retry(e-1))},retryWithDelay(e,n){return e<=0?t:t.recoverWith(()=>G.sleep(n).flatMap(()=>t.retryWithDelay(e-1,n)))},zipRight(e){return t.flatMap(()=>e)},zipLeft(e){return t.flatMap(t=>e.map(()=>t))},zip(e){return t.flatMap(t=>e.map(e=>[t,e]))},flatten(){return this.flatMap(e=>e)},provideContext(e){return H(V({_tag:`ProvideContext`,effect:t,context:e}))},provideService(e,n){return H(V({_tag:`ProvideContext`,effect:t,context:I.make(e,n)}))},provideLayer(e){return V(V(G.async(async()=>{let t=I.empty();return await e.build(V(t))})).flatMap(e=>H(V({_tag:`ProvideContext`,effect:t,context:e}))))},async run(){let e=await W(this._effect);return e.isSuccess()?l(e.orThrow()):c(e.isFailure()?e.toValue().error:new Ke)},async runOrThrow(){let e=await W(this._effect);if(e.isSuccess())return e.orThrow();throw e.isFailure()?e.toValue().error:new Ke},runSync(){try{return l(U(this._effect))}catch(e){return c(e)}},runSyncOrThrow(){return U(this._effect)},async runExit(){return W(this._effect)},async runOption(){let e=await W(this._effect);return e.isSuccess()?a(e.orThrow()):r()},async runTry(){let e=await W(this._effect);if(e.isSuccess())return V(o(()=>e.orThrow()));let t=e.isFailure()?e.toValue().error:Error(`Effect was interrupted`);return V(o(()=>{throw t}))},pipe(e){return e(t)},delay(e){return V(G.async(()=>new Promise(t=>setTimeout(t,e))).flatMap(()=>t))},timeout(e){return H(V({_tag:`Timeout`,effect:t,duration:e}))},timeoutTo(e,n){return V(t.timeout(e).recover(V(n)))},toString(){return`IO(${u(e._tag)})`},toJSON(){return{_tag:`IO`,effect:e._tag}},*[Symbol.iterator](){return yield t}};return t},U=(e,t=I.empty())=>{switch(e._tag){case`Succeed`:return e.value;case`Fail`:throw e.error;case`Die`:throw e.defect;case`Sync`:return e.thunk();case`Async`:throw Error(`Cannot run async effect synchronously`);case`Auto`:{let t=e.thunk();if(t instanceof Promise)throw Error(`Cannot run async effect synchronously`);return t}case`Map`:{let n=U(e.effect._effect,t);return e.f(n)}case`FlatMap`:{let n=U(e.effect._effect,t);return U(e.f(n)._effect,t)}case`MapError`:try{return U(e.effect._effect,t)}catch(t){throw e.f(t)}case`Recover`:try{return U(e.effect._effect,t)}catch{return e.fallback}case`RecoverWith`:try{return U(e.effect._effect,t)}catch(n){return U(e.f(n)._effect,t)}case`Fold`:try{let n=U(e.effect._effect,t);return e.onSuccess(n)}catch(t){return e.onFailure(t)}case`Service`:{let n=t.get(e.tag);if(n.isNone())throw Error(`Service not found: ${e.tag.id}`);return n.orThrow()}case`ProvideContext`:{let n=t.merge(e.context);return U(e.effect._effect,n)}case`Interrupt`:throw new Ke;case`Bracket`:{let n=U(e.acquire._effect,t);try{return U(e.use(n)._effect,t)}finally{U(e.release(n)._effect,t)}}case`Race`:throw Error(`Cannot run race effect synchronously`);case`Timeout`:throw Error(`Cannot run timeout effect synchronously`)}},W=async(e,t=I.empty())=>{try{switch(e._tag){case`Succeed`:return V(B.succeed(e.value));case`Fail`:return V(B.fail(e.error));case`Die`:throw e.defect;case`Sync`:return V(B.succeed(e.thunk()));case`Async`:{let t=await e.thunk();return V(B.succeed(t))}case`Auto`:{let t=e.thunk();return t instanceof Promise?V(B.succeed(await t)):V(B.succeed(t))}case`Map`:{let n=await W(e.effect._effect,t);return n.isSuccess()?V(B.succeed(e.f(n.orThrow()))):V(n)}case`FlatMap`:{let n=await W(e.effect._effect,t);return n.isSuccess()?W(e.f(n.orThrow())._effect,t):V(n)}case`MapError`:{let n=await W(e.effect._effect,t);return n.isSuccess()?V(n):n.isFailure()?V(B.fail(e.f(n.toValue().error))):V(n)}case`Recover`:{let n=await W(e.effect._effect,t);return n.isSuccess()?n:B.succeed(e.fallback)}case`RecoverWith`:{let n=await W(e.effect._effect,t);return n.isSuccess()?n:n.isFailure()?W(e.f(n.toValue().error)._effect,t):n}case`Fold`:{let n=await W(e.effect._effect,t);return n.isSuccess()?B.succeed(e.onSuccess(n.orThrow())):n.isFailure()?B.succeed(e.onFailure(n.toValue().error)):n}case`Service`:{let n=t.get(e.tag);return n.isNone()?B.fail(Error(`Service not found: ${e.tag.id}`)):B.succeed(n.orThrow())}case`ProvideContext`:{let n=t.merge(e.context);return W(e.effect._effect,n)}case`Interrupt`:return B.interrupted();case`Bracket`:{let n=await W(e.acquire._effect,t);if(!n.isSuccess())return n;let r=n.orThrow();try{return await W(e.use(r)._effect,t)}finally{await W(e.release(r)._effect,t)}}case`Race`:return e.effects.length===0?B.fail(Error(`No effects to race`)):await Promise.race(e.effects.map(e=>W(e._effect,t)));case`Timeout`:{let n=new Promise(t=>setTimeout(()=>t(B.fail(new Ge(e.duration))),e.duration)),r=W(e.effect._effect,t);return Promise.race([r,n])}}}catch(e){return B.fail(e)}},G={sync:e=>H({_tag:`Sync`,thunk:e}),succeed:e=>H({_tag:`Succeed`,value:e}),fail:e=>H({_tag:`Fail`,error:e}),die:e=>H({_tag:`Die`,defect:e}),async:e=>H(V({_tag:`Async`,thunk:e})),tryPromise:e=>H({_tag:`Async`,thunk:e.try}).mapError(e.catch),tryCatch:(e,t)=>G.sync(()=>{try{return e()}catch(e){throw t(e)}}),liftSync:e=>(...t)=>G.sync(()=>e(...t)),liftPromise:e=>(...t)=>G.async(()=>e(...t)),fromEither:e=>V(e.isRight()?G.succeed(e.value):G.fail(e.value)),fromOption:e=>V(e.isSome()?G.succeed(e.value):G.fail(void 0)),fromOptionOrFail:(e,t)=>V(e.isSome()?G.succeed(e.value):G.fail(t())),fromTry:e=>V(e.isSuccess()?G.succeed(e.orThrow()):G.fail(e.error)),fromResult:e=>V(e.error?G.fail(e.error):G.succeed(i(e.data))),tryAsync:(e,t,n)=>n?.aborted?V(G.fail(t(n.reason??new DOMException(`Aborted`,`AbortError`)))):G.async(()=>e(n)).mapError(t),asyncResult:(e,t,n)=>{let r=n?.dataKey??`data`,i=n?.errorKey??`error`;return G.tryAsync(t=>e(t),t,n?.signal).flatMap(e=>G.fromResult({data:e[r],error:e[i]}))},service:e=>H({_tag:`Service`,tag:e}),serviceWith:(e,t)=>G.service(e).map(t),serviceWithIO:(e,t)=>G.service(e).flatMap(t),withServices:(e,t)=>{let n=Object.entries(e);if(n.length===0)return V(H({_tag:`Auto`,thunk:()=>t({})}));let r=V(G.succeed({}));return V(n.reduce((e,[t,n])=>V(e.flatMap(e=>G.service(n).map(n=>({...e,[t]:n})))),r).flatMap(e=>H({_tag:`Auto`,thunk:()=>t(e)})))},all:e=>{if(e.length===0)return V(G.succeed([]));let t=V(G.succeed([]));return V(e.reduce((e,t)=>e.flatMap(e=>t.map(t=>[...e,t])),t))},firstSuccessOf:e=>e.length===0?V(G.fail(Error(`No effects provided`))):e.reduce((e,t)=>e.recoverWith(()=>t)),sleep:e=>V(G.async(()=>new Promise(t=>setTimeout(t,e)))),never:()=>V(G.async(()=>new Promise(()=>{}))),get unit(){return V(H({_tag:`Succeed`,value:void 0}))},fromNullable:e=>V(e==null?G.fail(void 0):G.succeed(e)),interrupt:()=>H({_tag:`Interrupt`}),bracket:(e,t,n)=>H({_tag:`Bracket`,acquire:e,use:t,release:n}),acquireRelease:(e,t,n)=>G.bracket(e,t,n),race:e=>H({_tag:`Race`,effects:e}),any:e=>e.length===0?V(G.fail(Error(`No effects provided`))):e.reduce((e,t)=>e.recoverWith(()=>t)),forEach:(e,t)=>{if(e.length===0)return V(G.succeed([]));let n=V(G.succeed([]));return V(e.reduce((e,n)=>e.flatMap(e=>t(n).map(t=>[...e,t])),n))},forEachPar:(e,t)=>G.forEach(e,t),timeout:(e,t)=>H(V({_tag:`Timeout`,effect:e,duration:t})),gen:e=>V(G.sync(()=>{let t=e(),n=e=>{let r=t.next(e);return r.done?V(G.succeed(r.value)):V(r.value.flatMap(e=>n(e)))};return n(void 0)}).flatMap(e=>e)),get Do(){return K(G.succeed({}))}},K=e=>({effect:e,bind(t,n){return K(e.flatMap(e=>n(e).map(n=>({...e,[t]:n}))))},let(t,n){return K(e.map(e=>({...e,[t]:n(e)})))},map(t){return e.map(t)},flatMap(t){return e.flatMap(t)},tap(t){return K(e.tap(t))},tapEffect(t){return K(e.tapEffect(t))},done(){return e}}),q=n(e=>H(V({_tag:`Auto`,thunk:e})),G),J=(e,t)=>({_tag:`Layer`,build:e,provideToAndMerge(t){return J(async n=>{let r=await e(n),i=n.merge(r),a=await t.build(i);return r.merge(a)})},merge(t){return J(async n=>{let[r,i]=await Promise.all([e(n),t.build(n)]);return r.merge(i)})},map(t){return J(async n=>t(await e(n)))},toString(){return`Layer(${t??`anonymous`})`}}),qe={succeed:(e,t)=>J(()=>Promise.resolve(I.make(e,t)),e.id),effect:(e,t)=>J(async()=>{let n=await t();return I.make(e,n)},e.id),sync:(e,t)=>J(()=>Promise.resolve(I.make(e,t())),e.id),fromService:(e,t,n)=>J(r=>{let i=r.unsafeGet(t);return Promise.resolve(I.make(e,n(i)))},e.id),fromServiceEffect:(e,t,n)=>J(async r=>{let i=await n(r.unsafeGet(t));return I.make(e,i)},e.id),fromContext:e=>J(()=>Promise.resolve(e)),empty:()=>J(()=>Promise.resolve(I.empty()),`empty`),mergeAll:(...e)=>J(async t=>(await Promise.all(e.map(e=>e.build(t)))).reduce((e,t)=>e.merge(t),I.empty()))},Je=e=>({id:e,_tag:`Tag`,toString(){return`Tag(${e})`}}),Y=()=>{let e=0,t=[],n=async()=>{for(t.sort((e,t)=>e.time-t.time);t.length>0&&t[0]!==void 0&&t[0].time<=e;){let e=t.shift();e&&(e.resolve(),await Promise.resolve())}};return{get currentTime(){return e},async advance(t){e+=t,await n()},async setTime(t){e=t,await n()},async runAll(){if(t.length>0){let n=t[t.length-1];n&&(e=n.time)}await n()},get pendingCount(){return t.length},sleep(n){return new Promise(r=>{t.push({time:e+n,resolve:r})})}}},X=Je(`TestClock`),Ye={make:Y,tag:X,test:async e=>e(Y()),get:q.service(X),advance:e=>q.serviceWithIO(X,t=>q.async(()=>t.advance(e))),setTime:e=>q.serviceWithIO(X,t=>q.async(()=>t.setTime(e))),runAll:q.serviceWithIO(X,e=>q.async(()=>e.runAll())),context:()=>{let e=Y();return{clock:e,context:I.make(X,e)}}},Xe={make:()=>{let e=Y(),t=I.empty(),n={get context(){return t},get clock(){return e},withService(e,r){return t=t.add(e,r),n},async run(e){return e.provideContext(t).runOrThrow()}};return n},withClock:()=>{let e=Y();return Xe.make().withService(X,e)}},Z=e=>{let t=!1,n,i,s=!1,d=()=>{if(!t)try{n=e(),t=!0}catch(e){throw i=e,s=!0,t=!0,e}if(s)throw i;return n};return{_tag:`Lazy`,get isEvaluated(){return t},orElse:e=>{try{return d()}catch{return e}},orNull:()=>{try{return d()}catch{return null}},orThrow:e=>{try{return d()}catch(t){throw e??t}},or:e=>Q(()=>{try{return d()}catch{return e.orThrow()}}),orUndefined:()=>{try{return d()}catch{return}},map:e=>Q(()=>e(d())),ap:e=>Q(()=>e.orThrow()(d())),mapAsync:async e=>{let t=await e(d());return Q(()=>t)},flatMap:e=>Q(()=>e(d()).orThrow()),flatMapAsync:async e=>{let t=await e(d());return Q(()=>t.orThrow())},filter:e=>Q(()=>{let t=d();return e(t)?a(t):r}),recover:e=>Q(()=>{try{return d()}catch(t){return e(t)}}),recoverWith:e=>Q(()=>{try{return d()}catch(t){return e(t).orThrow()}}),toOption:()=>{try{return a(d())}catch{return r}},toEither:()=>{try{return l(d())}catch(e){return c(e)}},toEitherWith:e=>{try{return l(d())}catch(t){return c(e(t))}},toTry:()=>o(()=>d()),tap:e=>Q(()=>{let t=d();return e(t),t}),tapError:e=>Q(()=>{try{return d()}catch(t){throw e(t),t}}),fold:e=>e(d()),foldWith:(e,t)=>{try{return t(d())}catch(t){return e(t)}},foldLeft:e=>t=>t(e,d()),foldRight:e=>t=>t(d(),e),match:e=>e.Lazy(d()),toString:()=>t&&!s?`Lazy(${u(n)})`:t&&s?`Lazy(<error: ${i instanceof Error?i.message:String(i)}>)`:`Lazy(<not evaluated>)`,toValue:()=>t&&!s?{_tag:`Lazy`,evaluated:!0,value:n}:{_tag:`Lazy`,evaluated:!1},get size(){try{return d(),1}catch{return 0}},get isEmpty(){try{return d(),!1}catch{return!0}},contains:e=>{try{return d()===e}catch{return!1}},reduce:e=>d(),reduceRight:e=>d(),count:e=>{try{return e(d())?1:0}catch{return 0}},find:e=>{try{let t=d();return e(t)?a(t):r}catch{return r}},exists:e=>{try{return e(d())}catch{return!1}},forEach:e=>{try{e(d())}catch{}},pipe:e=>e(d()),serialize:()=>({toJSON:()=>JSON.stringify(t&&!s?{_tag:`Lazy`,evaluated:!0,value:n}:{_tag:`Lazy`,evaluated:!1}),toYAML:()=>t&&!s?`_tag: Lazy\nevaluated: true\nvalue: ${u(n)}`:`_tag: Lazy
|
|
12
|
+
evaluated: false`,toBinary:()=>Buffer.from(JSON.stringify(t&&!s?{_tag:`Lazy`,evaluated:!0,value:n}:{_tag:`Lazy`,evaluated:!1})).toString(`base64`)}),typeable:`Lazy`}},Q=n(Z,{of:e=>Z(e),fromValue:e=>Z(()=>e),fromOption:(e,t)=>Z(()=>e._tag===`Some`?e.value:t()),fromTry:e=>Z(()=>e.orThrow()),fromEither:e=>Z(()=>e.fold(e=>{throw e},e=>e)),fromPromise:e=>Z(()=>{throw Error(`Promise not yet resolved. Use await on the promise before creating Lazy.`)}),fail:e=>Z(()=>{throw e})}),Ze=Map,Qe={default:e=>t=>e(t),when:(e,t)=>n=>e(n)?t(n):void 0},$=(e=[])=>{let t=[...e],n=()=>t.length,r=()=>t.length===0;return{_tag:`Stack`,get size(){return n()},get isEmpty(){return r()},contains:e=>t.includes(e),reduce:e=>{if(t.length===0)throw Error(`Cannot reduce an empty stack`);return t.reduce(e)},reduceRight:e=>{if(t.length===0)throw Error(`Cannot reduce an empty stack`);return t.reduceRight(e)},push:e=>$([...t,e]),pop:()=>{if(r())return[$([]),i(null)];let e=[...t],n=e.pop();return[$(e),i(n)]},peek:()=>r()?i(null):i(t[t.length-1]),map:e=>$(t.map(e)),flatMap:e=>r()?$([]):t.reduce((t,n)=>e(n).toArray().reduce((e,t)=>e.push(t),t),$([])),ap:e=>{let n=[];return t.forEach(t=>{e.toArray().forEach(e=>{n.push(e(t))})}),$(n)},flatMapAsync:async e=>r()?$([]):(await Promise.all(t.map(async t=>await e(t)))).reduce((e,t)=>t.toArray().reduce((e,t)=>e.push(t),e),$([])),toList:()=>s(t),toArray:()=>[...t],toString:()=>`Stack(${t.join(`, `)})`,fold:(e,n)=>{if(r())return e();let i=t[t.length-1];return i===void 0?e():n(i)},foldLeft:e=>n=>t.reduce(n,e),foldRight:e=>n=>t.reduceRight((e,t)=>n(t,e),e),match:e=>r()?e.Empty():e.NonEmpty([...t]),toValue:()=>({_tag:`Stack`,value:t}),pipe:e=>e([...t]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:`Stack`,value:t}),toYAML:()=>`_tag: Stack\nvalue: ${JSON.stringify(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:`Stack`,value:t})).toString(`base64`)})}},$e=(e=[])=>$(e),et={empty:()=>$([]),of:e=>$([e]),fromJSON:e=>tt(JSON.parse(e).value),fromYAML:e=>{let t=e.split(`
|
|
13
|
+
`)[1]?.split(`: `)[1];return tt(t?JSON.parse(t):[])},fromBinary:e=>{let t=Buffer.from(e,`base64`).toString();return et.fromJSON(t)}},tt=n($e,et);function nt(e){let t=le({_tag:e._tag,impl:e.impl});return{...t,toValue:()=>({_tag:t._tag,value:e.value})}}export{f as $,ke as A,ye as B,Fe as C,S as D,x as E,Ee as F,me as G,he as H,Ce as I,_e as J,de as K,be as L,b as M,v as N,w as O,Oe as P,ce as Q,xe as R,Ie as S,Pe as T,fe as U,pe as V,Se as W,le as X,h as Y,ue as Z,N as _,Q as a,re as at,ze as b,Xe as c,q as d,te as et,Ke as f,We as g,I as h,Ze as i,ne as it,y as j,C as k,Je as l,B as m,tt as n,ee as nt,Ye as o,d as ot,Ge as p,ve as q,Qe as r,ie as rt,X as s,nt as t,ae as tt,qe as u,He as v,T as w,D as x,Ve as y,ge as z};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//#region src/cli/data.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Curated API data for CLI output, optimized for LLM consumption
|
|
4
|
+
*/
|
|
5
|
+
declare const VERSION: string;
|
|
6
|
+
interface TypeData {
|
|
7
|
+
description: string;
|
|
8
|
+
interfaces: string[];
|
|
9
|
+
methods: {
|
|
10
|
+
create?: string[];
|
|
11
|
+
transform?: string[];
|
|
12
|
+
extract?: string[];
|
|
13
|
+
check?: string[];
|
|
14
|
+
other?: string[];
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
interface InterfaceData {
|
|
18
|
+
extends?: string;
|
|
19
|
+
description: string;
|
|
20
|
+
methods: string[];
|
|
21
|
+
}
|
|
22
|
+
declare const TYPES: Record<string, TypeData>;
|
|
23
|
+
declare const INTERFACES: Record<string, InterfaceData>;
|
|
24
|
+
declare const CATEGORIES: {
|
|
25
|
+
Core: string[];
|
|
26
|
+
Collection: string[];
|
|
27
|
+
Effect: string[];
|
|
28
|
+
Utility: string[];
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/cli/full-interfaces.d.ts
|
|
32
|
+
/**
|
|
33
|
+
* Auto-generated full interface definitions.
|
|
34
|
+
* Generated by scripts/extract-interfaces.ts
|
|
35
|
+
* DO NOT EDIT MANUALLY
|
|
36
|
+
*/
|
|
37
|
+
declare const FULL_INTERFACES: Record<string, string>;
|
|
38
|
+
//#endregion
|
|
39
|
+
export { CATEGORIES, FULL_INTERFACES, INTERFACES, type InterfaceData, TYPES, type TypeData, VERSION };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,i as t,n,r,t as i}from"../full-interfaces-D7DbT-2A.js";export{n as CATEGORIES,i as FULL_INTERFACES,r as INTERFACES,t as TYPES,e as VERSION};
|