@puffinstudio/fizzyx 0.2.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/README.md +69 -0
- package/dist/main.js +79 -0
- package/package.json +34 -0
package/README.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# fizzyx
|
|
2
|
+
|
|
3
|
+
AI workflow CLI for Fizzy boards.
|
|
4
|
+
|
|
5
|
+
`fizzyx` is a Bun + Effect 4 beta CLI that reads `.fizzy.yaml`, stores auth locally, talks to the Fizzy HTTP API directly, and adds project workflow commands optimized for AI agents.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
bun install
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Setup
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
fizzyx setup <board-id>
|
|
17
|
+
|
|
18
|
+
fizzyx setup --list
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
This creates `.fizzy.yaml` with official Fizzy fields plus a `flow:` section.
|
|
22
|
+
`setup --list` prints available board ids and names for the active account.
|
|
23
|
+
|
|
24
|
+
If TODO/INPROGRESS columns are omitted, `fizzyx setup` auto-discovers them from the API.
|
|
25
|
+
|
|
26
|
+
## Auth
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
fizzyx auth login <token>
|
|
30
|
+
fizzyx auth status
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Tokens are stored outside the repo under `~/.config/fizzyx/credentials/`.
|
|
34
|
+
|
|
35
|
+
## Commands
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
fizzyx flow sync
|
|
39
|
+
fizzyx flow mine --fresh
|
|
40
|
+
fizzyx flow status
|
|
41
|
+
fizzyx flow next
|
|
42
|
+
fizzyx flow show 123
|
|
43
|
+
fizzyx flow start 123
|
|
44
|
+
fizzyx flow done 123 "commit abc123: subject"
|
|
45
|
+
fizzyx flow block 123 "waiting on API"
|
|
46
|
+
fizzyx flow add ray "[Page] home · title" --desc /tmp/card.md
|
|
47
|
+
fizzyx flow add ray "[Page] home · title" --desc - < /tmp/card.md
|
|
48
|
+
fizzyx flow steps-from-desc 123
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
During development, you can run the entrypoint directly:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
bun run src/main.ts <command>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Architecture
|
|
58
|
+
|
|
59
|
+
- `src/domain`: errors and models
|
|
60
|
+
- `src/ports`: repository/API interfaces
|
|
61
|
+
- `src/adapters`: Bun filesystem/cache and fetch-based Fizzy API
|
|
62
|
+
- `src/use-cases`: workflow use cases
|
|
63
|
+
- `src/cli`: thin command parsing and rendering
|
|
64
|
+
|
|
65
|
+
## Check
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
bun run check
|
|
69
|
+
```
|
package/dist/main.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
// @bun
|
|
3
|
+
var rx=Object.defineProperty;var nx=(e)=>e;function ox(e,t){this[e]=nx.bind(null,t)}var ki=(e,t)=>{for(var r in t)rx(e,r,{get:t[r],enumerable:!0,configurable:!0,set:ox.bind(t,r)})};var Vn=import.meta.require;var $e={};ki($e,{taggedEnum:()=>Fx,TaggedError:()=>He,TaggedClass:()=>Px,Error:()=>Nx,Class:()=>Bi});var F=(e,t)=>{switch(t.length){case 0:return e;case 1:return t[0](e);case 2:return t[1](t[0](e));case 3:return t[2](t[1](t[0](e)));case 4:return t[3](t[2](t[1](t[0](e))));case 5:return t[4](t[3](t[2](t[1](t[0](e)))));case 6:return t[5](t[4](t[3](t[2](t[1](t[0](e))))));case 7:return t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))));case 8:return t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e))))))));case 9:return t[8](t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))))));default:{let r=e;for(let n=0,o=t.length;n<o;n++)r=t[n](r);return r}}},sx={pipe(){return F(this,arguments)}},vi=function(){function e(){}return e.prototype=sx,e}();var c=function(e,t){if(typeof e==="function")return function(){return e(arguments)?t.apply(this,arguments):(r)=>t(r,...arguments)};switch(e){case 0:case 1:throw RangeError(`Invalid arity ${e}`);case 2:return function(r,n){if(arguments.length>=2)return t(r,n);return function(o){return t(o,r)}};case 3:return function(r,n,o){if(arguments.length>=3)return t(r,n,o);return function(s){return t(s,r,n)}};default:return function(){if(arguments.length>=e)return t.apply(this,arguments);let r=arguments;return function(n){return t(n,...r)}}}};var S=(e)=>e;var G=(e)=>()=>e,Re=G(!0),ar=G(!1);var Je=G(void 0),cr=Je;var Dr=(e)=>{let t=new Set(Reflect.ownKeys(e));if(e.constructor===Object)return t;if(e instanceof Error)t.delete("stack");let r=Object.getPrototypeOf(e),n=r;while(n!==null&&n!==Object.prototype){let o=Reflect.ownKeys(n);for(let s=0;s<o.length;s++)t.add(o[s]);n=Object.getPrototypeOf(n)}if(t.has("constructor")&&typeof e.constructor==="function"&&r===e.constructor.prototype)t.delete("constructor");return t},ir=new WeakSet;function ur(e){return typeof e==="string"}function Ti(e){return typeof e==="number"}function ks(e){return typeof e==="function"}function nt(e){return e!==void 0}function cx(e){return typeof e==="object"&&e!==null||ks(e)}var C=c(2,(e,t)=>cx(e)&&(t in e)),Qe=c(2,(e,t)=>C(e,"_tag")&&e._tag===t);function ot(e){return C(e,Symbol.iterator)||ur(e)}var L="~effect/interfaces/Hash",D=(e)=>{switch(typeof e){case"number":return Gn(e);case"bigint":return Q(e.toString(10));case"boolean":return Q(String(e));case"symbol":return Q(String(e));case"string":return Q(e);case"undefined":return Q("undefined");case"function":case"object":if(e===null)return Q("null");else if(e instanceof Date)return Q(e.toISOString());else if(e instanceof RegExp)return Q(e.toString());else{if(ir.has(e))return Qn(e);if(Ts.has(e))return Ts.get(e);let t=lx(e,()=>{if(ix(e))return e[L]();else if(typeof e==="function")return Qn(e);else if(Array.isArray(e)||ArrayBuffer.isView(e))return Hr(e);else if(e instanceof Map)return ux(e);else if(e instanceof Set)return fx(e);return Lr(e)});return Ts.set(e,t),t}default:throw Error(`BUG: unhandled typeof ${typeof e} - please report an issue at https://github.com/Effect-TS/effect/issues`)}},Qn=(e)=>{if(!vs.has(e))vs.set(e,Gn(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)));return vs.get(e)},ue=c(2,(e,t)=>e*53^t),Yn=(e)=>e&3221225471|e>>>1&1073741824,ix=(e)=>C(e,L),Gn=(e)=>{if(e!==e)return Q("NaN");if(e===1/0)return Q("Infinity");if(e===-1/0)return Q("-Infinity");let t=e|0;if(t!==e)t^=e*4294967295;while(e>4294967295)t^=e/=4294967295;return Yn(t)},Q=(e)=>{let t=5381,r=e.length;while(r)t=t*33^e.charCodeAt(--r);return Yn(t)},Is=(e,t)=>{let r=12289;for(let n of t)r^=ue(D(n),D(e[n]));return Yn(r)},Lr=(e)=>Is(e,Dr(e)),Rs=(e,t)=>(r)=>{let n=e;for(let o of r)n^=t(o);return Yn(n)},Hr=Rs(6151,D),ux=Rs(Q("Map"),([e,t])=>ue(D(e),D(t))),fx=Rs(Q("Set"),D),vs=new WeakMap,Ts=new WeakMap,As=new WeakSet;function lx(e,t){if(As.has(e))return Q("[Circular]");As.add(e);let r=t();return As.delete(e),r}var H="~effect/interfaces/Equal";function Y(){if(arguments.length===1)return(e)=>Ft(e,arguments[0]);return Ft(arguments[0],arguments[1])}function Ft(e,t){if(e===t)return!0;if(e==null||t==null)return!1;let r=typeof e;if(r!==typeof t)return!1;if(r==="number"&&e!==e&&t!==t)return!0;if(r!=="object"&&r!=="function")return!1;if(ir.has(e)||ir.has(t))return!1;return mx(e,t,dx)}function px(e,t,r){let n=Os.has(e),o=_s.has(t);if(n&&o)return!0;if(n||o)return!1;Os.add(e),_s.add(t);let s=r();return Os.delete(e),_s.delete(t),s}var Os=new WeakSet,_s=new WeakSet;function dx(e,t){if(D(e)!==D(t))return!1;else if(e instanceof Date){if(!(t instanceof Date))return!1;return e.toISOString()===t.toISOString()}else if(e instanceof RegExp){if(!(t instanceof RegExp))return!1;return e.toString()===t.toString()}let r=Ai(e),n=Ai(t);if(r!==n)return!1;let o=r&&n;if(typeof e==="function"&&!o)return!1;return px(e,t,()=>{if(o)return e[H](t);else if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;return hx(e,t)}else if(ArrayBuffer.isView(e)){if(!ArrayBuffer.isView(t)||e.byteLength!==t.byteLength)return!1;return xx(e,t)}else if(e instanceof Map){if(!(t instanceof Map)||e.size!==t.size)return!1;return Ex(e,t)}else if(e instanceof Set){if(!(t instanceof Set)||e.size!==t.size)return!1;return Sx(e,t)}return gx(e,t)})}function mx(e,t,r){let n=Kn.get(e);if(!n)n=new WeakMap,Kn.set(e,n);else if(n.has(t))return n.get(t);let o=r(e,t);n.set(t,o);let s=Kn.get(t);if(!s)s=new WeakMap,Kn.set(t,s);return s.set(e,o),o}var Kn=new WeakMap;function hx(e,t){for(let r=0;r<e.length;r++)if(!Ft(e[r],t[r]))return!1;return!0}function xx(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function gx(e,t){let r=Dr(e),n=Dr(t);if(r.size!==n.size)return!1;for(let o of r)if(!n.has(o)||!Ft(e[o],t[o]))return!1;return!0}function yx(e,t){return function(n,o){for(let[s,a]of n){let i=!1;for(let[f,l]of o)if(e(s,f)&&t(a,l)){i=!0;break}if(!i)return!1}return!0}}var Ex=yx(Ft,Ft);function bx(e){return function(r,n){for(let o of r){let s=!1;for(let a of n)if(e(o,a)){s=!0;break}if(!s)return!1}return!0}}var Sx=bx(Ft),Ai=(e)=>C(e,H),Ii=()=>Y;var Ri=(e)=>(ir.add(e),e);var fr=Symbol.for("~effect/Redactable"),Cx=(e)=>C(e,fr);function Ne(e){if(Cx(e))return Ms(e);return e}function Ms(e){return e[fr](globalThis[lr]?.context??wx)}var lr="~effect/Fiber/currentFiber",wx={"~effect/Context":{},mapUnsafe:new Map,pipe(){return F(this,arguments)}};function X(e,t){let r=t?.space??0,n=new WeakSet,o=!r?"":typeof r==="number"?" ".repeat(r):r,s=(l)=>o.repeat(l),a=(l,h)=>{let p=l?.constructor;return p&&p!==Object.prototype.constructor&&p.name?`${p.name}(${h})`:h},i=(l)=>{try{return Reflect.ownKeys(l)}catch{return["[ownKeys threw]"]}};function f(l,h=0){if(Array.isArray(l)){if(n.has(l))return Oi;if(n.add(l),!o||l.length<=1)return`[${l.map((x)=>f(x,h)).join(",")}]`;let p=l.map((x)=>f(x,h+1)).join(`,
|
|
4
|
+
`+s(h+1));return`[
|
|
5
|
+
${s(h+1)}${p}
|
|
6
|
+
${s(h)}]`}if(l instanceof Date)return vx(l);if(!t?.ignoreToString&&C(l,"toString")&&typeof l.toString==="function"&&l.toString!==Object.prototype.toString&&l.toString!==Array.prototype.toString){let p=Tx(l);if(l instanceof Error&&l.cause)return`${p} (cause: ${f(l.cause,h)})`;return p}if(typeof l==="string")return JSON.stringify(l);if(typeof l==="number"||l==null||typeof l==="boolean"||typeof l==="symbol")return String(l);if(typeof l==="bigint")return String(l)+"n";if(typeof l==="object"||typeof l==="function"){if(n.has(l))return Oi;if(n.add(l),fr in l)return X(Ms(l));if(Symbol.iterator in l)return`${l.constructor.name}(${f(Array.from(l),h)})`;let p=i(l);if(!o||p.length<=1){let k=`{${p.map((E)=>`${_i(E)}:${f(l[E],h)}`).join(",")}}`;return a(l,k)}let x=`{
|
|
7
|
+
${p.map((k)=>`${s(h+1)}${_i(k)}: ${f(l[k],h+1)}`).join(`,
|
|
8
|
+
`)}
|
|
9
|
+
${s(h)}}`;return a(l,x)}return String(l)}return f(e,0)}var Oi="[Circular]";function _i(e){return typeof e==="string"?JSON.stringify(e):String(e)}function vx(e){try{return e.toISOString()}catch{return"Invalid Date"}}function Tx(e){try{let t=e.toString();return typeof t==="string"?t:String(t)}catch{return"[toString threw]"}}function $r(e,t){let r=[];return JSON.stringify(e,function(n,o){let s=Ne(o);if(typeof s!=="object"||s===null)return s;while(r.length>0&&r[r.length-1]!==this)r.pop();if(r.includes(s))return;return r.push(s),s},t?.space)}var oe=Symbol.for("nodejs.util.inspect.custom"),Et=(e)=>{try{if(C(e,"toJSON")&&ks(e.toJSON)&&e.toJSON.length===0)return e.toJSON();else if(Array.isArray(e))return e.map(Et)}catch{return"[toJSON threw]"}return Ne(e)},Mi=(e,t=2)=>{if(typeof e==="string")return e;try{return typeof e==="object"?$r(e,{space:t}):String(e)}catch{return String(e)}},Ge={toJSON(){return Et(this)},[oe](){return this.toJSON()},toString(){return X(this.toJSON())}};class Ps{[oe](){return this.toJSON()}toString(){return X(this.toJSON())}}class bt{called=!1;self;constructor(e){this.self=e}next(e){return this.called?{value:e,done:!0}:(this.called=!0,{value:this.self,done:!1})}[Symbol.iterator](){return new bt(this.self)}}var Ax=()=>{let t={["~effect/Utils/internal"]:(o)=>o()},r={["~effect/Utils/internal"]:(o)=>{try{return o()}finally{}}};return t["~effect/Utils/internal"](()=>Error().stack)?.includes("~effect/Utils/internal")===!0?t["~effect/Utils/internal"]:r["~effect/Utils/internal"]},M=Ax();var Ke="~effect/Effect",Ut="~effect/Exit",Ix={_A:S,_E:S,_R:S},Fi=`${Ke}/identifier`,R=`${Ke}/args`,V=`${Ke}/evaluate`,he=`${Ke}/successCont`,De=`${Ke}/failureCont`,St=`${Ke}/ensureCont`,Ct=Symbol.for("effect/Effect/Yield"),Le={pipe(){return F(this,arguments)},toJSON(){return{...this}},toString(){return X(this.toJSON(),{ignoreToString:!0,space:2})},[oe](){return this.toJSON()}},Ui={[L](){return Is(this,Object.keys(this))},[H](e){let t=Object.keys(this),r=Object.keys(e);if(t.length!==r.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==r[n]&&!Y(this[t[n]],e[t[n]]))return!1;return!0}},Rx={[Ke]:Ix,...Le,[Symbol.iterator](){return new bt(this)},toJSON(){return{_id:"Effect",op:this[Fi],...R in this?{args:this[R]}:void 0}}},w=(e)=>C(e,Ke),Ni=(e)=>C(e,Ut),jr="~effect/Cause",Xn="~effect/Cause/Reason",qr=(e)=>C(e,jr);class st{[jr];reasons;constructor(e){this[jr]=jr,this.reasons=e}pipe(){return F(this,arguments)}toJSON(){return{_id:"Cause",failures:this.reasons.map((e)=>e.toJSON())}}toString(){return`Cause(${X(this.reasons)})`}[oe](){return this.toJSON()}[H](e){return qr(e)&&this.reasons.length===e.reasons.length&&this.reasons.every((t,r)=>Y(t,e.reasons[r]))}[L](){return Hr(this.reasons)}}var Pi=new WeakMap;class zr{[Xn];annotations;_tag;constructor(e,t,r){if(this[Xn]=Xn,this._tag=e,t!==Br&&typeof r==="object"&&r!==null&&t.size>0){let n=Pi.get(r);if(n)t=new Map([...n,...t]);Pi.set(r,t)}this.annotations=t}annotate(e,t){if(e.mapUnsafe.size===0)return this;let r=new Map(this.annotations);e.mapUnsafe.forEach((o,s)=>{if(t?.overwrite!==!0&&r.has(s))return;r.set(s,o)});let n=Object.assign(Object.create(Object.getPrototypeOf(this)),this);return n.annotations=r,n}pipe(){return F(this,arguments)}toString(){return X(this)}[oe](){return this.toString()}}var Br=new Map;class eo extends zr{error;constructor(e,t=Br){super("Fail",t,e);this.error=e}toString(){return`Fail(${X(this.error)})`}toJSON(){return{_tag:"Fail",error:this.error}}[H](e){return Vr(e)&&Y(this.error,e.error)&&Y(this.annotations,e.annotations)}[L](){return ue(Q(this._tag))(ue(D(this.error))(D(this.annotations)))}}var Nt=(e)=>new st(e),Fs=new st([]),Di=(e)=>new st([new eo(e)]);class Us extends zr{defect;constructor(e,t=Br){super("Die",t,e);this.defect=e}toString(){return`Die(${X(this.defect)})`}toJSON(){return{_tag:"Die",defect:this.defect}}[H](e){return Jr(e)&&Y(this.defect,e.defect)&&Y(this.annotations,e.annotations)}[L](){return ue(Q(this._tag))(ue(D(this.defect))(D(this.annotations)))}}var Li=(e)=>new st([new Us(e)]),Wr=c((e)=>qr(e[0]),(e,t,r)=>{if(t.mapUnsafe.size===0)return e;return new st(e.reasons.map((n)=>n.annotate(t,r)))}),Vr=(e)=>e._tag==="Fail",Jr=(e)=>e._tag==="Die",to=(e)=>e._tag==="Interrupt";function Ox(e){return it("Effect.evaluate: Not implemented")}var at=(e)=>({...Rx,[Fi]:e.op,[V]:e[V]??Ox,[he]:e[he],[De]:e[De],[St]:e[St]}),Oe=(e)=>{let t=at(e);return function(){let r=Object.create(t);return r[R]=e.single===!1?arguments:arguments[0],r}},Hi=(e)=>{let t={...at(e),[Ut]:Ut,_tag:e.op,get[e.prop](){return this[R]},toString(){return`${e.op}(${X(this[R])})`},toJSON(){return{_id:"Exit",_tag:e.op,[e.prop]:this[R]}},[H](r){return Ni(r)&&r._tag===this._tag&&Y(this[R],r[R])},[L](){return ue(Q(e.op),D(this[R]))}};return function(r){let n=Object.create(t);return n[R]=r,n}},K=Hi({op:"Success",prop:"value",[V](e){let t=e.getCont(he);return t?t[he](this[R],e,this):e.yieldWith(this)}}),Qr={key:"effect/Cause/StackTrace"},$i={key:"effect/Cause/InterruptorStackTrace"},Se=Hi({op:"Failure",prop:"cause",[V](e){let t=this[R],r=!1;if(e.currentStackFrame)t=Wr(t,{mapUnsafe:new Map([[Qr.key,e.currentStackFrame]])}),r=!0;let n=e.getCont(De);while(e.interruptible&&e._interruptedCause&&n)n=e.getCont(De);return n?n[De](t,e,r?void 0:this):e.yieldWith(r?this:Se(t))}}),ct=(e)=>Se(Di(e)),it=(e)=>Se(Li(e)),v=Oe({op:"WithFiber",[V](e){return this[R](e)}}),_x=function(){class e extends globalThis.Error{}let t=at({op:"YieldableError",[V](){return ct(this)}});return delete t.toString,Object.assign(e.prototype,t),e}(),Ns=function(){let e=Symbol.for("effect/Data/Error/plainArgs");return class extends _x{constructor(r){super(r?.message,r?.cause?{cause:r.cause}:void 0);if(r)Object.assign(this,r),Object.defineProperty(this,e,{value:r,enumerable:!1})}toJSON(){return{...this[e],...this}}}}(),Dt=(e)=>{class t extends Ns{_tag=e}return t.prototype.name=e,t},Zn="~effect/Cause/NoSuchElementError",Ds=(e)=>C(e,Zn);class ut extends Dt("NoSuchElementError"){[Zn]=Zn;constructor(e){super({message:e})}}var dr="~effect/Cause/Done",Yr=(e)=>C(e,dr),ji={[dr]:dr,_tag:"Done",value:void 0},qi=(e)=>{if(e===void 0)return ji;return{[dr]:dr,_tag:"Done",value:e}},Mx=ct(ji),zi=(e)=>{if(e===void 0)return Mx;return ct(qi(e))};var Bi=class extends vi{constructor(e){super();if(e)Object.assign(this,e)}},Px=(e)=>class extends Bi{_tag=e},Fx=()=>new Proxy({},{get(e,t,r){if(t==="$is")return Qe;else if(t==="$match")return Ux;return(n)=>({...n,_tag:t})}});function Ux(){if(arguments.length===1){let r=arguments[0];return function(n){return r[n._tag](n)}}let e=arguments[0];return arguments[1][e._tag](e)}var Nx=Ns,He=Dt;var u={};ki(u,{zipWith:()=>CE,zip:()=>bd,yieldNowWith:()=>xE,yieldNow:()=>xd,withTracerTiming:()=>Ob,withTracerEnabled:()=>Rb,withTracer:()=>Ib,withSpanScoped:()=>$b,withSpan:()=>Hb,withParentSpan:()=>qc,withLogger:()=>cS,withLogSpan:()=>fS,withFiber:()=>Tn,withExecutionPlan:()=>jE,withErrorReporting:()=>qE,withConcurrency:()=>lb,whileLoop:()=>Xo,when:()=>eb,void:()=>vn,validate:()=>cE,useSpan:()=>jc,updateService:()=>ub,updateContext:()=>Lc,unwrapReason:()=>vE,uninterruptibleMask:()=>Pr,uninterruptible:()=>zd,undefined:()=>lE,txRetry:()=>bS,tx:()=>xS,tryPromise:()=>rt,try:()=>Or,trackSuccesses:()=>pS,trackErrors:()=>dS,trackDuration:()=>hS,trackDefects:()=>mS,track:()=>lS,tracer:()=>Ab,timeoutOrElse:()=>JE,timeoutOption:()=>VE,timeout:()=>WE,timed:()=>QE,tapErrorTag:()=>PE,tapError:()=>ss,tapDefect:()=>Td,tapCauseIf:()=>FE,tapCauseFilter:()=>UE,tapCause:()=>vd,tap:()=>An,sync:()=>xt,suspend:()=>ht,succeedSome:()=>dd,succeedNone:()=>pd,succeed:()=>ie,spanLinks:()=>Nb,spanAnnotations:()=>Ub,sleep:()=>Dc,serviceOption:()=>Nd,service:()=>Ud,scopedWith:()=>Ld,scoped:()=>Dd,scope:()=>Hc,scheduleFrom:()=>Wd,schedule:()=>Tb,satisfiesSuccessType:()=>CS,satisfiesServicesType:()=>kS,satisfiesErrorType:()=>wS,sandbox:()=>LE,runSyncWith:()=>Gb,runSyncExitWith:()=>Xb,runSyncExit:()=>Kb,runSync:()=>Rt,runPromiseWith:()=>Qd,runPromiseExitWith:()=>Yd,runPromiseExit:()=>Yb,runPromise:()=>Jc,runForkWith:()=>Jd,runFork:()=>Vc,runCallbackWith:()=>Jb,runCallback:()=>Qb,retryOrElse:()=>DE,retry:()=>Ad,result:()=>EE,requestUnsafe:()=>qb,request:()=>jb,replicateEffect:()=>vb,replicate:()=>kb,repeatOrElse:()=>wb,repeat:()=>Bd,raceFirst:()=>Rd,raceAllFirst:()=>YE,raceAll:()=>Id,race:()=>GE,provideServiceEffect:()=>fb,provideService:()=>is,provideContext:()=>cs,provide:()=>ib,promise:()=>Zo,partition:()=>aE,orElseSucceed:()=>zE,orDie:()=>ME,option:()=>bE,onInterrupt:()=>us,onExitPrimitive:()=>jd,onExitIf:()=>xb,onExitFilter:()=>gb,onExit:()=>Mr,onErrorIf:()=>mb,onErrorFilter:()=>hb,onError:()=>Rn,never:()=>Mc,matchEffect:()=>Fd,matchEager:()=>rb,matchCauseEffectEager:()=>sb,matchCauseEffect:()=>_r,matchCauseEager:()=>ob,matchCause:()=>nb,match:()=>tb,mapErrorEager:()=>TS,mapError:()=>kd,mapEager:()=>vS,mapBothEager:()=>AS,mapBoth:()=>_E,map:()=>ye,makeSpanScoped:()=>Lb,makeSpan:()=>Vd,logWithLevel:()=>Gd,logWarning:()=>rS,logTrace:()=>aS,logInfo:()=>oS,logFatal:()=>tS,logError:()=>nS,logDebug:()=>sS,log:()=>eS,linkSpans:()=>Db,let:()=>mE,isSuccess:()=>cb,isFailure:()=>ab,isEffect:()=>rr,interruptibleMask:()=>Sb,interruptible:()=>bb,interrupt:()=>qd,ignoreCause:()=>$E,ignore:()=>HE,gen:()=>Pc,fromResult:()=>gd,fromOption:()=>gE,fromNullishOr:()=>yE,forkScoped:()=>Wc,forkIn:()=>Bc,forkDetach:()=>zb,forkChild:()=>zc,forever:()=>fs,forEach:()=>fE,fnUntracedEager:()=>RS,fnUntraced:()=>_n,fn:()=>Zb,flip:()=>SE,flatten:()=>yd,flatMapEager:()=>Kd,flatMap:()=>Z,firstSuccessOf:()=>BE,findFirstFilter:()=>uE,findFirst:()=>iE,filterOrFail:()=>Pd,filterOrElse:()=>Md,filterMapOrFail:()=>ZE,filterMapOrElse:()=>XE,filterMapEffect:()=>_d,filterMap:()=>KE,filter:()=>Od,fiberId:()=>Vb,fiber:()=>Wb,failSync:()=>md,failCauseSync:()=>hd,failCause:()=>nr,fail:()=>It,exit:()=>Fc,eventually:()=>NE,ensuring:()=>$d,effectify:()=>SS,die:()=>es,delay:()=>Nc,currentSpan:()=>Pb,currentParentSpan:()=>Fb,contextWith:()=>In,context:()=>as,clockWith:()=>Qc,catchTags:()=>Cd,catchTag:()=>Sd,catchReasons:()=>kE,catchReason:()=>wE,catchNoSuchElement:()=>IE,catchIf:()=>TE,catchFilter:()=>AE,catchEager:()=>IS,catchDefect:()=>wd,catchCauseIf:()=>RE,catchCauseFilter:()=>OE,catchCause:()=>os,catch:()=>ns,callback:()=>_c,cachedWithTTL:()=>yb,cachedInvalidateWithTTL:()=>Eb,cached:()=>On,bindTo:()=>dE,bind:()=>hE,awaitAllChildren:()=>Bb,asVoid:()=>rs,asSome:()=>Ed,as:()=>Uc,annotateSpans:()=>_b,annotateLogsScoped:()=>uS,annotateLogs:()=>iS,annotateCurrentSpan:()=>Mb,andThen:()=>ts,all:()=>sE,addFinalizer:()=>Hd,acquireUseRelease:()=>db,acquireRelease:()=>$c,acquireDisposable:()=>pb,abortSignal:()=>Cb,TypeId:()=>oE,Transaction:()=>kn,Do:()=>pE});var Wi=(e)=>at({op:e.label,[V]:e.evaluate});var ro=(e)=>(t,r)=>t===r||e(t,r),Lx=(e,t)=>e===t,Gr=()=>Lx;function Vi(e){return ro((t,r)=>{if(t.length!==r.length)return!1;for(let n=0;n<t.length;n++)if(!e[n](t[n],r[n]))return!1;return!0})}function Ji(e){return ro((t,r)=>{if(t.length!==r.length)return!1;for(let n=0;n<t.length;n++)if(!e(t[n],r[n]))return!1;return!0})}var Qi=(e)=>c(3,(t,r,n)=>e(t,(o)=>({...o,[r]:n(o)}))),Yi=(e)=>c(2,(t,r)=>e(t,(n)=>({[r]:n}))),Gi=(e,t)=>c(3,(r,n,o)=>t(r,(s)=>e(o(s),(a)=>({...s,[n]:a}))));var Ki="~effect/data/Option",Xi={[Ki]:{_A:(e)=>e},...Le,[Symbol.iterator](){return new bt(this)}},$x=Object.defineProperty(Object.assign(Object.create(Xi),{_tag:"Some",_op:"Some",[H](e){return Ls(e)&&$s(e)&&Y(this.value,e.value)},[L](){return ue(D(this._tag))(D(this.value))},toString(){return`some(${X(this.value)})`},toJSON(){return{_id:"Option",_tag:this._tag,value:Et(this.value)}}}),"valueOrUndefined",{get(){return this.value}}),jx=D("None"),qx=Object.assign(Object.create(Xi),{_tag:"None",_op:"None",valueOrUndefined:void 0,[H](e){return Ls(e)&&Hs(e)},[L](){return jx},toString(){return"none()"},toJSON(){return{_id:"Option",_tag:this._tag}}}),Ls=(e)=>C(e,Ki),Hs=(e)=>e._tag==="None",$s=(e)=>e._tag==="Some",Zi=Object.create(qx),eu=(e)=>{let t=Object.create($x);return t.value=e,t};var tu="~effect/data/Result",ru={[tu]:{_A:(e)=>e,_E:(e)=>e},...Le,[Symbol.iterator](){return new bt(this)}},Bx=Object.assign(Object.create(ru),{_tag:"Success",_op:"Success",[H](e){return js(e)&&zs(e)&&Y(this.success,e.success)},[L](){return ue(D(this._tag))(D(this.success))},toString(){return`success(${X(this.success)})`},toJSON(){return{_id:"Result",_tag:this._tag,value:Et(this.success)}}}),Wx=Object.assign(Object.create(ru),{_tag:"Failure",_op:"Failure",[H](e){return js(e)&&qs(e)&&Y(this.failure,e.failure)},[L](){return ue(D(this._tag))(D(this.failure))},toString(){return`failure(${X(this.failure)})`},toJSON(){return{_id:"Result",_tag:this._tag,failure:Et(this.failure)}}}),js=(e)=>C(e,tu),qs=(e)=>e._tag==="Failure",zs=(e)=>e._tag==="Success",nu=(e)=>{let t=Object.create(Wx);return t.failure=e,t},ou=(e)=>{let t=Object.create(Bx);return t.success=e,t};function su(e){return(t,r)=>t===r?0:e(t,r)}var mr=su((e,t)=>{if(globalThis.Number.isNaN(e)&&globalThis.Number.isNaN(t))return 0;if(globalThis.Number.isNaN(e))return-1;if(globalThis.Number.isNaN(t))return 1;return e<t?-1:1});var au=c(2,(e,t)=>su((r,n)=>e(t(r),t(n))));var cu=(e)=>c(2,(t,r)=>e(t,r)===1);var J=()=>Zi,te=eu;var oo=Hs,Bs=$s,so=c(2,(e,{onNone:t,onSome:r})=>oo(e)?t():r(e.value));var Qx=c(2,(e,t)=>oo(e)?t():e.value);var uu=(e)=>e==null?J():te(e);var Ht=Qx(Je);var fu="~effect/Context/Service",Ce=function(){let e=Error.stackTraceLimit;Error.stackTraceLimit=2;let t=Error();Error.stackTraceLimit=e;function r(){}let n=r;if(Object.setPrototypeOf(n,Yx),Object.defineProperty(n,"stack",{get(){return t.stack}}),arguments.length>0){if(n.key=arguments[0],arguments[1]?.defaultValue)n[ao]=ao,n.defaultValue=arguments[1].defaultValue;return n}return function(o,s){if(n.key=o,s?.make)n.make=s.make;return n}},Yx={[fu]:fu,...Wi({label:"Service",evaluate(e){return K(fe(e.context,this))}}),toJSON(){return{_id:"Service",key:this.key,stack:this.stack}},of(e){return e},context(e){return Kr(this,e)},use(e){return v((t)=>e(fe(t.context,this)))},useSync(e){return v((t)=>K(e(fe(t.context,this))))}},ao="~effect/Context/Reference",lu="~effect/Context",hr=(e)=>{let t=Object.create(Gx);return t.mapUnsafe=e,t.mutable=!1,t},Gx={...Le,[lu]:{_Services:(e)=>e},toJSON(){return{_id:"Context",services:Array.from(this.mapUnsafe).map(([e,t])=>({key:e,value:t}))}},[H](e){if(!Vs(e)||this.mapUnsafe.size!==e.mapUnsafe.size)return!1;for(let t of this.mapUnsafe.keys())if(!e.mapUnsafe.has(t)||!Y(this.mapUnsafe.get(t),e.mapUnsafe.get(t)))return!1;return!0},[L](){return Gn(this.mapUnsafe.size)}},Vs=(e)=>C(e,lu);var pu=(e)=>C(e,ao),je=()=>Kx,Kx=hr(new Map),Kr=(e,t)=>hr(new Map([[e.key,t]])),qe=c(3,(e,t,r)=>gu(e,(n)=>{n.set(t.key,r)}));var du=c(3,(e,t,r)=>{if(e.mapUnsafe.has(t.key))return e.mapUnsafe.get(t.key);return pu(t)?co(t):r()});var $t=c(2,(e,t)=>{if(!e.mapUnsafe.has(t.key)){if(ao in t)return co(t);throw Xx(t)}return e.mapUnsafe.get(t.key)}),fe=$t,mu=(e,t)=>{if(!e.mapUnsafe.has(t.key))return co(t);return e.mapUnsafe.get(t.key)},Ws="~effect/Context/defaultValue",co=(e)=>{if(Ws in e)return e[Ws];return e[Ws]=e.defaultValue()},Xx=(e)=>{let t=Error(`Service not found${e.key?`: ${String(e.key)}`:""}`);if(e.stack){let r=e.stack.split(`
|
|
10
|
+
`);if(r.length>2){let n=r[2].match(/at (.*)/);if(n)t.message=t.message+` (defined at ${n[1]})`}}if(t.stack){let r=t.stack.split(`
|
|
11
|
+
`);r.splice(1,3),t.stack=r.join(`
|
|
12
|
+
`)}return t},hu=c(2,(e,t)=>{if(e.mapUnsafe.has(t.key))return te(e.mapUnsafe.get(t.key));return pu(t)?te(co(t)):J()}),xr=c(2,(e,t)=>{if(e.mapUnsafe.size===0)return t;if(t.mapUnsafe.size===0)return e;return gu(e,(r)=>{t.mapUnsafe.forEach((n,o)=>r.set(o,n))})}),xu=(...e)=>{let t=new Map;for(let r=0;r<e.length;r++)e[r].mapUnsafe.forEach((n,o)=>{t.set(o,n)});return hr(t)};var gu=(e,t)=>{if(e.mutable)return t(e.mapUnsafe),e;let r=new Map(e.mapUnsafe);return t(r),hr(r)},A=Ce;var io="~effect/time/Duration",Zx=BigInt(0);var Su=BigInt(1000),eg=BigInt(1e6);var tg=/^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/,we=(e)=>{switch(typeof e){case"number":return Js(e);case"bigint":return fo(e);case"string":{if(e==="Infinity")return yr;if(e==="-Infinity")return uo;let t=tg.exec(e);if(!t)break;let[r,n,o]=t,s=Number(n);switch(o){case"nano":case"nanos":return fo(BigInt(n));case"micro":case"micros":return ag(BigInt(n));case"milli":case"millis":return Js(s);case"second":case"seconds":return Qs(s);case"minute":case"minutes":return cg(s);case"hour":case"hours":return ig(s);case"day":case"days":return ug(s);case"week":case"weeks":return fg(s)}break}case"object":{if(e===null)break;if(io in e)return e;if(Array.isArray(e)){if(e.length!==2||!e.every(Ti))return yu(e);if(Number.isNaN(e[0])||Number.isNaN(e[1]))return gr;if(e[0]===-1/0||e[1]===-1/0)return uo;if(e[0]===1/0||e[1]===1/0)return yr;return se(BigInt(Math.round(e[0]*1e9))+BigInt(Math.round(e[1])))}let t=e,r=0;if(t.weeks)r+=t.weeks*604800000;if(t.days)r+=t.days*86400000;if(t.hours)r+=t.hours*3600000;if(t.minutes)r+=t.minutes*60000;if(t.seconds)r+=t.seconds*1000;if(t.milliseconds)r+=t.milliseconds;if(!t.microseconds&&!t.nanoseconds)return se(r);let n=BigInt(r)*eg;if(t.microseconds)n+=BigInt(t.microseconds)*Su;if(t.nanoseconds)n+=BigInt(t.nanoseconds);return se(n)}}return yu(e)},yu=(e)=>{throw Error(`Invalid Input: ${e}`)};var Eu={_tag:"Millis",millis:0},rg={_tag:"Infinity"},ng={_tag:"NegativeInfinity"},og={[io]:io,[L](){return Lr(this.value)},[H](e){return sg(e)&&dg(this,e)},toString(){switch(this.value._tag){case"Infinity":return"Infinity";case"NegativeInfinity":return"-Infinity";case"Nanos":return`${this.value.nanos} nanos`;case"Millis":return`${this.value.millis} millis`}},toJSON(){switch(this.value._tag){case"Millis":return{_id:"Duration",_tag:"Millis",millis:this.value.millis};case"Nanos":return{_id:"Duration",_tag:"Nanos",nanos:String(this.value.nanos)};case"Infinity":return{_id:"Duration",_tag:"Infinity"};case"NegativeInfinity":return{_id:"Duration",_tag:"NegativeInfinity"}}},[oe](){return this.toJSON()},pipe(){return F(this,arguments)}},se=(e)=>{let t=Object.create(og);if(typeof e==="number")if(isNaN(e)||e===0||Object.is(e,-0))t.value=Eu;else if(!Number.isFinite(e))t.value=e>0?rg:ng;else if(!Number.isInteger(e))t.value={_tag:"Nanos",nanos:BigInt(Math.round(e*1e6))};else t.value={_tag:"Millis",millis:e};else if(e===Zx)t.value=Eu;else t.value={_tag:"Nanos",nanos:e};return t},sg=(e)=>C(e,io);var gr=se(0),yr=se(1/0),uo=se(-1/0),fo=(e)=>se(e),ag=(e)=>se(e*Su),Js=(e)=>se(e),Qs=(e)=>se(e*1000),cg=(e)=>se(e*60000),ig=(e)=>se(e*3600000),ug=(e)=>se(e*86400000),fg=(e)=>se(e*604800000),Er=(e)=>lg(we(e),{onMillis:S,onNanos:(t)=>Number(t)/1e6,onInfinity:()=>1/0,onNegativeInfinity:()=>-1/0});var bu=(e)=>{let t=we(e);switch(t.value._tag){case"Infinity":case"NegativeInfinity":throw Error("Cannot convert infinite duration to nanos");case"Nanos":return t.value.nanos;case"Millis":return BigInt(Math.round(t.value.millis*1e6))}};var lg=c(2,(e,t)=>{switch(e.value._tag){case"Millis":return t.onMillis(e.value.millis);case"Nanos":return t.onNanos(e.value.nanos);case"Infinity":return t.onInfinity();case"NegativeInfinity":return(t.onNegativeInfinity??t.onInfinity)()}}),Cu=c(3,(e,t,r)=>{if(e.value._tag==="Infinity"||e.value._tag==="NegativeInfinity"||t.value._tag==="Infinity"||t.value._tag==="NegativeInfinity")return r.onInfinity(e,t);if(e.value._tag==="Millis")return t.value._tag==="Millis"?r.onMillis(e.value.millis,t.value.millis):r.onNanos(bu(e),t.value.nanos);else return r.onNanos(e.value.nanos,bu(t))});var pg=(e,t)=>Cu(e,t,{onMillis:(r,n)=>r===n,onNanos:(r,n)=>r===n,onInfinity:(r,n)=>r.value._tag===n.value._tag});var wu=c(2,(e,t)=>Cu(e,t,{onMillis:(r,n)=>se(r-n),onNanos:(r,n)=>se(r-n),onInfinity:(r,n)=>{let o=r.value._tag,s=n.value._tag;if(o==="Infinity")return s==="Infinity"?gr:yr;if(o==="NegativeInfinity")return s==="NegativeInfinity"?gr:uo;return s==="Infinity"?uo:yr}}));var dg=c(2,(e,t)=>pg(e,t));var Ys=(e)=>e.length>0;var le=ou,re=nu;var $=qs,jt=zs;var ku=c(2,(e,{onFailure:t,onSuccess:r})=>$(e)?t(e.failure):r(e.success));var vu=Vi;var yw={[Symbol.iterator](){return xg}},xg={next(){return{done:!0,value:void 0}}};var Tu=c(2,(e,t)=>({[Symbol.iterator](){let r=e[Symbol.iterator](),n=0;return{next(){let o=r.next();while(!o.done){if(t(o.value,n++))return{done:!1,value:o.value};o=r.next()}return{done:!0,value:void 0}}}}}));var yg=c(2,(e,t)=>Object.hasOwn(e,t));var Au=c(2,(e,t)=>{let r={...e};for(let n of Iu(e))r[n]=t(e[n],n);return r});var Iu=(e)=>Object.keys(e);var Eg=(e)=>c(2,(t,r)=>{for(let n of Iu(t))if(!yg(r,n)||!e(t[n],r[n]))return!1;return!0});var Ru=(e)=>{let t=Eg(e);return(r,n)=>t(r,n)&&t(n,r)};var Zr=globalThis.Array;var Gs=(e)=>new Zr(e);var ze=(e)=>Zr.isArray(e)?e:Zr.from(e);var Ks=c(2,(e,t)=>ze(e).concat(ze(t)));var Sw=Zr.isArray;var Xs=Ys,lo=Ys;function bg(e,t){return e<0||e>=t.length}var _u=c(2,(e,t)=>{let r=Math.floor(t);if(bg(r,e))throw Error(`Index out of bounds: ${r}`);return e[r]});var Sg=_u(0);var Cg=(e)=>e.slice(1);var po=c(2,(e,t)=>{let r=Zr.from(e);return r.sort(t),r});var wg=c(3,(e,t,r)=>{let n=ze(e),o=ze(t);if(lo(n)){if(lo(o))return kg(r)(Ks(n,o));return n}return o}),Mu=c(2,(e,t)=>wg(e,t,Ii()));var Pu=(e)=>[e],Zs=c(2,(e,t)=>e.map(t));var Fu=c(2,(e,t)=>{let r=[],n=[],o=0;for(let s of e){let a=t(s,o++);if(jt(a))n.push(a.success);else r.push(a.failure)}return[r,n]});var Uu=Ji;var kg=c(2,(e,t)=>{let r=ze(e);if(lo(r)){let n=[Sg(r)],o=Cg(r);for(let s of o)if(n.every((a)=>!t(s,a)))n.push(s);return n}return[]});var ea=c(2,(e,t)=>(r)=>{let n=e(r);if($(n))return re(r);let o=t(n.success);if($(o))return re(r);return o});var en=A("effect/Scheduler",{defaultValue:()=>new ho}),Nu="setImmediate"in globalThis?(e)=>{let t=globalThis.setImmediate(e);return()=>globalThis.clearImmediate(t)}:(e)=>{let t=setTimeout(e,0);return()=>clearTimeout(t)};class Du{buckets=[];scheduleTask(e,t){let r=this.buckets,n=r.length,o,s=0;for(;s<n;s++){if(r[s][0]>t)break;o=r[s]}if(o&&o[0]===t)o[1].push(e);else if(s===n)r.push([t,[e]]);else r.splice(s,0,[t,[e]])}drain(){let e=this.buckets;return this.buckets=[],e}}class ho{executionMode;setImmediate;constructor(e="async",t=Nu){this.executionMode=e,this.setImmediate=t}shouldYield(e){return e.currentOpCount>=e.maxOpsBeforeYield}makeDispatcher(){return new Lu(this.setImmediate)}}class Lu{tasks=new Du;running=void 0;setImmediate;constructor(e=Nu){this.setImmediate=e}scheduleTask(e,t){if(this.tasks.scheduleTask(e,t),this.running===void 0)this.running=this.setImmediate(this.afterScheduled)}afterScheduled=()=>{this.running=void 0,this.runTasks()};runTasks(){let e=this.tasks.drain();for(let t=0;t<e.length;t++){let r=e[t][1];for(let n=0;n<r.length;n++)r[n]()}}flush(){while(this.tasks.buckets.length>0){if(this.running!==void 0)this.running(),this.running=void 0;this.runTasks()}}}var Hu=A("effect/Scheduler/MaxOpsBeforeYield",{defaultValue:()=>2048}),$u=A("effect/Scheduler/PreventSchedulerYield",{defaultValue:()=>!1});var ta="effect/Tracer/ParentSpan";class xo extends Ce()(ta){}var Ag=(e)=>e;var br=A("effect/Tracer/DisablePropagation",{defaultValue:ar}),qu=A("effect/Tracer/CurrentTraceLevel",{defaultValue:()=>"Info"}),zu=A("effect/Tracer/MinimumTraceLevel",{defaultValue:()=>"All"}),ra="effect/Tracer",go=A(ra,{defaultValue:()=>Ag({span:(e)=>new Bu(e)})});class Bu{_tag="Span";spanId;traceId="native";sampled;name;parent;annotations;links;startTime;kind;status;attributes;events=[];constructor(e){this.name=e.name,this.parent=e.parent,this.annotations=e.annotations,this.links=e.links,this.startTime=e.startTime,this.kind=e.kind,this.sampled=e.sampled,this.status={_tag:"Started",startTime:e.startTime},this.attributes=new Map,this.traceId=Ht(e.parent)?.traceId??ju(32),this.spanId=ju(16)}end(e,t){this.status={_tag:"Ended",endTime:e,exit:t,startTime:this.status.startTime}}attribute(e,t){this.attributes.set(e,t)}event(e,t,r){this.events.push([e,t,r??{}])}addLinks(e){this.links.push(...e)}}var ju=function(){return function(r){let n="";for(let o=0;o<r;o++)n+="abcdef0123456789".charAt(Math.floor(Math.random()*16));return n}}();var Vu="effect/observability/Metric/FiberRuntimeMetricsKey";var yo=A("effect/References/CurrentConcurrency",{defaultValue:()=>"unbounded"}),Ju=A("effect/ErrorReporter/CurrentErrorReporters",{defaultValue:()=>new Set}),tn=A("effect/References/CurrentStackFrame",{defaultValue:Je}),Eo=A("effect/References/TracerEnabled",{defaultValue:Re}),rn=A("effect/References/TracerTimingEnabled",{defaultValue:Re}),nn=A("effect/References/TracerSpanAnnotations",{defaultValue:()=>({})}),on=A("effect/References/TracerSpanLinks",{defaultValue:()=>[]}),ft=A("effect/References/CurrentLogAnnotations",{defaultValue:()=>({})}),na=A("effect/References/CurrentLogLevel",{defaultValue:()=>"Info"}),oa=A("effect/References/MinimumLogLevel",{defaultValue:()=>"Info"});var bo=A("effect/References/CurrentLogSpans",{defaultValue:()=>[]});var So=(e)=>{if(e?.captureStackTrace===!1)return e;else if(e?.captureStackTrace!==void 0&&typeof e.captureStackTrace!=="boolean")return e;let t=Error.stackTraceLimit;Error.stackTraceLimit=3;let r=Error();return Error.stackTraceLimit=t,{...e,captureStackTrace:Og(()=>r.stack)}},sa=(e)=>(t)=>{let r;return()=>{if(r!==void 0)return r;let n=t();if(!n)return;let o=n.split(`
|
|
13
|
+
`);if(o[e]!==void 0)return r=o[e].trim(),r}},Og=sa(3);var Co="dev";class tf extends zr{fiberId;constructor(e,t=Br){super("Interrupt",t,"Interrupted");this.fiberId=e}toString(){return`Interrupt(${this.fiberId})`}toJSON(){return{_tag:"Interrupt",fiberId:this.fiberId}}[H](e){return to(e)&&this.fiberId===e.fiberId&&this.annotations===e.annotations}[L](){return ue(Q(`${this._tag}:${this.fiberId}`))(Qn(this.annotations))}}var vo=(e)=>new st([new tf(e)]);var rf=(e)=>{let t=e.reasons.find(Vr);return t?le(t):re(e)},Ze=(e)=>{for(let t=0;t<e.reasons.length;t++){let r=e.reasons[t];if(r._tag==="Fail")return le(r.error)}return re(e)};var nf=(e)=>e.reasons.some(Jr);var ha=(e)=>{let t=e.reasons.find(Jr);return t?le(t.defect):re(e)},xa=(e)=>e.reasons.some(to);var of=(e)=>{let t;for(let r=0;r<e.reasons.length;r++){let n=e.reasons[r];if(n._tag!=="Interrupt")continue;if(t??=new Set,n.fiberId!==void 0)t.add(n.fiberId)}return t?le(t):re(e)};var sf=c(2,(e,t)=>{if(e.reasons.length===0)return t;else if(t.reasons.length===0)return e;let r=new st(Mu(e.reasons,t.reasons));return Y(e,r)?e:r});var Mg=(e)=>{let t={Fail:[],Die:[],Interrupt:[]};for(let r=0;r<e.reasons.length;r++)t[e.reasons[r]._tag].push(e.reasons[r]);return t},To=(e)=>{let t=Mg(e);if(t.Fail.length>0)return t.Fail[0].error;else if(t.Die.length>0)return t.Die[0].defect;else if(t.Interrupt.length>0)return new globalThis.Error("All fibers interrupted without error");return new globalThis.Error("Empty cause")},af=(e)=>{let t=[],r=[];if(e.reasons.length===0)return t;let n=Error.stackTraceLimit;Error.stackTraceLimit=1;for(let o of e.reasons){if(o._tag==="Interrupt"){r.push(o);continue}t.push(aa(o._tag==="Die"?o.defect:o.error,o.annotations))}if(t.length===0){let o=Error("The fiber was interrupted by:");o.name="InterruptCause",o.stack=Ng(o,r);let s=new globalThis.Error("All fibers interrupted without error",{cause:o});s.name="InterruptError",s.stack=`${s.name}: ${s.message}`,t.push(aa(s,r[0].annotations))}return Error.stackTraceLimit=n,t},aa=(e,t)=>{let r=typeof e,n;if(e&&r==="object"){if(n=new globalThis.Error(Pg(e),{cause:e.cause?aa(e.cause):void 0}),typeof e.name==="string")n.name=e.name;if(typeof e.stack==="string")n.stack=Ug(e.stack,n,t);else{let o=`${n.name}: ${n.message}`;n.stack=t?cf(o,t):o}for(let o of Object.keys(e))if(!(o in n))n[o]=e[o]}else n=new globalThis.Error(!e?`Unknown error: ${e}`:r==="string"?e:$r(e));return n},Pg=(e)=>{if(typeof e.message==="string")return e.message;else if(typeof e.toString==="function"&&e.toString!==Object.prototype.toString&&e.toString!==Array.prototype.toString)try{return e.toString()}catch{}return $r(e)},Fg=/\((.*)\)/g,Ug=(e,t,r)=>{let n=`${t.name}: ${t.message}`,o=(e.startsWith(n)?e.slice(n.length):e).split(`
|
|
14
|
+
`),s=[n];for(let a=1;a<o.length;a++){if(/(?:Generator\.next|~effect\/Effect)/.test(o[a]))break;s.push(o[a])}return r?cf(s.join(`
|
|
15
|
+
`),r):s.join(`
|
|
16
|
+
`)},cf=(e,t)=>{let r=t?.get(Qr.key);if(r)e=`${e}
|
|
17
|
+
${uf(r)}`;return e},Ng=(e,t)=>{let r=[`${e.name}: ${e.message}`];for(let n of t){let o=n.fiberId!==void 0?`#${n.fiberId}`:"unknown",s=n.annotations.get($i.key);if(r.push(` at fiber (${o})`),s)r.push(uf(s))}return r.join(`
|
|
18
|
+
`)},uf=(e)=>{let t=[],r=e,n=0;while(r&&n<10){let o=r.stack();if(o){let s=o.matchAll(Fg),a=!1;for(let[,i]of s)a=!0,t.push(` at ${r.name} (${i})`);if(!a)t.push(` at ${r.name} (${o.replace(/^at /,"")})`)}else t.push(` at ${r.name}`);r=r.parent,n++}return t.join(`
|
|
19
|
+
`)},ga=(e)=>af(e).map((t)=>t.cause?`${t.stack} {
|
|
20
|
+
${ff(t.cause," ")}
|
|
21
|
+
}`:t.stack).join(`
|
|
22
|
+
`),ff=(e,t)=>{let r=e.stack.split(`
|
|
23
|
+
`),n=`${t}[cause]: ${r[0]}`;for(let o=1,s=r.length;o<s;o++)n+=`
|
|
24
|
+
${t}${r[o]}`;if(e.cause)n+=` {
|
|
25
|
+
${ff(e.cause,`${t} `)}
|
|
26
|
+
${t}}`;return n},wo=`~effect/Fiber/${Co}`,Dg={_A:S,_E:S},Lg={id:0},cn=()=>globalThis[lr];class ya{constructor(e,t=!0){this[wo]=Dg,this.setContext(e),this.id=++Lg.id,this.currentOpCount=0,this.currentLoopCount=0,this.interruptible=t,this._stack=[],this._observers=[],this._exit=void 0,this._children=void 0,this._interruptedCause=void 0,this._yielded=void 0,this.runtimeMetrics?.recordFiberStart(this.context)}[wo];id;interruptible;currentOpCount;currentLoopCount;_stack;_observers;_exit;_currentExit;_children;_interruptedCause;_yielded;context;currentScheduler;currentTracerContext;currentSpan;currentLogLevel;minimumLogLevel;currentStackFrame;runtimeMetrics;maxOpsBeforeYield;currentPreventYield;_dispatcher=void 0;get currentDispatcher(){return this._dispatcher??=this.currentScheduler.makeDispatcher()}getRef(e){return mu(this.context,e)}addObserver(e){if(this._exit)return e(this._exit),cr;return this._observers.push(e),()=>{let t=this._observers.indexOf(e);if(t>=0)this._observers.splice(t,1)}}interruptUnsafe(e,t){if(this._exit)return;let r=vo(e);if(this.currentStackFrame)r=Wr(r,Kr(Qr,this.currentStackFrame));if(t)r=Wr(r,t);if(this._interruptedCause=this._interruptedCause?sf(this._interruptedCause,r):r,this.interruptible)this.evaluate(j(this._interruptedCause))}pollUnsafe(){return this._exit}evaluate(e){if(this._exit)return;else if(this._yielded!==void 0){let n=this._yielded;this._yielded=void 0,n()}let t=this.runLoop(e);if(t===Ct)return;let r=ca.interruptChildren&&ca.interruptChildren(this);if(r!==void 0)return this.evaluate(y(r,()=>t));this._exit=t,this.runtimeMetrics?.recordFiberEnd(this.context,this._exit);for(let n=0;n<this._observers.length;n++)this._observers[n](t);this._observers.length=0}runLoop(e){let t=globalThis[lr];globalThis[lr]=this;let r=!1,n=e;this.currentOpCount=0;let o=++this.currentLoopCount;try{while(!0){if(this.currentOpCount++,!r&&!this.currentPreventYield&&this.currentScheduler.shouldYield(this)){r=!0;let s=n;n=y(kr,()=>s)}if(n=this.currentTracerContext?this.currentTracerContext(n,this):n[V](this),o!==this.currentLoopCount)return Ct;else if(n===Ct){let s=this._yielded;if(Ut in s)return this._yielded=void 0,s;return Ct}}}catch(s){if(!C(n,V))return it(`Fiber.runLoop: Not a valid effect: ${String(n)}`);return this.runLoop(it(s))}finally{globalThis[lr]=t}}getCont(e){while(!0){let t=this._stack.pop();if(!t)return;let r=t[St]&&t[St](this);if(r)return r[e]=r,r;if(t[e])return t}}yieldWith(e){return this._yielded=e,Ct}children(){return this._children??=new Set}pipe(){return F(this,arguments)}setContext(e){this.context=e;let t=this.getRef(en);if(t!==this.currentScheduler)this.currentScheduler=t,this._dispatcher=void 0;this.currentSpan=e.mapUnsafe.get(ta),this.currentLogLevel=this.getRef(na),this.minimumLogLevel=this.getRef(oa),this.currentStackFrame=e.mapUnsafe.get(tn.key),this.maxOpsBeforeYield=this.getRef(Hu),this.currentPreventYield=this.getRef($u),this.runtimeMetrics=e.mapUnsafe.get(Vu);let r=e.mapUnsafe.get(ra);this.currentTracerContext=r?r.context:void 0}get currentSpanLocal(){return this.currentSpan?._tag==="Span"?this.currentSpan:void 0}}var ca={interruptChildren:void 0},Ao=(e)=>{if(!e.currentStackFrame)return;let t=new Map;return t.set(Qr.key,e.currentStackFrame),hr(t)},Hg=(e)=>{if(e._children===void 0||e._children.size===0)return;return Bt(e._children)},lf=(e)=>{let t=e;if(t._exit)return g(t._exit);return ge((r)=>{if(t._exit)return r(g(t._exit));return P(e.addObserver((n)=>r(g(n))))})},Io=(e)=>ge((t)=>{let r=e[Symbol.iterator](),n=[],o=void 0;function s(){let a=r.next();while(!a.done){if(a.value._exit){n.push(a.value._exit),a=r.next();continue}o=a.value.addObserver((i)=>{n.push(i),s()});return}t(g(n))}return s(),P(()=>o?.())});var Ea=(e)=>v((t)=>pf(e,t.id)),pf=c((e)=>C(e[0],wo),(e,t,r)=>v((n)=>{let o=Ao(n);return o=o&&r?xr(o,r):o??r,e.interruptUnsafe(t,o),un(lf(e))})),Bt=(e)=>v((t)=>{let r=Ao(t);for(let n of e)n.interruptUnsafe(t.id,r);return un(Io(e))});var g=K,j=Se,N=ct,P=Oe({op:"Sync",[V](e){let t=this[R](),r=e.getCont(he);return r?r[he](t,e):e.yieldWith(K(t))}}),I=Oe({op:"Suspend",[V](e){return this[R]()}}),df=so({onNone:()=>N(new ut("Effect.fromOption: Option.none")),onSome:g}),wr=ku({onFailure:N,onSuccess:g}),mf=(e)=>e==null?N(new ut):g(e),ba=Oe({op:"Yield",[V](e){let t=!1;return e.currentDispatcher.scheduleTask(()=>{if(t)return;e.evaluate(Be)},this[R]??0),e.yieldWith(()=>{t=!0})}}),kr=ba(0),Sa=(e)=>g(te(e)),Ro=g(J()),hf=(e)=>I(()=>j(M(e))),Wt=(e)=>it(e),Oo=(e)=>I(()=>N(M(e))),_=g(void 0);var xf=(e)=>I(()=>{try{return g(M(e.try))}catch(t){return N(M(()=>e.catch(t)))}});var Ca=(e)=>wa(function(t,r){M(()=>e(r)).then((n)=>t(g(n)),(n)=>t(Wt(n)))},e.length!==0),gf=(e)=>{let t=typeof e==="function"?e:e.try,r=typeof e==="function"?(n)=>new fc(n,"An error occurred in Effect.tryPromise"):e.catch;return wa(function(n,o){try{M(()=>t(o)).then((s)=>n(g(s)),(s)=>n(N(M(()=>r(s)))))}catch(s){n(N(M(()=>r(s))))}},eval.length!==0)},yf=(e)=>v((t)=>e(t.id)),Ef=v(g),bf=yf(g),wa=Oe({op:"Async",single:!1,[V](e){let t=M(()=>this[R][0].bind(e.currentScheduler)),r=!1,n=!1,o=this[R][1]?new AbortController:void 0,s=t((a)=>{if(r)return;if(r=!0,n)e.evaluate(a);else n=a},o?.signal);if(n!==!1)return n;if(n=!0,e._yielded=()=>{r=!0},o===void 0&&s===void 0)return Ct;return e._stack.push($g(()=>(r=!0,o?.abort(),s??Be))),Ct}}),$g=Oe({op:"AsyncFinalizer",[St](e){if(e.interruptible)e.interruptible=!1,e._stack.push(jo)},[De](e,t){return xa(e)?y(this[R](),()=>j(e)):j(e)}}),ge=(e)=>wa(e,e.length>=2),ka=ge(cr),Sf=(...e)=>I(()=>Sr(e.length===1?e[0]():e[1].call(e[0].self))),va=(e,...t)=>{let r=t.length===0?function(){return I(()=>Sr(e.apply(this,arguments)))}:function(){let n=I(()=>Sr(e.apply(this,arguments)));for(let o=0;o<t.length;o++)n=t[o](n,...arguments);return n};return Ta(e.length,r)},Ta=(e,t)=>Object.defineProperty(t,"length",{value:e,configurable:!0}),Qu=sa(2),Cf=function(){let e=typeof arguments[0]==="string",t=e?arguments[0]:"Effect.fn",r=e?arguments[1]:void 0,n=globalThis.Error.stackTraceLimit;globalThis.Error.stackTraceLimit=2;let o=new globalThis.Error;if(globalThis.Error.stackTraceLimit=n,e)return(s,...a)=>Yu(t,s,o,a,e,r);return Yu(t,arguments[0],o,Array.prototype.slice.call(arguments,1),e,r)},Yu=(e,t,r,n,o,s)=>{let a=typeof t==="function"?t:n.pop().bind(t.self);return Ta(a.length,function(...i){let f=I(()=>{let p=a.apply(this,arguments);return w(p)?p:Sr(p)});for(let p=0;p<n.length;p++)f=n[p](f,...i);if(!w(f))return f;let l=globalThis.Error.stackTraceLimit;globalThis.Error.stackTraceLimit=2;let h=new globalThis.Error;return globalThis.Error.stackTraceLimit=l,pt(o?an(e,s,(p)=>la(f,p)):f,tn,(p)=>({name:e,stack:Qu(()=>h.stack),parent:{name:`${e} (definition)`,stack:Qu(()=>r.stack),parent:p}}))})},wf=(e,...t)=>Ta(e.length,t.length===0?function(){return Gu(()=>e.apply(this,arguments))}:function(){let r=Gu(()=>e.apply(this,arguments));for(let n of t)r=n(r);return r}),Gu=(e)=>{try{let t=e(),r=void 0;while(!0){let n=t.next(r);if(n.done)return g(n.value);let o=n.value;if(o&&o._tag==="Success"){r=o.value;continue}else if(o&&o._tag==="Failure")return n.value;else{let s=!0;return I(()=>{if(s)return s=!1,y(n.value,(a)=>Sr(t,a));else return I(()=>Sr(e()))})}}}catch(t){return Wt(t)}},Sr=Oe({op:"Iterator",single:!1,[he](e,t){let r=this[R][0];while(!0){let n=r.next(e);if(n.done)return g(n.value);if(!ve(n.value))return t._stack.push(this),n.value;else if(n.value._tag==="Failure")return n.value;e=n.value.value}},[V](e){return this[he](this[R][1],e)}}),ke=c(2,(e,t)=>{let r=g(t);return y(e,(n)=>r)}),_o=(e)=>U(e,te),kf=(e)=>Jt(e,{onFailure:g,onSuccess:N}),lt=c(2,(e,t)=>y(e,(r)=>w(t)?t:M(()=>t(r)))),Vt=c(2,(e,t)=>y(e,(r)=>ke(w(t)?t:M(()=>t(r)),r))),un=(e)=>y(e,(t)=>Be),vf=(e)=>Me(e,N),Aa=(e,t)=>v((r)=>ge((n)=>{let o=ze(e),s=o.length,a=0,i=!1,f=new Set,l=[],h=(p,x,k)=>{if(a++,p._tag==="Failure"){if(l.push(...p.cause.reasons),a>=s)n(j(Nt(l)));return}let E=!i;if(i=!0,n(f.size===0?p:y(Qt(Bt(f)),()=>p)),E&&t?.onWinner)t.onWinner({fiber:x,index:k,parentFiber:r})};for(let p=0;p<s;p++){let x=Yt(r,o[p],!0,!0,!1);if(f.add(x),x.addObserver((k)=>{f.delete(x),h(k,x,p)}),i)break}return Bt(f)})),Ia=(e,t)=>v((r)=>ge((n)=>{let o=!1,s=new Set,a=(f)=>{o=!0,n(s.size===0?f:y(Qt(Bt(s)),()=>f))},i=0;for(let f of e){if(o)break;let l=i++,h=Yt(r,f,!0,!0,!1);s.add(h),h.addObserver((p)=>{s.delete(h);let x=!o;if(a(p),x&&t?.onWinner)t.onWinner({fiber:h,index:l,parentFiber:r})})}return Bt(s)})),Tf=c((e)=>w(e[1]),(e,t,r)=>Aa([e,t],r)),Mo=c((e)=>w(e[1]),(e,t,r)=>Ia([e,t],r)),y=c(2,(e,t)=>{let r=Object.create(jg);return r[R]=e,r[he]=t.length!==1?(n)=>t(n):t,r}),jg=at({op:"OnSuccess",[V](e){return e._stack.push(this),this[R]}}),Af=c(2,(e,t)=>{if(ve(e))return e._tag==="Success"?t.onSuccess(e.value):t.onFailure(e.cause);return Xe(e,t)}),ve=(e)=>(Ut in e),If=c(2,(e,t)=>{if(ve(e))return e._tag==="Success"?t(e.value):e;return y(e,t)}),Rf=(e)=>y(e,S),U=c(2,(e,t)=>y(e,(r)=>g(M(()=>t(r))))),Of=c(2,(e,t)=>ve(e)?Uf(e,t):U(e,t)),_f=c(2,(e,t)=>ve(e)?Nf(e,t):Da(e,t)),Mf=c(2,(e,t)=>ve(e)?Df(e,t):La(e,t)),Pf=c(2,(e,t)=>{if(ve(e)){if(e._tag==="Success")return e;let r=Ze(e.cause);if($(r))return e;return t(r.success)}return Te(e,t)});var Ra=(e)=>e._tag==="Success";var Ff=(e)=>e._tag==="Failure"?le(e.cause):re(e);var Be=K(void 0),Uf=c(2,(e,t)=>e._tag==="Success"?K(t(e.value)):e),Nf=c(2,(e,t)=>{if(e._tag==="Success")return e;let r=Ze(e.cause);if($(r))return e;return ct(t(r.success))}),Df=c(2,(e,t)=>{if(e._tag==="Success")return K(t.onSuccess(e.value));let r=Ze(e.cause);if($(r))return e;return ct(t.onFailure(r.success))});var Lf=(e)=>{let t=[];for(let r of e)if(r._tag==="Failure")t.push(...r.cause.reasons);return t.length===0?Be:Se(Nt(t))};var Hf=(e)=>e,$f=(e)=>v((t)=>g(hu(t.context,e))),qg=(e)=>v((t)=>t.context.mapUnsafe.has(e.key)?g($t(t.context,e)):N(new ut)),fn=c(2,(e,t)=>v((r)=>{let n=r.context,o=t(n);if(n===o)return e;return r.setContext(o),Ar(e,()=>{r.setContext(n);return})})),pt=c(3,(e,t,r)=>fn(e,(n)=>{let o=$t(n,t),s=r(o);if(o===s)return n;return qe(n,t,s)})),Oa=()=>zg,zg=v((e)=>g(e.context)),vt=(e)=>v((t)=>e(t.context)),dt=c(2,(e,t)=>{if(ve(e))return e;return fn(e,xr(t))}),ae=function(){if(arguments.length===1)return c(2,(e,t)=>Ku(e,arguments[0],t));return c(3,(e,t,r)=>Ku(e,t,r)).apply(this,arguments)},Ku=(e,t,r)=>fn(e,(n)=>{if(n.mapUnsafe.get(t.key)===r)return n;return qe(n,t,r)}),Po=c(3,(e,t,r)=>y(r,(n)=>ae(e,t,n))),jf=ae(yo),_a=c((e)=>w(e[1]),(e,t,r)=>Ma(e,t,(n,o)=>[n,o],r)),Ma=c((e)=>w(e[1]),(e,t,r,n)=>n?.concurrent?U(qo([e,t],{concurrency:2}),([o,s])=>M(()=>r(o,s))):y(e,(o)=>U(t,(s)=>M(()=>r(o,s))))),qf=c((e)=>w(e[0]),(e,t,r)=>ec(e,t,r?(n)=>N(r(n)):()=>N(new ut))),zf=c(2,(e,t)=>y(t,(r)=>r?_o(e):Ro)),Pa=c(2,(e,t)=>Array.from({length:t},()=>e)),Bf=c((e)=>w(e[0]),(e,t,r)=>qo(Pa(e,t),r)),Fo=c((e)=>w(e[0]),(e,t)=>Tt({while:Re,body:G(t?.disableYield?e:y(e,(r)=>kr)),step:cr})),Me=c(2,(e,t)=>{let r=Object.create(Bg);return r[R]=e,r[De]=t.length!==1?(n)=>t(n):t,r}),Bg=at({op:"OnFailure",[V](e){return e._stack.push(this),this[R]}}),Fa=c(3,(e,t,r)=>Me(e,(n)=>{if(!t(n))return j(n);return M(()=>r(n))})),vr=c(3,(e,t,r)=>Me(e,(n)=>{let o=t(n);return $(o)?j(o.failure):M(()=>r(o.success,n))})),Te=c(2,(e,t)=>vr(e,Ze,(r)=>t(r))),Wf=(e)=>Jt(e,{onFailure:(t)=>Ds(t)?Ro:N(t),onSuccess:Sa}),Vf=c(2,(e,t)=>vr(e,ha,t)),Jf=c(2,(e,t)=>Me(e,(r)=>lt(M(()=>t(r)),j(r)))),Qf=c(3,(e,t,r)=>Fa(e,t,(n)=>lt(M(()=>r(n)),j(n)))),Uo=c(3,(e,t,r)=>Me(e,(n)=>{let o=t(n);if($(o))return j(n);return lt(M(()=>r(o.success,n)),j(n))})),Ua=c(2,(e,t)=>Uo(e,Ze,(r)=>t(r))),Yf=c(3,(e,t,r)=>{let n=Array.isArray(t)?(o)=>C(o,"_tag")&&t.includes(o._tag):Qe(t);return Ua(e,(o)=>n(o)?r(o):_)}),Gf=c(2,(e,t)=>Uo(e,ha,(r)=>t(r))),ln=c((e)=>w(e[0]),(e,t,r,n)=>Me(e,(o)=>{let s=Ze(o);if($(s))return j(s.failure);if(!t(s.success))return n?M(()=>n(s.success)):j(o);return M(()=>r(s.success))})),No=c((e)=>w(e[0]),(e,t,r,n)=>Me(e,(o)=>{let s=Ze(o);if($(s))return j(s.failure);let a=t(s.success);if($(a))return n?M(()=>n(a.failure)):j(o);return M(()=>r(a.success))})),Na=c((e)=>w(e[0]),(e,t,r,n)=>{let o=Array.isArray(t)?(s)=>C(s,"_tag")&&t.includes(s._tag):Qe(t);return ln(e,o,r,n)}),Kf=c((e)=>w(e[0]),(e,t,r)=>{let n;return No(e,(o)=>(n??=Object.keys(t),C(o,"_tag")&&ur(o._tag)&&n.includes(o._tag)?le(o):re(o)),(o)=>M(()=>t[o._tag](o)),r)}),Xf=c((e)=>w(e[0]),(e,t,r,n,o)=>ln(e,(s)=>Qe(s,t)&&C(s,"reason"),(s)=>{let a=s.reason;if(Qe(a,r))return n(a,s);return o?M(()=>o(a,s)):N(s)})),Zf=c((e)=>w(e[0]),(e,t,r,n)=>{let o;return ln(e,(s)=>Qe(s,t)&&C(s,"reason")&&C(s.reason,"_tag")&&ur(s.reason._tag),(s)=>{let a=s.reason;if(o??=Object.keys(r),o.includes(a._tag))return M(()=>r[a._tag](a,s));return n?M(()=>n(a,s)):N(s)})}),el=c(2,(e,t)=>No(e,(r)=>{if(Qe(r,t)&&C(r,"reason"))return le(r.reason);return re(r)},N));var Da=c(2,(e,t)=>Te(e,(r)=>Oo(()=>t(r)))),La=c(2,(e,t)=>Jt(e,{onFailure:(r)=>Oo(()=>t.onFailure(r)),onSuccess:(r)=>P(()=>t.onSuccess(r))})),Ha=(e)=>Te(e,Wt),tl=c(2,(e,t)=>Te(e,(r)=>P(t))),rl=(e)=>I(()=>{let t=e[Symbol.iterator](),r=t.next();if(r.done)return Wt(Error("Received an empty collection of effects"));function n(o){let s=t.next();if(s.done)return o.value;return Te(o.value,(a)=>n(s))}return n(r)}),$a=(e)=>Te(e,(t)=>y(kr,()=>$a(e))),nl=c((e)=>w(e[0]),(e,t)=>{if(!t?.log)return Jt(e,{onFailure:(n)=>_,onSuccess:(n)=>_});let r=We(t.log===!0?void 0:t.log);return Xe(e,{onFailure(n){let o=rf(n);return $(o)?j(o.failure):t.message===void 0?r(n):r(t.message,n)},onSuccess:(n)=>_})}),ol=c((e)=>w(e[0]),(e,t)=>{if(!t?.log)return Xe(e,{onFailure:(n)=>_,onSuccess:(n)=>_});let r=We(t.log===!0?void 0:t.log);return Xe(e,{onFailure:(n)=>t.message===void 0?r(n):r(t.message,n),onSuccess:(n)=>_})}),sl=(e)=>Do(e,{onFailure:J,onSuccess:te}),kt=(e)=>pn(e,{onFailure:re,onSuccess:le}),Xe=c(2,(e,t)=>{let r=Object.create(Wg);return r[R]=e,r[he]=t.onSuccess.length!==1?(n)=>t.onSuccess(n):t.onSuccess,r[De]=t.onFailure.length!==1?(n)=>t.onFailure(n):t.onFailure,r}),Wg=at({op:"OnSuccessAndFailure",[V](e){return e._stack.push(this),this[R]}}),ja=c(2,(e,t)=>Xe(e,{onFailure:(r)=>P(()=>t.onFailure(r)),onSuccess:(r)=>P(()=>t.onSuccess(r))})),Jt=c(2,(e,t)=>Xe(e,{onFailure:(r)=>{let n=r.reasons.find(Vr);return n?M(()=>t.onFailure(n.error)):j(r)},onSuccess:t.onSuccess})),Do=c(2,(e,t)=>Jt(e,{onFailure:(r)=>P(()=>t.onFailure(r)),onSuccess:(r)=>P(()=>t.onSuccess(r))})),pn=c(2,(e,t)=>{if(ve(e)){if(e._tag==="Success")return K(t.onSuccess(e.value));let r=Ze(e.cause);if($(r))return e;return K(t.onFailure(r.success))}return Do(e,t)}),al=c(2,(e,t)=>{if(ve(e)){if(e._tag==="Success")return K(t.onSuccess(e.value));return K(t.onFailure(e.cause))}return ja(e,t)}),dn=(e)=>ve(e)?K(e):Vg(e),Vg=Oe({op:"Exit",[V](e){return e._stack.push(this),this[R]},[he](e,t,r){return g(r??K(e))},[De](e,t,r){return g(r??Se(e))}}),cl=pn({onFailure:()=>!0,onSuccess:()=>!1}),il=pn({onFailure:()=>!1,onSuccess:()=>!0}),ul=c(2,(e,t)=>lt(Kt(t),e)),qa=c(2,(e,t)=>Mo(e,y(Kt(t.duration),t.orElse))),fl=c(2,(e,t)=>qa(e,{duration:t,orElse:()=>N(new ic)})),ll=c(2,(e,t)=>Mo(_o(e),ke(Kt(t),J()))),pl=(e)=>Gt((t)=>{let r=t.currentTimeNanosUnsafe();return U(e,(n)=>[fo(t.currentTimeNanosUnsafe()-r),n])}),ia="~effect/Scope",ua="~effect/Scope/Closeable",Tr=Ce("effect/Scope"),za=(e,t)=>I(()=>Lo(e,t)??_),Lo=(e,t)=>{if(e.state._tag==="Closed")return;let r={_tag:"Closed",exit:t};if(e.state._tag==="Empty"){e.state=r;return}let{finalizers:n}=e.state;if(e.state=r,n.size===0)return;else if(n.size===1)return n.values().next().value(t);return Jg(e,n,t)},Jg=va(function*(e,t,r){let n=[],o=[],s=Array.from(t.values()),a=cn();for(let i=s.length-1;i>=0;i--){let f=s[i];if(e.strategy==="sequential")n.push(yield*dn(f(r)));else o.push(Yt(a,f(r),!0,!0,"inherit"))}if(o.length>0)n=yield*Io(o);return yield*Lf(n)});var dl=(e,t)=>{let r=mn(t);if(e.state._tag==="Closed")return r.state=e.state,r;let n={};return ko(e,n,(o)=>za(r,o)),ko(r,n,(o)=>P(()=>hl(e,n))),r},et=(e,t)=>I(()=>{if(e.state._tag==="Closed")return t(e.state.exit);return ko(e,{},t),_}),ml=(e,t)=>et(e,G(t)),ko=(e,t,r)=>{if(e.state._tag==="Empty")e.state={_tag:"Open",finalizers:new Map([[t,r]])};else if(e.state._tag==="Open")e.state.finalizers.set(t,r)},hl=(e,t)=>{if(e.state._tag==="Open")e.state.finalizers.delete(t)},mn=(e="sequential")=>({[ua]:ua,[ia]:ia,strategy:e,state:Qg}),Qg={_tag:"Empty"};var hn=Tr,xl=ae(Tr),Ba=(e)=>v((t)=>{let r=t.context,n=mn();return t.setContext(qe(t.context,Tr,n)),Ar(e,(o)=>(t.setContext(r),Lo(n,o)))});var Ho=(e)=>I(()=>{let t=mn();return pe(e(t),(r)=>I(()=>Lo(t,r)??_))}),$o=(e,t,r)=>vt((n)=>xn((o)=>y(hn,(s)=>Vt(r?.interruptible?o(e):e,(a)=>et(s,(i)=>dt(t(a,i),n)))))),Wa=(e)=>y(hn,(t)=>vt((r)=>et(t,(n)=>dt(e(n),r)))),Ar=Oe({op:"OnExit",single:!1,[V](e){return e._stack.push(this),this[R][0]},[St](e){if(e.interruptible&&this[R][2]!==!0)e._stack.push(jo),e.interruptible=!1},[he](e,t,r){r??=K(e);let n=this[R][1](r);return n?y(n,(o)=>r):r},[De](e,t,r){r??=Se(e);let n=this[R][1](r);return n?y(n,(o)=>r):r}}),pe=c(2,Ar),gl=c(2,(e,t)=>pe(e,(r)=>t)),Va=c(3,(e,t,r)=>pe(e,(n)=>{if(!t(n))return _;return r(n)})),Ja=c(3,(e,t,r)=>pe(e,(n)=>{let o=t(n);return $(o)?_:r(o.success,n)})),Qa=c(2,(e,t)=>Ja(e,Ff,t)),yl=c(3,(e,t,r)=>Va(e,(n)=>{if(n._tag!=="Failure")return!1;return t(n.cause)},(n)=>r(n.cause))),Ya=c(3,(e,t,r)=>pe(e,(n)=>{if(n._tag!=="Failure")return _;let o=t(n.cause);return $(o)?_:r(o.success,n.cause)})),El=c(2,(e,t)=>Ya(of,t)(e)),bl=(e,t,r)=>xn((n)=>y(e,(o)=>Ar(n(t(o)),(s)=>r(o,s),!0))),Sl=(e)=>$o(e,(t)=>C(t,Symbol.asyncDispose)?Ca(()=>t[Symbol.asyncDispose]()):P(()=>t[Symbol.dispose]())),Ga=c(2,(e,t)=>P(()=>{let r=Er(we(t)),n=Number.isFinite(r),o=ac(!1),s=0,a=!1,i,f=y(o.await,()=>i);return[v((l)=>{let h=l.getRef(tt),p=n?h.currentTimeMillisUnsafe():0;if(a||p<s)return i??f;return a=!0,o.closeUnsafe(),i=void 0,pe(e,(x)=>P(()=>{a=!1,s=h.currentTimeMillisUnsafe()+r,i=x,o.openUnsafe()}))}),P(()=>{s=0,o.closeUnsafe(),i=void 0})]})),Ka=c(2,(e,t)=>U(Ga(e,t),(r)=>r[0])),Cl=(e)=>Ka(e,yr),wl=v((e)=>j(vo(e.id))),Qt=(e)=>v((t)=>{if(!t.interruptible)return e;return t.interruptible=!1,t._stack.push(jo),e}),kl=Oe({op:"SetInterruptible",[St](e){if(e.interruptible=this[R],e._interruptedCause&&e.interruptible)return()=>j(e._interruptedCause)}}),jo=kl(!0),vl=kl(!1),Xa=(e)=>v((t)=>{if(t.interruptible)return e;if(t.interruptible=!0,t._stack.push(vl),t._interruptedCause)return j(t._interruptedCause);return e}),xn=(e)=>v((t)=>{if(!t.interruptible)return e(S);return t.interruptible=!1,t._stack.push(jo),e(Xa)}),Tl=(e)=>v((t)=>{if(t.interruptible)return e(S);return t.interruptible=!0,t._stack.push(vl),e(Qt)}),Al=U($o(P(()=>new AbortController),(e)=>P(()=>e.abort())),(e)=>e.signal),qo=(e,t)=>{if(ot(e))return t?.mode==="result"?_e(e,kt,t):_e(e,S,t);else if(t?.discard)return t.mode==="result"?_e(Object.values(e),kt,t):_e(Object.values(e),S,t);return I(()=>{let r={};return ke(_e(Object.entries(e),([n,o])=>U(t?.mode==="result"?kt(o):o,(s)=>{r[n]=s}),{discard:!0,concurrency:t?.concurrency}),r)})},Za=c((e)=>ot(e[0])&&!w(e[0]),(e,t,r)=>U(_e(e,(n,o)=>kt(t(n,o)),r),(n)=>Fu(n,S))),Il=c((e)=>ot(e[0])&&!w(e[0]),(e,t,r)=>y(Za(e,t,{concurrency:r?.concurrency}),([n,o])=>{if(Xs(n))return N(n);return r?.discard?_:g(o)})),Rl=c((e)=>ot(e[0])&&!w(e[0]),(e,t)=>I(()=>{let r=e[Symbol.iterator](),n=r.next();if(!n.done)return Ol(r,0,t,n.value);return g(J())})),Ol=(e,t,r,n)=>y(r(n,t),(o)=>{if(o)return g(te(n));let s=e.next();if(!s.done)return Ol(e,t+1,r,s.value);return g(J())}),_l=c((e)=>ot(e[0])&&!w(e[0]),(e,t)=>I(()=>{let r=e[Symbol.iterator](),n=r.next();if(!n.done)return Ml(r,0,t,n.value);return g(J())})),Ml=(e,t,r,n)=>y(r(n,t),(o)=>{if(jt(o))return g(te(o.success));let s=e.next();if(!s.done)return Ml(e,t+1,r,s.value);return g(J())}),Tt=Oe({op:"While",[he](e,t){if(this[R].step(e),this[R].while())return t._stack.push(this),this[R].body();return Be},[V](e){if(this[R].while())return e._stack.push(this),this[R].body();return Be}}),_e=c((e)=>typeof e[1]==="function",(e,t,r)=>v((n)=>{let o=r?.concurrency==="inherit"?n.getRef(yo):r?.concurrency??1,s=o==="unbounded"?Number.POSITIVE_INFINITY:Math.max(1,o);if(s===1)return Yg(e,t,r);let a=ze(e),i=a.length;if(i===0)return r?.discard?_:g([]);let f=r?.discard?void 0:Array(i),l=Kg({f:t,out:f},a,{concurrency:s});return l?ke(l,f):g(f)})),Yg=(e,t,r)=>I(()=>{let n=r?.discard?void 0:[],o=e[Symbol.iterator](),s=o.next(),a=0;return ke(Tt({while:()=>!s.done,body:()=>t(s.value,a++),step:(i)=>{if(n)n.push(i);s=o.next()}}),n)}),Gg=(e)=>{let{onItem:t,step:r}=e;return(n,o,s)=>{let a=s?.start??0,i=s?.end??o.length,f=s?.concurrency??1,l=!1,h,p,x,k=!1,E,ee,z=()=>{let yt=!1;for(;!E&&a<i;a++){let Fe=o[a],Ie=ee??t(n,Fe,a);if(ve(Ie)){if(E=r(n,Fe,Ie,a),E)break}else if(f===1)return y(dn(Ie),(Ee)=>(E=r(n,Fe,Ee,a),a++,E??z()??_));else if(!h)return ge((Ee)=>{h=cn(),ee=Ie,x=Ee;let sr=z();if(sr)return Ee(sr);return I(()=>(E=Be,k=!0,p?Bt(p):_))});else{ee=void 0;let Ee=Yt(h,Ie,!0,!0,"inherit");if(Ee._exit){if(E=r(n,Fe,Ee._exit,a),E)break;continue}if(p)p.add(Ee);else p=new Set([Ee]);let sr=a;if(Ee.addObserver((Nr)=>{if(p.delete(Ee),E){if(!k&&Nr._tag==="Failure")for(let be of Nr.cause.reasons)if(be._tag==="Interrupt")continue;else if(E._tag==="Failure")E.cause.reasons.push(be);else E=Se(Nt([be]))}else{let be=r(n,Fe,Nr,sr);if(be)E=be._tag==="Failure"?Se(Nt(be.cause.reasons.slice())):be,z()}if(yt){let be=z();if(be)x(be)}else if(l&&p.size===0)x(E??_)}),p.size<f)continue;yt=!0,a++;return}}if(l=!0,E){if(p&&p.size>0){let Fe=Ao(h);p.forEach((Ie)=>Ie.interruptUnsafe(h.id,Fe));return}if(x||E._tag==="Failure")return E}else if(x){if(!p)return Be;else if(p.size===0)x(_)}};return z()}};var Kg=Gg({onItem(e,t,r){return e.f(t,r)},step(e,t,r,n){if(r._tag==="Failure")return r;else if(e.out)e.out[n]=r.value}}),ec=c(3,(e,t,r)=>y(e,(n)=>t(n)?g(n):r(n))),tc=c(3,(e,t,r)=>y(e,(n)=>{let o=t(n);return $(o)?r(o.failure):g(o.success)})),Pl=c((e)=>w(e[0]),(e,t,r)=>tc(e,t,r?(n)=>N(r(n)):()=>N(new ut))),Fl=c((e)=>ot(e[0])&&!w(e[0]),(e,t,r)=>I(()=>{let n=[];return ke(_e(e,(o,s)=>{let a=t(o,s);if(typeof a==="boolean"){if(a)n.push(o);return _}return U(a,(i)=>{if(i)n.push(o)})},{discard:!0,concurrency:r?.concurrency}),n)})),Ul=c((e)=>ot(e[0])&&!w(e[0]),(e,t)=>I(()=>{let r=[];for(let n of e){let o=t(n);if(jt(o))r.push(o.success)}return g(r)})),Nl=c((e)=>ot(e[0])&&!w(e[0]),(e,t,r)=>I(()=>{let n=[];return ke(_e(e,(o)=>U(t(o),(s)=>{if(jt(s))n.push(s.success)}),{discard:!0,concurrency:r?.concurrency}),n)})),Dl=g({}),Ll=Yi(U),Hl=Gi(U,y),$l=Qi(U);var jl=c((e)=>w(e[0]),(e,t)=>v((r)=>(hy(),g(Yt(r,e,t?.startImmediately,!1,t?.uninterruptible??!1))))),Yt=(e,t,r=!1,n=!1,o=!1)=>{let s=o==="inherit"?e.interruptible:!o,a=new ya(e.context,s);if(r)a.evaluate(t);else e.currentDispatcher.scheduleTask(()=>a.evaluate(t),0);if(!n&&!a._exit)e.children().add(a),a.addObserver(()=>e._children.delete(a));return a},ql=c((e)=>w(e[0]),(e,t)=>v((r)=>g(Yt(r,e,t?.startImmediately,!0,t?.uninterruptible)))),zl=(e)=>v((t)=>{let r=t._children&&ze(t._children);return pe(e,(n)=>{let o=t._children;if(o===void 0||o.size===0)return _;else if(r)o=Tu(o,(s)=>!r.includes(s));return un(Io(o))})}),rc=c((e)=>w(e[0]),(e,t,r)=>v((n)=>{let o=Yt(n,e,r?.startImmediately,!0,r?.uninterruptible);if(!o._exit)if(t.state._tag!=="Closed"){let s={};ko(t,s,()=>yf((i)=>i===o.id?_:Ea(o))),o.addObserver(()=>hl(t,s))}else o.interruptUnsafe(n.id,Ao(n));return g(o)})),Bl=c((e)=>w(e[0]),(e,t)=>y(hn,(r)=>rc(e,r,t))),mt=(e)=>(t,r)=>{let n=new ya(r?.scheduler?qe(e,en,r.scheduler):e,r?.uninterruptible!==!0);if(n.evaluate(t),n._exit)return n;if(r?.signal)if(r.signal.aborted)n.interruptUnsafe();else{let o=()=>n.interruptUnsafe();r.signal.addEventListener("abort",o,{once:!0}),n.addObserver(()=>r.signal.removeEventListener("abort",o))}if(r?.onFiberStart)r.onFiberStart(n);return n};var Wl=mt(je()),nc=(e)=>{let t=mt(e);return(r,n)=>{let o=t(r,n);if(n?.onExit)o.addObserver(n.onExit);return(s)=>o.interruptUnsafe(s)}},Vl=nc(je()),zo=(e)=>{let t=mt(e);return(r,n)=>{let o=t(r,n);return new Promise((s)=>{o.addObserver((a)=>s(a))})}},Jl=zo(je()),oc=(e)=>{let t=zo(e);return(r,n)=>t(r,n).then((o)=>{if(o._tag==="Failure")throw To(o.cause);return o.value})},Ql=oc(je()),Bo=(e)=>{let t=mt(e);return(r)=>{if(ve(r))return r;let n=new ho("sync"),o=t(r,{scheduler:n});return o.currentDispatcher?.flush(),o._exit??it(new uc(o))}},Yl=Bo(je()),sc=(e)=>{let t=Bo(e);return(r)=>{let n=t(r);if(n._tag==="Failure")throw To(n.cause);return n.value}},Gl=sc(je()),Xu=g(!0),Zu=g(!1);class Kl{waiters=[];scheduled=!1;isOpen;constructor(e){this.isOpen=e}scheduleUnsafe(e){if(this.scheduled||this.waiters.length===0)return Xu;return this.scheduled=!0,e.currentDispatcher.scheduleTask(this.flushWaiters,0),Xu}flushWaiters=()=>{this.scheduled=!1;let e=this.waiters;this.waiters=[];for(let t=0;t<e.length;t++)e[t](Be)};open=v((e)=>{if(this.isOpen)return Zu;return this.isOpen=!0,this.scheduleUnsafe(e)});release=v((e)=>this.isOpen?Zu:this.scheduleUnsafe(e));openUnsafe(){if(this.isOpen)return!1;return this.isOpen=!0,this.flushWaiters(),!0}await=ge((e)=>{if(this.isOpen)return e(_);return this.waiters.push(e),P(()=>{let t=this.waiters.indexOf(e);if(t!==-1)this.waiters.splice(t,1)})});closeUnsafe(){if(!this.isOpen)return!1;return this.isOpen=!1,!0}close=P(()=>this.closeUnsafe());whenOpen=(e)=>y(this.await,()=>e)}var ac=(e)=>new Kl(e??!1);var Xl=v((e)=>g(e.getRef(go))),Zl=c(2,(e,t)=>ae(e,go,t)),ep=ae(Eo),tp=ae(rn),fa=BigInt(0),Xg={_tag:"Span",spanId:"noop",traceId:"noop",sampled:!1,status:{_tag:"Ended",startTime:fa,endTime:fa,exit:Be},attributes:new Map,links:[],kind:"internal",attribute(){},event(){},end(){},addLinks(){}},Zg=(e)=>Object.assign(Object.create(Xg),e),rp=(e)=>{if(!e)return J();return fe(e.annotations,br)?e._tag==="Span"?rp(Ht(e.parent)):J():te(e)},cc=(e,t,r)=>{let n=!e.getRef(Eo)||r?.annotations&&fe(r.annotations,br),o=r?.parent!==void 0?te(r.parent):r?.root?J():rp(e.currentSpan),s;if(n)s=Zg({name:t,parent:o,annotations:qe(r?.annotations??je(),br,!0)});else{let a=e.getRef(go),i=e.getRef(tt),f=e.getRef(rn),l=e.getRef(nn),h=e.getRef(on),p=r?.level??e.getRef(qu),x=r?.links!==void 0?[...h,...r.links]:h.slice();s=a.span({name:t,parent:o,annotations:r?.annotations??je(),links:x,startTime:f?i.currentTimeNanosUnsafe():BigInt(0),kind:r?.kind??"internal",root:r?.root??oo(o),sampled:r?.sampled??(Bs(o)&&o.value.sampled===!1?!1:!hp(e.getRef(zu),p))});for(let[k,E]of Object.entries(l))s.attribute(k,E);if(r?.attributes!==void 0)for(let[k,E]of Object.entries(r.attributes))s.attribute(k,E)}return s},np=(e,t)=>v((r)=>g(cc(r,e,t))),sn=(e,t)=>Qt(v((r)=>{let n=$t(r.context,Tr),o=cc(r,e,t??{}),s=r.getRef(tt),a=r.getRef(rn);return ke(et(n,(i)=>ty(o,i,s,a)),o)})),op=function(){let e=typeof arguments[0]!=="string",t=e?arguments[1]:arguments[0],r=So(e?arguments[2]:arguments[1]);if(e){let n=arguments[0];return y(sn(t,r),(o)=>Cr(n,o,r))}return(n)=>y(sn(t,r),(o)=>Cr(n,o,r))},ey=(e,t)=>(t=typeof t==="function"?t:Je,pt(tn,(r)=>({name:e,stack:t,parent:r}))),sp=nn,ap=on,cp=c((e)=>w(e[0]),(e,t,r={})=>{let o=(Array.isArray(t)?t:[t]).map((s)=>({span:s,attributes:r}));return pt(e,on,(s)=>[...s,...o])}),ty=(e,t,r,n)=>P(()=>{if(e.status._tag==="Ended")return;e.end(n?r.currentTimeNanosUnsafe():fa,t)}),an=(e,...t)=>{let r=t.length===1?void 0:t[0],n=t[t.length-1];return v((o)=>{let s=cc(o,e,r),a=o.getRef(tt);return pe(M(()=>n(s)),(i)=>P(()=>{if(s.status._tag==="Ended")return;s.end(a.currentTimeNanosUnsafe(),i)}))})},la=ae(xo),Cr=function(){let e=w(arguments[0]),t=e?arguments[1]:arguments[0],r=e?arguments[2]:arguments[1],n=S;if(t._tag==="Span")r=So(r),n=ey(t.name,r?.captureStackTrace);if(e)return la(n(arguments[0]),t);return(o)=>la(n(o),t)},ip=function(){let e=typeof arguments[0]!=="string",t=e?arguments[1]:arguments[0],r=So(arguments[2]);if(e){let s=arguments[0];return an(t,arguments[2],(a)=>Cr(s,a,r))}let n=typeof arguments[1]==="function"?arguments[1]:void 0,o=n?void 0:arguments[1];return(s,...a)=>an(t,n?n(...a):o,(i)=>Cr(s,i,r))},up=c((e)=>w(e[0]),(e,...t)=>pt(e,nn,(r)=>{let n={...r};if(t.length===1)Object.assign(n,t[0]);else n[t[0]]=t[1];return n})),fp=(...e)=>v((t)=>{let r=t.currentSpanLocal;if(r)if(e.length===1)for(let[n,o]of Object.entries(e[0]))r.attribute(n,o);else r.attribute(e[0],e[1]);return _}),lp=v((e)=>{let t=e.currentSpanLocal;return t?g(t):N(new ut)}),pp=qg(xo),tt=A("effect/Clock",{defaultValue:()=>new dp}),ry=2147483647;class dp{currentTimeMillisUnsafe(){return Date.now()}currentTimeMillis=P(()=>this.currentTimeMillisUnsafe());currentTimeNanosUnsafe(){return ny()}currentTimeNanos=P(()=>this.currentTimeNanosUnsafe());sleep(e){let t=Er(e);if(t<=0)return kr;return ge((r)=>{if(t>ry)return;let n=setTimeout(()=>r(_),t);return P(()=>clearTimeout(n))})}}var ef=function(){let e=BigInt(1e6);if(typeof performance>"u"||typeof performance.now>"u")return()=>BigInt(Date.now())*e;else if(typeof performance.timeOrigin==="number"&&performance.timeOrigin===0)return()=>BigInt(Math.round(performance.now()*1e6));let t=BigInt(Date.now())*e-BigInt(Math.round(performance.now()*1e6));return()=>t+BigInt(Math.round(performance.now()*1e6))}(),ny=function(){let e=typeof process==="object"&&"hrtime"in process&&typeof process.hrtime.bigint==="function"?process.hrtime:void 0;if(!e)return ef;let t=ef()-e.bigint();return()=>t+e.bigint()}(),Gt=(e)=>v((t)=>e(t.getRef(tt))),Kt=(e)=>Gt((t)=>t.sleep(we(e))),mp=Gt((e)=>e.currentTimeMillis);var pa="~effect/Cause/TimeoutError";class ic extends Dt("TimeoutError"){[pa]=pa;constructor(e){super({message:e})}}var da="~effect/Cause/AsyncFiberError";class uc extends Dt("AsyncFiberError"){[da]=da;constructor(e){super({message:"An asynchronous Effect was executed with Effect.runSync",fiber:e})}}var ma="~effect/Cause/UnknownError";class fc extends Dt("UnknownError"){[ma]=ma;constructor(e,t){super({message:t,cause:e})}}var oy=A("effect/Console/CurrentConsole",{defaultValue:()=>globalThis.console}),sy=(e)=>{switch(e){case"All":return Number.MIN_SAFE_INTEGER;case"Fatal":return 50000;case"Error":return 40000;case"Warn":return 30000;case"Info":return 20000;case"Debug":return 1e4;case"Trace":return 0;case"None":return Number.MAX_SAFE_INTEGER}},ay=au(mr,sy),hp=cu(ay),lc=A("effect/Loggers/CurrentLoggers",{defaultValue:()=>new Set([dy,my])}),cy=A("effect/Logger/LogToStderr",{defaultValue:ar}),xp=function(){let e=typeof arguments[0]==="string"?[[arguments[0],arguments[1]]]:Object.entries(arguments[0]);return Qt(v((t)=>{let r=t.getRef(ft),n={...r};for(let o=0;o<e.length;o++){let[s,a]=e[o];n[s]=a}return t.setContext(qe(t.context,ft,n)),et($t(t.context,Tr),(o)=>{let s=t.getRef(ft),a={...s};for(let i=0;i<e.length;i++){let[f,l]=e[i];if(s[f]!==l)continue;if(f in r)a[f]=r[f];else delete a[f]}return t.setContext(qe(t.context,ft,a)),_})}))},iy="~effect/Logger",uy={[iy]:{_Message:S,_Output:S},pipe(){return F(this,arguments)}},gp=(e)=>{let t=Object.create(uy);return t.log=e,t},fy=(e)=>e.replace(/[\s="]/g,"_"),ly=(e,t)=>`${fy(e[0])}=${t-e[1]}ms`;var We=(e)=>(...t)=>{let r=void 0;for(let n=0,o=t.length;n<o;n++){let s=t[n];if(qr(s)){if(r)t.splice(n,1);else t=t.slice(0,n).concat(t.slice(n+1));r=r?Nt(r.reasons.concat(s.reasons)):s,n--}}if(r===void 0)r=Fs;return v((n)=>{let o=e??n.currentLogLevel;if(hp(n.minimumLogLevel,o))return _;let s=n.getRef(tt),a=n.getRef(lc);if(a.size>0){let i=new Date(s.currentTimeMillisUnsafe());for(let f of a)f.log({cause:r,fiber:n,date:i,logLevel:o,message:t})}return _})};var zt={bold:"1",red:"31",green:"32",yellow:"33",blue:"34",cyan:"36",white:"37",gray:"90",black:"30",bgBrightRed:"101"},Hw={None:[],All:[],Trace:[zt.gray],Debug:[zt.blue],Info:[zt.green],Warn:[zt.yellow],Error:[zt.red],Fatal:[zt.bgBrightRed,zt.black]};var py=(e)=>`${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padStart(3,"0")}`;var dy=gp(({cause:e,date:t,fiber:r,logLevel:n,message:o})=>{let s=Array.isArray(o)?o.slice():[o];if(e.reasons.length>0)s.push(ga(e));let a=t.getTime(),i=r.getRef(bo),f="";for(let x of i)f+=` ${ly(x,a)}`;let l=r.getRef(ft);if(Object.keys(l).length>0)s.push(l);let h=r.getRef(oy);(r.getRef(cy)?h.error:h.log)(`[${py(t)}] ${n.toUpperCase()} (#${r.id})${f}:`,...s)}),my=gp(({cause:e,fiber:t,logLevel:r,message:n})=>{let o=t.getRef(tt),s=t.getRef(ft),a=t.currentSpan;if(a===void 0||a._tag==="ExternalSpan")return;let i={};for(let[f,l]of Object.entries(s))i[f]=l;if(i["effect.fiberId"]=t.id,i["effect.logLevel"]=r.toUpperCase(),e.reasons.length>0)i["effect.cause"]=ga(e);a.event(Mi(Array.isArray(n)&&n.length===1?n[0]:n),o.currentTimeNanosUnsafe(),i)});function hy(){ca.interruptChildren??=Hg}var yp=g(void 0);var Ep=c((e)=>w(e[0]),(e,t)=>Qa(e,(r)=>v((n)=>(xy(n,r,t?.defectsOnly),_)))),xy=(e,t,r)=>{let n=e.getRef(Ju);if(n.size===0)return;if(r&&!nf(t))return;let o={cause:t,fiber:e,timestamp:e.getRef(tt).currentTimeNanosUnsafe()};n.forEach((s)=>s.report(o))};var bp=K,Sp=Se;var Cp=Ra;var gy="~effect/Deferred";var yy={[gy]:{_A:S,_E:S},pipe(){return F(this,arguments)}},kp=()=>{let e=Object.create(yy);return e.resumes=void 0,e.effect=void 0,e};var vp=(e)=>ge((t)=>{if(e.effect)return t(e.effect);return e.resumes??=[],e.resumes.push(t),P(()=>{let r=e.resumes.indexOf(t);e.resumes.splice(r,1)})});var Ey=c(2,(e,t)=>P(()=>by(e,t))),Tp=Ey;var by=(e,t)=>{if(e.effect)return!1;if(e.effect=t,e.resumes){for(let r=0;r<e.resumes.length;r++)e.resumes[r](t);e.resumes=void 0}return!0};var Ap=ft;var Ip=bo;var gn=mn,Wo=xl,Rp=et,pc=ml;var Xt=dl,Zt=za;var Pp="~effect/Layer",Op="~effect/Layer/MemoMap",Cy=(e,t)=>(e.observers++,lt(et(t,(r)=>e.finalizer(r)),e.effect)),Fp=(e)=>C(e,Pp),wy={[Pp]:{_ROut:S,_E:S,_RIn:S},pipe(){return F(this,arguments)}},Up=(e)=>{let t=Object.create(wy);return t.build=e,t},mc=(e)=>Up((t,r)=>{let n=Xt(r);return pe(e(t,n),(o)=>o._tag==="Failure"?Zt(n,o):_)}),ky=(e)=>{let t=mc((r,n)=>r.getOrElseMemoize(t,n,e));return t},vy=(e,t,r,n)=>{let o=gn(),s=kp(),a={observers:1,effect:vp(s),finalizer:(i)=>I(()=>{if(a.observers--,a.observers===0)return e.map.delete(t),Zt(o,i);return _})};return e.map.set(t,a),et(r,a.finalizer).pipe(y(()=>n(e,o)),pe((i)=>(a.effect=i,Tp(s,i))))};class Np{get[Op](){return Op}parent;constructor(e){this.parent=e}map=new Map;get(e,t){let r=this.map.get(e);if(r)return Cy(r,t);return this.parent?.get(e,t)}getOrElseMemoize(e,t,r){let n=this.get(e,t);if(n)return n;return vy(this,e,t,r)}}var hc=()=>new Np;class Vo extends Ce()("effect/Layer/CurrentMemoMap"){static getOrCreate=du(this,hc)}var xc=c(3,(e,t,r)=>ae(U(e.build(t,r),qe(Vo,t)),Vo,t));var Dp=c(2,(e,t)=>v((r)=>xc(e,Vo.getOrCreate(r.context),t)));var Lp=(e)=>Up(G(g(e)));var Hp=function(){if(arguments.length===1)return(e)=>_p(arguments[0],e);return _p(arguments[0],arguments[1])},_p=(e,t)=>Ty(U(t,(r)=>Kr(e,r))),Ty=(e)=>ky((t,r)=>Wo(e,r));var $p=(e,t,r)=>{let n=Xt(r,"parallel");return _e(e,(o)=>o.build(t,Xt(n,"sequential")),{concurrency:e.length}).pipe(U((o)=>xu(...o)))},jp=(...e)=>mc((t,r)=>$p(e,t,r));var Ay=(e,t,r)=>mc((n,o)=>y(Array.isArray(t)?$p(t,n,o):t.build(n,o),(s)=>e.build(n,o).pipe(dt(s),U((a)=>r(a,s))))),qp=c(2,(e,t)=>Ay(e,t,S));var zp="~effect/ExecutionPlan";var Iy={[zp]:zp,get captureRequirements(){let e=this;return vt((t)=>g(Ry(e.steps.map((r)=>({...r,provide:Fp(r.provide)?qp(r.provide,Lp(t)):r.provide})))))},pipe(){return F(this,arguments)}},Ry=(e)=>{let t=Object.create(Iy);return t.steps=e,t};var Bp=A("effect/ExecutionPlan/CurrentMetadata",{defaultValue:G({attempt:0,stepIndex:0})});var Wp=To;var Jo=Ze;var yc=xa;var Qo=Yr;var er=zi;var En=c(2,(e,t)=>vr(e,_y,(r)=>t(r)));var Ec=ea(Jo,(e)=>Qo(e)?le(e):re(e));var _y=ea(Jo,(e)=>Qo(e)?le(e.value):re(e)),Vp=(e)=>{let t=Ec(e);return!$(t)?bp(t.success.value):Sp(t.failure)},bc=c(2,(e,t)=>Xe(e,{onSuccess:t.onSuccess,onFailure:(r)=>{let n=Ec(r);return!$(n)?t.onDone(n.success.value):t.onFailure(n.failure)}}));var Jp="~effect/Schedule";var tr=A("effect/Schedule/CurrentMetadata",{defaultValue:G({input:void 0,output:void 0,duration:gr,attempt:0,start:0,now:0,elapsed:0,elapsedSincePrevious:0})}),My={[Jp]:{_Out:S,_In:S,_Env:S},pipe(){return F(this,arguments)}},Cc=(e)=>C(e,Jp),wc=(e)=>{let t=Object.create(My);return t.step=e,t},kc=()=>{let e=0,t,r;return(n,o)=>{if(r===void 0)r=n;let s=n-r,a=t===void 0?0:n-t;return t=n,{input:o,attempt:++e,start:r,now:n,elapsed:s,elapsedSincePrevious:a}}},Py=(e)=>wc(U(e,(t)=>{let r=kc();return(n,o)=>t(r(n,o))})),vc=(e)=>Me(e.step,(t)=>g(()=>j(t))),Yo=(e)=>Gt((t)=>U(vc(e),(r)=>{let n=kc();return(o)=>I(()=>{let s=t.currentTimeMillisUnsafe();return y(r(s,o),([a,i])=>{let f=n(s,o);return f.output=a,f.duration=i,ke(Kt(i),f)})})}));var Tc=(e)=>wc(U(vc(e),(t)=>(r,n)=>bc(t(r,n),{onSuccess:(o)=>g([n,o[1]]),onFailure:j,onDone:()=>er(n)}))),Qp=(e)=>bn(Ac,({attempt:t})=>g(t<=e));var Fy=(e)=>{let t=we(e);return Py(g((r)=>g([r.attempt-1,t])))};var bn=c(2,(e,t)=>wc(U(vc(e),(r)=>{let n=kc();return(o,s)=>y(r(o,s),(a)=>{let[i,f]=a,l=t({...n(o,s),output:i,duration:f});return y(w(l)?l:g(l),(h)=>h?g(a):er(i))})})));var Ac=Fy(gr);var Uy=(e,t,r)=>Ho((n)=>y(r?.local?xc(t,hc(),n):Dp(t,n),(o)=>dt(e,o))),Go=c((e)=>w(e[0]),(e,t,r)=>Vs(t)?dt(e,t):Uy(e,Array.isArray(t)?jp(...t):t,r));var Ic=c(3,(e,t,r)=>y(Yo(t),(n)=>{let o=tr.defaultValue();return Te(Fo(Vt(y(I(()=>ae(e,tr,o)),n),(s)=>P(()=>{o=s})),{disableYield:!0}),(s)=>Yr(s)?g(s.value):r(s,o.attempt===0?J():te(o)))})),Rc=c(3,(e,t,r)=>y(Yo(t),(n)=>{let o=tr.defaultValue(),s,a=Te(I(()=>ae(e,tr,o)),(i)=>(s=i,y(n(i),(f)=>(o=f,a))));return En(a,(i)=>M(()=>r(s,i)))})),Kp=c(2,(e,t)=>{let r=typeof t==="function"?t(S):Cc(t)?t:Cn(t);return Ic(e,r,N)}),Sn=c(2,(e,t)=>{let r=typeof t==="function"?t(S):Cc(t)?t:Cn(t);return Rc(e,r,N)}),Xp=c(3,(e,t,r)=>y(Yo(r),(n)=>{let o=tr.defaultValue(),s=I(()=>ae(e,tr,o));return Te(y(n(t),(a)=>{o=a;let i=G(y(s,n));return Tt({while:Re,body:i,step(f){o=f}})}),(a)=>Yr(a)?g(a.value):N(a))})),Ny=Tc(Ac),Cn=(e)=>{let t=e.schedule?Tc(e.schedule):Ny;if(e.while)t=bn(t,({input:r})=>{let n=e.while(r);return w(n)?n:g(n)});if(e.until)t=bn(t,({input:r})=>{let n=e.until(r);return w(n)?U(n,(o)=>!o):g(!n)});if(e.times!==void 0)t=bn(t,({attempt:r})=>g(r<=e.times));return t};var td=c(2,(e,t)=>I(()=>{let r=0,n={attempt:0,stepIndex:0},o=Po(Bp,P(()=>(n={attempt:n.attempt+1,stepIndex:r},n))),s;return y(Tt({while:()=>r<t.steps.length&&(s===void 0||$(s)),body(){let a=t.steps[r],i=o(Go(e,a.provide));if(s){let f=!1,l=i;i=I(()=>{if(f)return l;return f=!0,wr(s)}),i=Sn(i,ed(a,!1))}else{let f=ed(a,!0);i=f?Sn(i,f):i}return kt(i)},step(a){s=a,r++}}),()=>wr(s))})),ed=(e,t)=>{if(!t)return Cn({schedule:e.schedule?e.schedule:e.attempts?void 0:Dy,times:e.attempts,while:e.while});else if(e.attempts===1||!(e.schedule||e.attempts))return;return Cn({schedule:e.schedule,while:e.while,times:e.attempts?e.attempts-1:void 0})},Dy=Qp(1);var Hy="~effect/Request",$y=Ri({_E:(e)=>e,_A:(e)=>e,_R:(e)=>e}),Qk={...Ui,[Hy]:$y};var rd=(e)=>e;var od=c(2,(e,t)=>{let r=(n)=>ge((o)=>{let s=ad(n,e,o,cn());return jy(n,s)});return w(t)?y(t,r):r(t)}),sd=(e,t)=>{let r=ad(t.resolver,e,t.onExit,{context:t.context,currentScheduler:fe(t.context,en)});return()=>cd(t.resolver,r)},Ko=[],Oc=new WeakMap,ad=(e,t,r,n)=>{let o=Oc.get(e);if(!o)o=new Map,Oc.set(e,o);let s,a=!1,i=rd({request:t,context:n.context,uninterruptible:!1,completeUnsafe(l){if(a)return;a=!0,r(l),s?.entrySet.delete(i)}});if(e.preCheck!==void 0&&!e.preCheck(i))return i;let f=e.batchKey(i);if(s=o.get(f),!s){if(Ko.length>0)s=Ko.pop(),s.key=f,s.resolver=e,s.map=o;else{let l={key:f,resolver:e,map:o,entrySet:new Set,entries:new Set,delayEffect:y(I(()=>l.resolver.delay),(h)=>nd(l)),run:pe(I(()=>l.resolver.runAll(Array.from(l.entries),l.key)),(h)=>{for(let p of l.entrySet)p.completeUnsafe(h._tag==="Success"?it(Error("Effect.request: RequestResolver did not complete request",{cause:p.request})):h);if(l.entries.clear(),Ko.length<128)l.entrySet.clear(),l.key=void 0,l.fiber=void 0,l.resolver=void 0,l.map=void 0,Ko.push(l);return _})};s=l}o.set(f,s),s.fiber=mt(n.context)(s.delayEffect,{scheduler:n.currentScheduler})}if(s.entrySet.add(i),s.entries.add(i),s.resolver.collectWhile(s.entries))return i;return s.fiber.interruptUnsafe(n.id),s.fiber=mt(n.context)(nd(s),{scheduler:n.currentScheduler}),i},cd=(e,t)=>{if(t.uninterruptible)return;let r=Oc.get(e);if(!r)return;let n=e.batchKey(t.request),o=r.get(n);if(!o)return;if(o.entries.delete(t),o.entrySet.delete(t),o.entries.size===0)r.delete(n),o.fiber?.interruptUnsafe()},jy=(e,t)=>P(()=>cd(e,t));function nd(e){if(!e.map.has(e.key))return _;return e.map.delete(e.key),e.run}var By="effect/Metric/CurrentMetricAttributes",Wy=A(By,{defaultValue:()=>({})}),Vy="~effect/observability/Metric/MetricRegistryKey",Jy=A(Vy,{defaultValue:()=>new Map}),id="~effect/observability/Metric";class Ir{[id]=id;#e=new WeakMap;#t;id;description;attributes;constructor(e,t,r){this.id=e,this.description=t,this.attributes=r}valueUnsafe(e){return this.hook(e).get(e)}modifyUnsafe(e,t){return this.hook(t).modify(e,t)}updateUnsafe(e,t){return this.hook(t).update(e,t)}hook(e){let t=fe(e,Wy);if(Object.keys(t).length===0){if(nt(this.#t))return this.#t.hooks;return this.#t=this.getOrCreate(e,this.attributes),this.#t.hooks}let r=rE(this.attributes,t),n=this.#e.get(r);if(nt(n))return n.hooks;return n=this.getOrCreate(e,r),this.#e.set(r,n),n.hooks}getOrCreate(e,t){let r=Zy(this,t),n=fe(e,Jy);if(n.has(r))return n.get(r);let o=this.createHooks(),s={id:this.id,type:this.type,description:this.description,attributes:At(t),hooks:o};return n.set(r,s),s}pipe(){return F(this,arguments)}}var ud=BigInt(0);class Qy extends Ir{type="Counter";#e;#t;constructor(e,t){super(e,t?.description,At(t?.attributes));this.#e=t?.bigint??!1,this.#t=t?.incremental??!1}createHooks(){let e=this.#e?ud:0,t=this.#t?this.#e?(n)=>n>=ud:(n)=>n>=0:(n)=>!0;return wn(()=>({count:e,incremental:this.#t}),(n)=>{if(t(n))e=e+n})}}class Yy extends Ir{type="Gauge";#e;constructor(e,t){super(e,t?.description,At(t?.attributes));this.#e=t?.bigint??!1}createHooks(){let e=this.#e?BigInt(0):0;return wn(()=>({value:e}),(n)=>{e=n},(n)=>{e=e+n})}}class Gy extends Ir{type="Frequency";#e;constructor(e,t){super(e,t?.description,At(t?.attributes));this.#e=t?.preregisteredWords}createHooks(){let e=new Map;if(nt(this.#e))for(let r of this.#e)e.set(r,0);return wn(()=>({occurrences:e}),(r)=>{let n=e.get(r)??0;e.set(r,n+1)})}}class Ky extends Ir{type="Histogram";#e;constructor(e,t){super(e,t?.description,At(t?.attributes));this.#e=t.boundaries}createHooks(){let e=this.#e,t=e.length,r=new Uint32Array(t+1),n=new Float64Array(t),o=0,s=0,a=Number.MAX_VALUE,i=Number.MIN_VALUE;Zs(po(e,mr),(h,p)=>{n[p]=h});let f=(h)=>{let p=0,x=t;while(p!==x){let k=Math.floor(p+(x-p)/2),E=n[k];if(h<=E)x=k;else p=k;if(x===p+1)if(h<=n[p])x=p;else p=x}if(r[p]=r[p]+1,o=o+1,s=s+h,h<a)a=h;if(h>i)i=h},l=()=>{let h=Gs(t),p=0;for(let x=0;x<t;x++){let k=n[x],E=r[x];p=p+E,h[x]=[k,p]}return h};return wn(()=>({buckets:l(),count:o,min:a,max:i,sum:s}),f)}}class Xy extends Ir{type="Summary";#e;#t;#r;constructor(e,t){super(e,t?.description,At(t?.attributes));this.#e=Math.max(Er(we(t.maxAge)),0),this.#t=t.maxSize,this.#r=t.quantiles}createHooks(){let e=po(this.#r,mr),t=Gs(this.#t);for(let p of this.#r)if(p<0||p>1)throw Error(`Quantile must be between 0 and 1, found: ${p}`);let r=0,n=0,o=0,s=Number.MAX_VALUE,a=Number.MIN_VALUE,i=(p)=>{let x=[],k=0;while(k<this.#t){let z=t[k];if(nt(z)){let[yt,Fe]=z,Ie=p-yt;if(Ie>=0&&Ie<=this.#e)x.push(Fe)}k=k+1}let E=po(x,mr),ee=E.length;if(ee===0)return e.map((z)=>[z,void 0]);return e.map((z)=>{if(z<=0)return[z,E[0]];if(z>=1)return[z,E[ee-1]];let yt=Math.ceil(z*ee)-1;return[z,E[yt]]})},f=(p,x)=>{if(this.#t>0){let k=r%this.#t;t[k]=[x,p],r=r+1}if(n=n+1,o=o+p,p<s)s=p;if(p>a)a=p};return wn((p)=>{let x=fe(p,tt);return{quantiles:i(x.currentTimeMillisUnsafe()),count:n,min:s,max:a,sum:o}},([p,x])=>f(p,x))}}var Rr=c(2,(e,t)=>vt((r)=>P(()=>e.updateUnsafe(t,r))));function Zy(e,t){let r=`${e.type}:${e.id}`;if(nt(e.description))r+=`:${e.description}`;if(nt(t))r+=`:${eE(t)}`;return r}function wn(e,t,r){return{get:e,update:t,modify:r??t}}function eE(e){return tE(Array.isArray(e)?e:Object.entries(e))}function tE(e){return e.map(([t,r])=>`${t}=${r}`).join(",")}function rE(e,t){return{...At(e),...At(t)}}function At(e){if(nt(e)&&Array.isArray(e))return e.reduce((t,[r,n])=>(t[r]=n,t),{});return e}var oE=Ke,rr=w,sE=qo,aE=Za,cE=Il,iE=Rl,uE=_l,fE=_e,Xo=Tt,Zo=Ca,rt=gf,ie=g,pd=Ro,dd=Sa,ht=I,xt=P,vn=_;var lE=yp;var _c=ge,Mc=ka,pE=Dl,dE=Ll,mE=$l;var hE=Hl,Pc=Sf,It=N,md=Oo,nr=j,hd=hf,es=Wt,Or=xf;var xd=kr,xE=ba,Tn=v,gd=wr,gE=df,yE=mf,Z=y,yd=Rf,ts=lt,An=Vt,EE=kt,bE=sl,Fc=dn,ye=U,Uc=ke,Ed=_o,rs=un,SE=kf,bd=_a,CE=Ma,ns=Te;var Sd=Na,Cd=Kf,wE=Xf,kE=Zf,vE=el,os=Me,wd=Vf,TE=ln,AE=No,IE=Wf,RE=Fa,OE=vr,kd=Da,_E=La,ME=Ha,ss=Ua,PE=Yf,vd=Jf,FE=Qf,UE=Uo,Td=Gf,NE=$a,Ad=Sn,DE=Rc,LE=vf,HE=nl,$E=ol,jE=td,qE=Ep,zE=tl,BE=rl,WE=fl,VE=ll,JE=qa,Nc=ul,Dc=Kt,QE=pl,Id=Aa,YE=Ia,GE=Tf,Rd=Mo,Od=Fl,KE=Ul,_d=Nl,Md=ec,XE=tc,Pd=qf,ZE=Pl,eb=zf,tb=Do,rb=pn,nb=ja,ob=al,sb=Af,_r=Xe,Fd=Jt,ab=cl,cb=il,as=Oa,In=vt,ib=Go,cs=dt,Ud=Hf,Nd=$f,Lc=fn,ub=pt,is=ae,fb=Po,lb=jf,Hc=hn,Dd=Ba,Ld=Ho,$c=$o,pb=Sl,db=bl,Hd=Wa,$d=gl,Rn=Qa,mb=yl,hb=Ya,jd=Ar,Mr=pe,xb=Va,gb=Ja,On=Cl,yb=Ka,Eb=Ga,qd=wl,bb=Xa,us=El,zd=Qt,Pr=xn,Sb=Tl,Cb=Al,fs=Fo,Bd=Kp,wb=Ic,kb=Pa,vb=Bf,Tb=c(2,(e,t)=>Wd(e,void 0,t)),Wd=Xp,Ab=Xl,Ib=Zl,Rb=ep,Ob=tp,_b=up,Mb=fp,Pb=lp,Fb=pp,Ub=sp,Nb=ap,Db=cp,Vd=np,Lb=sn,jc=an,Hb=ip,$b=op,qc=Cr,jb=od,qb=sd,zc=jl,Bc=rc,Wc=Bl,zb=ql,Bb=zl,Wb=Ef,Vb=bf,Vc=Wl,Jd=mt,Jb=nc,Qb=Vl,Jc=Ql,Qd=oc,Yb=Jl,Yd=zo,Rt=Gl,Gb=sc,Kb=Yl,Xb=Bo,_n=va,Zb=Cf,Qc=Gt,Gd=We,eS=We(),tS=We("Fatal"),rS=We("Warn"),nS=We("Error"),oS=We("Info"),sS=We("Debug"),aS=We("Trace"),cS=c(2,(e,t)=>pt(e,lc,(r)=>new Set([...r,t]))),iS=c((e)=>rr(e[0]),(e,...t)=>pt(e,Ap,(r)=>{let n={...r};if(t.length===1)Object.assign(n,t[0]);else n[t[0]]=t[1];return n})),uS=xp,fS=c(2,(e,t)=>y(mp,(r)=>pt(e,Ip,(n)=>[[t,r],...n]))),lS=c((e)=>rr(e[0]),(e,t,r)=>Mr(e,(n)=>{let o=r===void 0?n:M(()=>r(n));return Rr(t,o)})),pS=c((e)=>rr(e[0]),(e,t,r)=>An(e,(n)=>{let o=r===void 0?n:r(n);return Rr(t,o)})),dS=c((e)=>rr(e[0]),(e,t,r)=>ss(e,(n)=>{let o=r===void 0?n:M(()=>r(n));return Rr(t,o)})),mS=c((e)=>rr(e[0]),(e,t,r)=>Td(e,(n)=>{let o=r===void 0?n:M(()=>r(n));return Rr(t,o)})),hS=c((e)=>rr(e[0]),(e,t,r)=>Qc((n)=>{let o=n.currentTimeNanosUnsafe();return Mr(e,()=>{let s=n.currentTimeNanosUnsafe(),a=wu(we(s),we(o)),i=r===void 0?a:M(()=>r(a));return Rr(t,i)})}));class kn extends Ce()("effect/Effect/Transaction"){}var xS=(e)=>Tn((t)=>{if(t.context.mapUnsafe.has(kn.key))return e;let r={journal:new Map,retry:!1},n;return Pr((o)=>Z(Xo({while:()=>!n,body:G(o(e).pipe(is(kn,r),vd(()=>{if(!r.retry)return vn;return o(yS(r))}),Fc)),step(s){if(r.retry||!gS(r))return ld(r);if(Cp(s))ES(t,r);else ld(r);n=s}}),()=>n))}),gS=(e)=>{for(let[t,{version:r}]of e.journal)if(t.version!==r)return!1;return!0},yS=(e)=>ht(()=>{let t={},r=Array.from(e.journal.keys()),n=()=>{for(let o of r)o.pending.delete(t)};return _c((o)=>{let s=()=>{n(),o(vn)};for(let a of r)a.pending.set(t,s);return xt(n)})});function ES(e,t){for(let[r,{value:n}]of t.journal){if(n!==r.value)r.version=r.version+1,r.value=n;for(let o of r.pending.values())e.currentDispatcher.scheduleTask(o,0);r.pending.clear()}}function ld(e){e.retry=!1,e.journal.clear()}var bS=Z(kn,(e)=>(e.retry=!0,qd)),SS=(e,t,r)=>(...n)=>_c((o)=>{try{e(...n,(s,a)=>{if(s)o(It(t?t(s,n):s));else o(ie(a))})}catch(s){o(r?It(r(s,n)):es(s))}}),CS=()=>(e)=>e,wS=()=>(e)=>e,kS=()=>(e)=>e,vS=Of,TS=_f,AS=Mf,Kd=If,IS=Pf,RS=wf;class Mn extends $e.TaggedError("ConfigError"){}class Fr extends $e.TaggedError("AuthError"){}class O extends $e.TaggedError("ApiError"){}class Ve extends $e.TaggedError("ValidationError"){}class q extends $e.TaggedError("FileError"){}var OS=".config/fizzyx/cache",Yc=(e,t)=>{let r=()=>u.sync(()=>{let o=process.env.HOME;if(!o)throw new q({message:"HOME is not set"});if(!e)throw new q({message:"cache requires account"});if(!t)throw new q({message:"cache requires board. Run: fizzyx setup <board-id>"});let s=Xd(e),a=Xd(t);return`${o}/${OS}/${s}/${a}/board.json`}),n=(o)=>{let s=o.lastIndexOf("/");return s<=0?"/":o.slice(0,s)};return{read:()=>r().pipe(u.flatMap((o)=>u.tryPromise({try:async()=>{let s=Bun.file(o);if(!await s.exists())return null;return JSON.parse(await s.text())},catch:(s)=>new q({message:`Failed to read cache: ${String(s)}`,path:o})}))),write:(o)=>r().pipe(u.flatMap((s)=>u.tryPromise({try:async()=>{let a=n(s);await import("fs/promises").then((i)=>i.mkdir(a,{recursive:!0})),await Bun.write(s,`${JSON.stringify(o,null,2)}
|
|
27
|
+
`)},catch:(a)=>new q({message:`Failed to write cache: ${String(a)}`,path:s})}))),ageSeconds:()=>r().pipe(u.flatMap((o)=>u.tryPromise({try:async()=>{let s=await import("fs/promises");try{let a=await s.stat(o);return Math.max(0,Math.floor((Date.now()-a.mtimeMs)/1000))}catch{return Number.MAX_SAFE_INTEGER}},catch:(s)=>new q({message:`Failed to stat cache: ${String(s)}`,path:o})})))}},Xd=(e)=>e.replace(/[^a-zA-Z0-9_.-]/g,"_");import{existsSync as ei}from"fs";var Xc=".fizzy.yaml",_S=".config/fizzy/config.yaml",om="1",sm="https://fizzy.puffin.studio",am=5,cm=900,_t=()=>({loadProjectConfig:()=>u.gen(function*(){let e=yield*em(),t=yield*Un(e),r=Pn(e);return Gc(t,e,r)}),loadProjectConfigOptional:()=>u.gen(function*(){let e=yield*em(),t=yield*Un(e);return Gc(t,e,Pn(e))}).pipe(u.catch((e)=>Fn(e,"ConfigError")?u.succeed(void 0):u.fail(e))),setupProjectConfig:(e)=>u.gen(function*(){let t=e.configPath||`${process.cwd()}/${Xc}`,r=yield*PS(t),n=DS(e,r);return yield*im(t,n,384),Gc(n,t,Pn(t))}),loadCredentials:(e)=>u.gen(function*(){let t=yield*Zc(e),r=new q({message:`No token in ${t}`,path:t});if(ei(t)){let o=yield*FS(t).pipe(u.match({onFailure:(s)=>s,onSuccess:(s)=>s}));if(!Fn(o,"FileError"))return o;if(!BS(o,t))return yield*u.fail(o)}let n=yield*tm(e).pipe(u.catch(()=>u.fail(r)));return yield*Zd(e,n),n}),migrateCredentialsFromOfficial:tm,saveCredentials:(e,t)=>Zd(e,t),deleteCredentials:(e)=>u.gen(function*(){let t=yield*Zc(e);yield*u.tryPromise({try:()=>Bun.file(t).delete(),catch:(r)=>new q({message:`Failed to delete credentials: ${String(r)}`,path:t})})})}),Zd=(e,t)=>u.gen(function*(){let r=yield*Zc(e);yield*US(Pn(r)),yield*im(r,`${JSON.stringify(t,null,2)}
|
|
28
|
+
`,384)}),em=()=>u.sync(()=>{let e=process.cwd();while(!0){let t=`${e}/${Xc}`;if(ei(t))return t;let r=Pn(e);if(r===e)break;e=r}throw new Mn({message:`No ${Xc} found from ${process.cwd()}`})}).pipe(u.catch((e)=>Fn(e,"ConfigError")?u.fail(e):u.fail(new Mn({message:String(e)})))),Zc=(e)=>u.sync(()=>{let t=process.env.HOME;if(!t)throw new q({message:"HOME is not set"});return`${t}/.config/fizzyx/credentials/${WS(e)}.json`}).pipe(u.catch((t)=>Fn(t,"FileError")?u.fail(t):u.fail(new q({message:String(t)})))),MS=()=>u.sync(()=>{let e=process.env.HOME;if(!e)throw new q({message:"HOME is not set"});return`${e}/${_S}`}).pipe(u.catch((e)=>Fn(e,"FileError")?u.fail(e):u.fail(new q({message:String(e)})))),Fn=(e,t)=>typeof e==="object"&&e!==null&&("_tag"in e)&&e._tag===t,Un=(e)=>u.tryPromise({try:()=>Bun.file(e).text(),catch:(t)=>new q({message:`Failed to read ${e}: ${String(t)}`,path:e})}),PS=(e)=>ei(e)?Un(e):u.succeed(""),FS=(e)=>Un(e).pipe(u.map((t)=>{if(t.trim()==="")throw new q({message:`No token in ${e}`,path:e});let r=jS(t,e),n=typeof r.token==="string"?r.token:"";if(n==="")throw new q({message:`No token in ${e}`,path:e});return{token:n}})),tm=(e)=>u.gen(function*(){let t=yield*MS(),r=yield*Un(t),n=qS(r,t);if(rm(n.account)!==e)return yield*new q({message:`No matching official credential for account ${e}`,path:t});let s=rm(n.token);if(s==="")return yield*new q({message:`No token in ${t}`,path:t});return{token:s}}),im=(e,t,r)=>u.tryPromise({try:async()=>{await Bun.write(e,t),await import("fs/promises").then((n)=>n.chmod(e,r))},catch:(n)=>new q({message:`Failed to write ${e}: ${String(n)}`,path:e})}),US=(e)=>u.tryPromise({try:async()=>{await import("fs/promises").then((t)=>t.mkdir(e,{recursive:!0,mode:448}))},catch:(t)=>new q({message:`Failed to create ${e}: ${String(t)}`,path:e})}),Gc=(e,t,r)=>{let n=lm(e),o=Ot(n.account)||om,s=Ot(n.api_url)||sm,a=Ot(n.board)||void 0,i=NS(n.flow);if(!a)return{apiUrl:s,account:o,board:void 0,flow:i,configPath:t,rootDir:r};return{apiUrl:s,account:o,board:a,flow:i,configPath:t,rootDir:r}},NS=(e)=>{let t=Kc(e),r=Kc(t.columns),n=Ot(r.todo),o=Ot(r.in_progress)||Ot(r.inProgress);if(!n||!o)return;let s={};for(let[a,i]of Object.entries(Kc(t.users))){let f=Ot(i);if(f)s[a]=f}return{columns:{todo:n,inProgress:o},users:s,wipLimit:nm(t.wip_limit)||am,cacheTtlSeconds:nm(t.cache_ttl)||cm}},DS=(e,t="")=>{let r=e.apiUrl||sm,n=e.account||om,o=e.board||"",s={columns:{todo:e.todoColumn||"",in_progress:e.inProgressColumn||""},users:zS(e.users||{}),wip_limit:am,cache_ttl:cm},a=lm(t),i=LS(a,s,n,o,r);return HS(i)},LS=(e,t,r,n,o)=>{let s=[],a=new Set(Object.keys(e));if(!a.has("api_url"))s.push(["api_url",o]);if(!a.has("account"))s.push(["account",r]);if(!a.has("board"))s.push(["board",n]);let i=!1;for(let[f,l]of Object.entries(e)){if(f==="api_url"){s.push([f,o]);continue}if(f==="account"){s.push([f,r]);continue}if(f==="board"){s.push([f,n]);continue}if(f==="flow"){i=!0,s.push([f,t]);continue}s.push([f,l])}if(!i)s.push(["flow",t]);return s},HS=(e,t=0)=>{let r=um(e,t);return r.push(""),r.join(`
|
|
29
|
+
`)},um=(e,t)=>{let r=" ".repeat(t),n=[];for(let[o,s]of e){let a=fm(s,t);if(a.startsWith(`
|
|
30
|
+
`))n.push(`${r}${o}:${a}`);else n.push(`${r}${o}: ${a}`)}return n},fm=(e,t)=>{if(e===null||typeof e==="number"||typeof e==="boolean")return JSON.stringify(e);if(typeof e==="string")return e;if(Array.isArray(e)){if(e.length===0)return"[]";let n=t+2;return`
|
|
31
|
+
${e.map((s)=>$S(s,n)).join(`
|
|
32
|
+
`)}`}if(Object.keys(e).length===0)return"{}";return`
|
|
33
|
+
${um(Object.entries(e),t+2).join(`
|
|
34
|
+
`)}`},$S=(e,t)=>{let r=" ".repeat(t),n=fm(e,t);if(n.startsWith(`
|
|
35
|
+
`))return`${r}-
|
|
36
|
+
${n.slice(1)}`;return`${r}- ${n}`},lm=(e)=>{if(e.trim()==="")return{};let t=Bun.YAML.parse(e);if(!t||typeof t!=="object"||Array.isArray(t))throw new Mn({message:"Invalid config format: expected YAML object"});return t},jS=(e,t)=>{try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch(r){throw new q({message:`Invalid JSON in ${t}: ${String(r)}`,path:t})}},qS=(e,t)=>{try{let r=Bun.YAML.parse(e);if(!r||typeof r!=="object"||Array.isArray(r))throw Error("expected YAML object");return r}catch(r){throw new q({message:`Invalid official config in ${t}: ${String(r)}`,path:t})}},zS=(e)=>{let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t},Ot=(e)=>typeof e==="string"?e:"",rm=(e)=>typeof e==="string"||typeof e==="number"?e.toString():"",BS=(e,t)=>e.message===`No token in ${t}`,nm=(e)=>{if(typeof e==="number")return Number.isFinite(e)?e:0;return Number.parseInt(Ot(e),10)||0},Kc=(e)=>e&&typeof e==="object"&&!Array.isArray(e)?e:{},WS=(e)=>e.replace(/[^a-zA-Z0-9_.-]/g,"_"),Pn=(e)=>{let t=e.replace(/\/+$/,""),r=t.lastIndexOf("/");return r<=0?"/":t.slice(0,r)};var rI=`~effect/Fiber/${Co}`;var pm=Ea;var dm=ac;var QS="~effect/Channel";var YS={[QS]:{_Env:S,_InErr:S,_InElem:S,_OutErr:S,_OutElem:S},pipe(){return F(this,arguments)}},Nn=(e)=>{let t=Object.create(YS);return t.transform=(r,n)=>os(e(r,n),(o)=>ie(nr(o))),t};var mm=(e)=>Nn((t,r)=>e),hm=(e)=>Nn(_n(function*(t,r){let n=Xt(r),o=(a)=>Zt(n,Vp(a)),s=yield*Rn(e(t,r,n),o);return Rn(s,o)})),ls=(e)=>e.transform;var xm=(e)=>Nn((t,r)=>ht(()=>ls(e())(t,r)));var gm=(e)=>mm(ie(It(e)));var ym=c(2,(e,t)=>hm((r,n,o)=>Rp(o,t).pipe(ts(ls(e)(r,n)))));var Em=c(2,(e,t)=>ym(e,(r)=>t)),GS=(e,t,r)=>ht(()=>{let n=gn(),o=ls(e)(er(),n);return En(Z(o,t),r?r:ie).pipe(Mr((s)=>Zt(n,s)))});var bm=c(2,(e,t)=>GS(e,(r)=>fs(Z(r,t),{disableYield:!0})));var XS="~effect/Stream",ZS={_R:S,_E:S,_A:S},eC={[XS]:ZS,pipe(){return F(this,arguments)}},Sm=(e)=>{let t=Object.create(eC);return t.channel=e,t};var rC="~effect/Stream",Cm=(e)=>C(e,rC);var ps=Sm;var wm=(e)=>ps(xm(()=>e().channel)),km=(e)=>ps(gm(e));var vm=(e)=>ps(Nn(_n(function*(t,r){let n=e.evaluate().getReader();return yield*pc(r,e.releaseLockOnEnd?xt(()=>n.releaseLock()):Zo(()=>n.cancel())),Z(rt({try:()=>n.read(),catch:(o)=>e.onError(o)}),({done:o,value:s})=>o?er():ie(Pu(s)))})));var Tm=c(2,(e,t)=>ps(Em(e.channel,t)));var nC=c(2,(e,t)=>bm(e.channel,t));var oC=c((e)=>Cm(e[0]),(e,t,r)=>{let n=void 0,o=void 0,s=dm(!1);return new ReadableStream({start(a){o=Vc(cs(nC(e,(i)=>s.whenOpen(xt(()=>{s.closeUnsafe();for(let f=0;f<i.length;f++)a.enqueue(i[f]);n(),n=void 0}))),t)),o.addObserver((i)=>{if(i._tag==="Failure")a.error(Wp(i.cause));else a.close()})},pull(){return new Promise((a)=>{n=a,s.openUnsafe()})},cancel(){if(!o)return;return Jc(rs(pm(o)))}},r?.strategy)});var Am=c((e)=>Cm(e[0]),(e,t)=>ye(as(),(r)=>oC(e,r,t)));var Dn=new WeakMap;var Im="~effect/data/Redacted",aC=(e)=>C(e,Im),ri=(e,t)=>{let r=Object.create(cC);if(t?.label)r.label=t.label;return Dn.set(r,e),r},cC={[Im]:{_A:(e)=>e},label:void 0,...Le,toJSON(){return this.toString()},toString(){return`<redacted${ur(this.label)?":"+this.label:""}>`},[L](){return D(Dn.get(this))},[H](e){return aC(e)&&Y(Dn.get(this),Dn.get(e))}};var Rm=Symbol.for("~effect/http/Headers");var Ln=Object.defineProperties(Object.create(null),{[Rm]:{value:Rm},[fr]:{value(e){return hs(this,fe(e,oi))}},toJSON:{value(){return Ne(this)}},[H]:{value(e){return uC(this,e)}},[L]:{value(){return Lr(this)}},toString:{value:Ge.toString},[oe]:{value:Ge[oe]}}),ds=(e)=>Object.assign(Object.create(Ln),e),uC=Ru(Gr());var ni=Object.create(Ln),Hn=(e)=>{if(e===void 0)return ni;else if(Symbol.iterator in e){let r=Object.create(Ln);for(let[n,o]of e)r[n.toLowerCase()]=o;return r}let t=Object.create(Ln);for(let[r,n]of Object.entries(e))if(Array.isArray(n))t[r.toLowerCase()]=n.join(", ");else if(n!==void 0)t[r.toLowerCase()]=n;return t},Om=(e)=>Object.setPrototypeOf(e,Ln);var ms=c(3,(e,t,r)=>{let n=ds(e);return n[t.toLowerCase()]=r,n}),_m=c(2,(e,t)=>ds({...e,...Hn(t)})),Mm=c(2,(e,t)=>{let r=ds(e);return Object.assign(r,t),r}),$n=c(2,(e,t)=>{let r=ds(e);return delete r[t.toLowerCase()],r});var hs=c(2,(e,t)=>{let r={...e},n=(o)=>{if(typeof o==="string"){let s=o.toLowerCase();if(s in e)r[s]=ri(e[s])}else for(let s in e)if(o.test(s))r[s]=ri(e[s])};if(Array.isArray(t))for(let o=0;o<t.length;o++)n(t[o]);else n(t);return r}),oi=A("effect/Headers/CurrentRedactedNames",{defaultValue:()=>["authorization","cookie","set-cookie","x-api-key"]});var Pm="~effect/http/Cookies";var Fm="~effect/http/Cookies/Cookie";var fC={[Pm]:Pm,...Ge,toJSON(){return{_id:"effect/Cookies",cookies:Au(this.cookies,(e)=>e.toJSON())}},pipe(){return F(this,arguments)}},lC=(e)=>{let t=Object.create(fC);return t.cookies=e,t},pC=(e)=>{let t={};for(let r of e)t[r.name]=r;return lC(t)},Nm=(e)=>{let t=typeof e==="string"?[e]:e,r=[];for(let n of t){let o=dC(n.trim());if(o)r.push(o)}return pC(r)};function dC(e){let t=e.split(";").map((i)=>i.trim()).filter((i)=>i!=="");if(t.length===0)return;let r=t[0].indexOf("=");if(r===-1)return;let n=t[0].slice(0,r);if(!mC.test(n))return;let o=t[0].slice(r+1),s=hC(o);if(t.length===1)return Object.assign(Object.create(Um),{name:n,value:s,valueEncoded:o});let a={};for(let i=1;i<t.length;i++){let f=t[i],l=f.indexOf("="),h=l===-1?f:f.slice(0,l).trim(),p=l===-1?void 0:f.slice(l+1).trim();switch(h.toLowerCase()){case"domain":{if(p===void 0)break;let x=p.trim().replace(/^\./,"");if(x)a.domain=x;break}case"expires":{if(p===void 0)break;let x=new Date(p);if(!isNaN(x.getTime()))a.expires=x;break}case"max-age":{if(p===void 0)break;let x=parseInt(p,10);if(!isNaN(x))a.maxAge=Qs(x);break}case"path":{if(p===void 0)break;if(p[0]==="/")a.path=p;break}case"priority":{if(p===void 0)break;switch(p.toLowerCase()){case"low":a.priority="low";break;case"medium":a.priority="medium";break;case"high":a.priority="high";break}break}case"httponly":{a.httpOnly=!0;break}case"secure":{a.secure=!0;break}case"partitioned":{a.partitioned=!0;break}case"samesite":{if(p===void 0)break;switch(p.toLowerCase()){case"lax":a.sameSite="lax";break;case"strict":a.sameSite="strict";break;case"none":a.sameSite="none";break}break}}}return Object.assign(Object.create(Um),{name:n,value:s,valueEncoded:o,options:Object.keys(a).length>0?a:void 0})}var mC=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Um={[Fm]:Fm,...Ge,toJSON(){return{_id:"effect/Cookies/Cookie",name:this.name,value:this.value,options:this.options}}};var hC=(e)=>{try{return decodeURIComponent(e)}catch(t){return e}};var Dm="~effect/http/HttpClientError";class Ae extends He("HttpClientError"){constructor(e){if("cause"in e.reason)super({...e,cause:e.reason.cause});else super(e)}[Dm]=Dm;get request(){return this.reason.request}get response(){return"response"in this.reason?this.reason.response:void 0}get message(){return this.reason.message}}var xs=(e)=>e.endsWith("Error")?e.slice(0,-5):e,gs=(e,t,r)=>t?`${e}: ${t} (${r})`:`${e} error (${r})`;class si extends He("TransportError"){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){return gs(xs(this._tag),this.description,this.methodAndUrl)}}class ai extends He("InvalidUrlError"){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){return gs(xs(this._tag),this.description,this.methodAndUrl)}}class Mt extends He("DecodeError"){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){let e=`${this.response.status} ${this.methodAndUrl}`;return gs(xs(this._tag),this.description,e)}}class ci extends He("EmptyBodyError"){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){let e=`${this.response.status} ${this.methodAndUrl}`;return gs(xs(this._tag),this.description,e)}}var Lm="~effect/http/UrlParams";var gC={...Le,[Lm]:Lm,[Symbol.iterator](){return this.params[Symbol.iterator]()},toJSON(){return{_id:"UrlParams",params:Object.fromEntries(this.params)}},[H](e){return yC(this,e)},[L](){return Hr(this.params.flat())}},Hm=(e)=>{let t=Object.create(gC);return t.params=e,t},qn=(e)=>{let t=$m(e),r=[];for(let n=0;n<t.length;n++)if(Array.isArray(t[n][0])){let[o,s]=t[n];r.push([`${o[0]}[${o.slice(1).join("][")}]`,s])}else r.push(t[n]);return Hm(r)},$m=(e)=>{let t=typeof e[Symbol.iterator]==="function"?ze(e):Object.entries(e),r=[];for(let[n,o]of t)if(Array.isArray(o)){for(let s=0;s<o.length;s++)if(o[s]!==void 0)r.push([n,String(o[s])])}else if(typeof o==="object"){let s=$m(o);for(let[a,i]of s)r.push([[n,...typeof a==="string"?[a]:a],i])}else if(o!==void 0)r.push([n,String(o)]);return r},yC=ro((e,t)=>EC(e.params,t.params)),EC=Uu(vu([Gr(),Gr()]));var jm=Hm([]);var qm=c(2,(e,t)=>{let r=qn(t),n=r.params,o=new Set;for(let s=0;s<n.length;s++)o.add(n[s][0]);for(let s=0;s<e.params.length;s++){if(o.has(e.params[s][0]))continue;n.push(e.params[s])}return r});class ui extends He("UrlParamsError"){}var fi=(e,t,r)=>{try{let n=new URL(e,bC());for(let o=0;o<t.params.length;o++){let[s,a]=t.params[o];if(a!==void 0)n.searchParams.append(s,a)}if(r!==void 0)n.hash=r;return le(n)}catch(n){return re(new ui({cause:n}))}};var bC=()=>{if("location"in globalThis&&globalThis.location!==void 0&&globalThis.location.origin!==void 0&&globalThis.location.pathname!==void 0)return location.origin+location.pathname;return};var pi="~effect/http/HttpBody";var zm="~effect/http/HttpBody/HttpBodyError";class Bm extends He("HttpBodyError"){[zm]=zm}class di{[pi];constructor(){this[pi]=pi}[oe](){return this.toJSON()}toString(){return X(this,{ignoreToString:!0})}}class Wm extends di{_tag="Empty";toJSON(){return{_id:"effect/HttpBody",_tag:"Empty"}}}var Vm=new Wm;class Jm extends di{_tag="Uint8Array";body;contentType;contentLength;constructor(e,t,r){super();this.body=e,this.contentType=t,this.contentLength=r}toJSON(){return{_id:"effect/HttpBody",_tag:"Uint8Array",body:this.contentType.startsWith("text/")||this.contentType.endsWith("json")?new TextDecoder().decode(this.body):`Uint8Array(${this.body.length})`,contentType:this.contentType,contentLength:this.contentLength}}}var Qm=(e,t)=>new Jm(e,t??"application/octet-stream",e.length),SC=new TextEncoder,Ym=(e,t)=>Qm(SC.encode(e),t??"text/plain");var Gm=(e,t)=>Or({try:()=>Ym(JSON.stringify(e),t??"application/json"),catch:(r)=>new Bm({reason:{_tag:"JsonError"},cause:r})});var Km=[["GET","get"],["POST","post"],["PUT","put"],["DELETE","del"],["PATCH","patch"],["HEAD","head"],["OPTIONS","options"],["TRACE","trace"]];var Xm="~effect/http/HttpClientRequest";var kC={[Xm]:Xm,...Ge,toJSON(){return{_id:"HttpClientRequest",method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:Ne(this.headers),body:this.body.toJSON()}},pipe(){return F(this,arguments)}};function gt(e,t,r,n,o,s){let a=Object.create(kC);return a.method=e,a.url=t,a.urlParams=r,a.hash=n,a.headers=o,a.body=s,a}var vC=gt("GET","",jm,J(),ni,Vm),zn=(e)=>(t,r)=>TC(vC,{method:e,url:t,...r??void 0});var TC=c(2,(e,t)=>{let r=e;if(t.method)r=AC(r,t.method);if(t.url)r=th(r,t.url);if(t.headers)r=mi(r,t.headers);if(t.urlParams)r=RC(r,t.urlParams);if(t.hash)r=OC(r,t.hash);if(t.body)r=rh(r,t.body);if(t.accept)r=eh(r,t.accept);if(t.acceptJson)r=IC(r);return r}),AC=c(2,(e,t)=>gt(t,e.url,e.urlParams,e.hash,e.headers,e.body)),Zm=c(3,(e,t,r)=>gt(e.method,e.url,e.urlParams,e.hash,ms(e.headers,t,r),e.body)),mi=c(2,(e,t)=>gt(e.method,e.url,e.urlParams,e.hash,_m(e.headers,t),e.body));var eh=c(2,(e,t)=>Zm(e,"Accept",t)),IC=eh("application/json"),th=c(2,(e,t)=>{if(typeof t==="string")return gt(e.method,t,e.urlParams,e.hash,e.headers,e.body);let r=new URL(t.toString()),n=qn(r.searchParams),o=uu(r.hash===""?void 0:r.hash.slice(1));return r.search="",r.hash="",gt(e.method,r.toString(),n,o,e.headers,e.body)});var RC=c(2,(e,t)=>gt(e.method,e.url,qm(e.urlParams,t),e.hash,e.headers,e.body));var OC=c(2,(e,t)=>gt(e.method,e.url,e.urlParams,te(t),e.headers,e.body));var rh=c(2,(e,t)=>{let r=e.headers;if(t._tag==="Empty"||t._tag==="FormData")r=$n($n(r,"Content-Type"),"Content-length");else{if(t.contentType)r=ms(r,"content-type",t.contentType);if(t.contentLength!==void 0)r=ms(r,"content-length",t.contentLength.toString())}return gt(e.method,e.url,e.urlParams,e.hash,r,t)});var nh=c(2,(e,t)=>ye(Gm(t),(r)=>rh(e,r)));var or="~effect/http/HttpIncomingMessage";var sh=(e,t)=>{let r=e.headers["content-type"]??"",n;if(r.includes("application/json"))try{n=Rt(e.json)}catch(s){}else if(r.includes("text/")||r.includes("urlencoded"))try{n=Rt(e.text)}catch(s){}let o={...t,headers:Ne(e.headers),remoteAddress:e.remoteAddress};if(n!==void 0)o.body=n;return o};var Ur="~effect/http/HttpClientResponse",ch=(e,t)=>new ih(e,t);class ih extends Ps{[or];[Ur];request;source;constructor(e,t){super();this.request=e,this.source=t,this[or]=or,this[Ur]=Ur}toJSON(){return sh(this,{_id:"HttpClientResponse",request:this.request.toJSON(),status:this.status})}get status(){return this.source.status}get headers(){return Hn(this.source.headers)}cachedCookies;get cookies(){if(this.cachedCookies)return this.cachedCookies;return this.cachedCookies=Nm(this.source.headers.getSetCookie())}get remoteAddress(){return J()}get stream(){return this.source.body?vm({evaluate:()=>this.source.body,onError:(e)=>new Ae({reason:new Mt({request:this.request,response:this,cause:e})})}):km(new Ae({reason:new ci({request:this.request,response:this,description:"can not create stream from empty body"})}))}get json(){return Z(this.text,(e)=>Or({try:()=>e===""?null:JSON.parse(e),catch:(t)=>new Ae({reason:new Mt({request:this.request,response:this,cause:t})})}))}textBody;get text(){if(this.textBody)return this.textBody;return this.textBody=rt({try:()=>this.source.text(),catch:(e)=>new Ae({reason:new Mt({request:this.request,response:this,cause:e})})}).pipe(On,Rt),this.arrayBufferBody=ye(this.textBody,(e)=>new TextEncoder().encode(e).buffer),this.textBody}get urlParamsBody(){return Z(this.text,(e)=>Or({try:()=>qn(new URLSearchParams(e)),catch:(t)=>new Ae({reason:new Mt({request:this.request,response:this,cause:t})})}))}formDataBody;get formData(){return this.formDataBody??=rt({try:()=>this.source.formData(),catch:(e)=>new Ae({reason:new Mt({request:this.request,response:this,cause:e})})}).pipe(On,Rt)}arrayBufferBody;get arrayBuffer(){if(this.arrayBufferBody)return this.arrayBufferBody;return this.arrayBufferBody=rt({try:()=>this.source.arrayBuffer(),catch:(e)=>new Ae({reason:new Mt({request:this.request,response:this,cause:e})})}).pipe(On,Rt),this.textBody=ye(this.arrayBufferBody,(e)=>new TextDecoder().decode(e)),this.arrayBufferBody}pipe(){return F(this,arguments)}}var fh=(e)=>Om({b3:`${e.traceId}-${e.spanId}-${e.sampled?"1":"0"}${so(e.parent,{onNone:()=>"",onSome:(t)=>`-${t.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?"01":"00"}`});var lh="~effect/http/HttpClient";var ph=Ce("effect/HttpClient"),MC=(e)=>(...t)=>Z(ph,(r)=>r[e](...t)),dh=MC("execute");var PC=c(2,(e,t)=>mh((r)=>t(e.postprocess(r)),e.preprocess));var mh=(e,t)=>{let r=Object.create(FC);return r.preprocess=t,r.postprocess=e,r.execute=function(n){return e(t(n))},r},FC={[lh]:lh,pipe(){return F(this,arguments)},...Ge,toJSON(){return{_id:"effect/HttpClient"}},...Object.fromEntries(Km.map(([e,t])=>[t,function(r,n){return this.execute(zn(e)(r,n))}]))},hh=(e)=>mh((t)=>Z(t,(r)=>Tn((n)=>{let o=LC.get(r),s=o??new AbortController,a=fi(r.url,r.urlParams,Ht(r.hash));if($(a))return It(new Ae({reason:new ai({request:r,cause:a.failure})}));let i=a.success;if(n.getRef(br)||n.getRef(UC)(r)){let l=e(r,i,s.signal,n);if(o)return l;return Pr((h)=>_r(h(l),{onSuccess(p){return ys.register(p,s),ie(new hi(p,s))},onFailure(p){if(yc(p))s.abort();return nr(p)}}))}return jc(n.getRef(DC)(r),{kind:"client"},(l)=>{if(l.attribute("http.request.method",r.method),l.attribute("server.address",i.origin),i.port!=="")l.attribute("server.port",+i.port);l.attribute("url.full",i.toString()),l.attribute("url.path",i.pathname),l.attribute("url.scheme",i.protocol.slice(0,-1));let h=i.search.slice(1);if(h!=="")l.attribute("url.query",h);let p=n.getRef(oi),x=hs(r.headers,p);for(let k in x)l.attribute(`http.request.header.${k}`,String(x[k]));return r=n.getRef(NC)?mi(r,fh(l)):r,Pr((k)=>k(e(r,i,s.signal,n)).pipe(qc(l,{captureStackTrace:!1}),_r({onSuccess:(E)=>{l.attribute("http.response.status_code",E.status);let ee=hs(E.headers,p);for(let z in ee)l.attribute(`http.response.header.${z}`,String(ee[z]));if(o)return ie(E);return ys.register(E,s),ie(new hi(E,s))},onFailure(E){if(!o&&yc(E))s.abort();return nr(E)}})))})})),ie);var UC=A("effect/http/HttpClient/TracerDisabledWhen",{defaultValue:()=>ar}),NC=A("effect/HttpClient/TracerPropagationEnabled",{defaultValue:Re}),DC=A("effect/http/HttpClient/SpanNameGenerator",{defaultValue:()=>(e)=>`http.client ${e.method}`}),xh=(e)=>Hp(ph)(In((t)=>ye(e,(r)=>PC(r,Lc((n)=>xr(t,n)))))),ys=(()=>{if("FinalizationRegistry"in globalThis&&globalThis.FinalizationRegistry){let t=new FinalizationRegistry((r)=>{r.abort()});return{register(r,n){t.register(r,n,r)},unregister(r){t.unregister(r)}}}let e=new Map;return{register(t,r){e.set(t,setTimeout(()=>r.abort(),5000))},unregister(t){let r=e.get(t);if(r===void 0)return;clearTimeout(r),e.delete(t)}}})(),LC=new WeakMap;class hi{original;controller;constructor(e,t){this.original=e,this.controller=t}[Ur]=Ur;[or]=or;applyInterrupt(e){return ht(()=>(ys.unregister(this.original),us(e,()=>xt(()=>{this.controller.abort()}))))}get request(){return this.original.request}get status(){return this.original.status}get headers(){return this.original.headers}get cookies(){return this.original.cookies}get remoteAddress(){return this.original.remoteAddress}get formData(){return this.applyInterrupt(this.original.formData)}get text(){return this.applyInterrupt(this.original.text)}get json(){return this.applyInterrupt(this.original.json)}get urlParamsBody(){return this.applyInterrupt(this.original.urlParamsBody)}get arrayBuffer(){return this.applyInterrupt(this.original.arrayBuffer)}get stream(){return wm(()=>(ys.unregister(this.original),Tm(this.original.stream,xt(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[oe](){return this.original[oe]()}pipe(){return F(this,arguments)}}var HC=A("effect/http/FetchHttpClient/Fetch",{defaultValue:()=>globalThis.fetch});class yh extends Ce()("effect/http/FetchHttpClient/RequestInit"){}var $C=hh((e,t,r,n)=>{let o=n.getRef(HC),s=n.context.mapUnsafe.get(yh.key)??{},a=s.headers?Mm(Hn(s.headers),e.headers):e.headers;if(a["content-length"])a=$n(a,"content-length");let i=(f)=>ye(rt({try:()=>o(t,{...s,method:e.method,headers:a,body:f,duplex:e.body._tag==="Stream"?"half":void 0,signal:r}),catch:(l)=>new Ae({reason:new si({request:e,cause:l})})}),(l)=>ch(e,l));switch(e.body._tag){case"Raw":case"Uint8Array":return i(e.body.body);case"FormData":return i(e.body.formData);case"Stream":return Z(Am(e.body.stream),i)}return i(void 0)}),Eh=xh(ie($C));var Bn=(e,t)=>{let r=(d,m,T)=>u.gen(function*(){let b=yield*o(d,m,T),W=yield*a(b);if(b.status<200||b.status>=300)return yield*new O({message:p(W,b.status),status:b.status});return h(W)}).pipe(u.catch((b)=>b instanceof O?b:new O({message:String(b)}))),n=(d,m,T)=>u.gen(function*(){let b=yield*o(d,m,T);if(b.status<200||b.status>=300){let W=yield*a(b);return yield*new O({message:p(W,b.status),status:b.status})}}).pipe(u.catch((b)=>b instanceof O?b:new O({message:String(b)}))),o=(d,m,T)=>T===void 0?s(zn(d)(i(e,m),{headers:{Authorization:`Bearer ${t}`,Accept:"application/json"}})):nh(T)(zn(d)(i(e,m),{headers:{Authorization:`Bearer ${t}`,Accept:"application/json"}})).pipe(u.mapError((b)=>new O({message:String(b)})),u.flatMap(s),u.catch((b)=>b instanceof O?b:new O({message:String(b)}))),s=(d)=>dh(d).pipe(u.provide(Eh),u.mapError((m)=>new O({message:String(m)}))),a=(d)=>d.text.pipe(u.mapError((m)=>new O({message:String(m)})),u.flatMap((m)=>{if(!m)return u.succeed(null);return f(m,d.status)})),i=(d,m)=>{let T=d.apiUrl.replace(/\/+$/,""),b=m.startsWith("/")?m:`/${m}`,W=b.startsWith("/my/"),ne=`/${d.account}`;return`${T}${W||b.startsWith(`${ne}/`)?b:`${ne}${b}`}`},f=(d,m)=>u.try({try:()=>JSON.parse(d),catch:()=>new O({status:m,message:`HTTP ${String(m)}: invalid JSON response (${l(d)})`})}),l=(d,m=120)=>{let T=d.trim();return T.length>m?`${T.slice(0,m)}...`:T},h=(d)=>{if(Cs(d)&&"data"in d)return d.data;return d},p=(d,m)=>{if(Cs(d)&&"error"in d)return String(d.error);return`HTTP ${String(m)}`},x=(d)=>u.try({try:()=>{let m=me(h(d)),T=Array.isArray(m?.accounts)?m.accounts:[],b=me(T[0]),W=me(m?.user)||me(b?.user)||m,ne=B(W?.id)||B(m?.user_id);if(!ne)throw new O({message:"Failed to decode identity: missing userId"});return{userId:ne,name:B(W?.name),email:B(W?.email)}},catch:(m)=>m instanceof O?m:new O({message:String(m)})}),k=(d)=>u.try({try:()=>{let m=me(d);if(!m)throw new O({message:"Failed to decode card: expected object"});let T=ex(m.number);if(!Number.isFinite(T))throw new O({message:"Failed to decode card: number must be finite"});let b=B(m.title);if(!b)throw new O({message:"Failed to decode card: title must be string"});return{id:B(m.id),number:T,title:b,description:B(m.description),column:be(m.column),assignees:Xh(m.assignees),closed:ws(m.closed),golden:ws(m.golden),steps:Zh(m.steps)}},catch:(m)=>m instanceof O?m:new O({message:String(m)})}),E=(d)=>{if(!Array.isArray(d))return u.fail(new O({message:"Failed to decode cards: expected array"}));return u.forEach(d,k)},ee=(d)=>{if(!Array.isArray(d))return u.fail(new O({message:"Failed to decode columns: expected array"}));let m=[];for(let T of d){let b=me(T);if(!b)continue;let W=B(b.id),ne=B(b.name);if(!W||!ne)continue;m.push({id:W,name:ne})}return u.succeed(m)},z=(d)=>u.try({try:()=>{let m=me(d);if(!m)throw new O({message:"Failed to decode board: expected object"});let T=B(m.id);if(!T)throw new O({message:"Failed to decode board: missing id"});return{id:T,name:B(m.name)||""}},catch:(m)=>m instanceof O?m:new O({message:String(m)})}),yt=(d)=>{if(!Array.isArray(d))return u.fail(new O({message:"Failed to decode boards: expected array"}));return u.forEach(d,z)},Fe=(d)=>u.try({try:()=>{let m=me(d);if(!m)throw new O({message:"Failed to decode column: expected object"});let T=B(m.id),b=B(m.name);if(!T||!b)throw new O({message:"Failed to decode column: missing id or name"});return{id:T,name:b}},catch:(m)=>m instanceof O?m:new O({message:String(m)})}),Ie=(d)=>{if(!Array.isArray(d))return u.fail(new O({message:"Failed to decode comments: expected array"}));return u.succeed(d.map((m)=>Ee(m)))},Ee=(d)=>{let m=me(d);if(!m)return{};return{created_at:B(m.created_at),creator:sr(m.creator),body:Nr(m.body)}},sr=(d)=>{let m=me(d);if(!m)return;let T=B(m.name);if(!T)return{};return{name:T}},Nr=(d)=>{let m=me(d);if(!m)return;let T=B(m.plain_text);if(!T)return{};return{plain_text:T}},be=(d)=>{let m=me(d);if(!m)return;return{id:B(m.id),name:B(m.name)}},Xh=(d)=>{if(!Array.isArray(d))return[];let m=[];for(let T of d){let b=me(T);if(!b)continue;let W=B(b.id);if(!W)continue;let ne=B(b.name);if(!ne)continue;m.push({id:W,name:ne})}return m},Zh=(d)=>{if(!Array.isArray(d))return[];let m=[];for(let T of d){let b=me(T);if(!b)continue;let W=B(b.content);if(!W)continue;let ne=ws(b.completed);if(ne===void 0)continue;m.push({id:B(b.id),content:W,completed:ne})}return m},Cs=(d)=>d!==null&&typeof d==="object"&&!Array.isArray(d),me=(d)=>Cs(d)?d:void 0,B=(d)=>typeof d==="string"?d:void 0,ws=(d)=>typeof d==="boolean"?d:void 0,ex=(d)=>{if(typeof d==="number"&&Number.isFinite(d))return d;return Number.NaN},wi=()=>r("GET",`/boards/${e.board}/columns.json`).pipe(u.flatMap(ee)),tx=(d)=>r("POST",`/boards/${e.board}/columns.json`,{column:{name:d}});return{identity:()=>r("GET","/my/identity.json").pipe(u.flatMap(x)),listBoards:()=>r("GET","/boards.json").pipe(u.flatMap(yt)),listColumns:()=>wi(),createColumn:(d)=>u.gen(function*(){let m=yield*tx(d),T=yield*Fe(m).pipe(u.catch(()=>u.succeed(void 0)));if(T)return T;let W=(yield*wi()).find((ne)=>ne.name===d);if(!W)return yield*new O({message:`Failed to create column ${d}`});return W}),listCards:(d)=>{let m=new URLSearchParams;if(e.board)m.append("board_ids[]",e.board);if(d?.indexedBy)m.set("indexed_by",d.indexedBy);if(d?.all)m.set("all","true");let T=m.size>0?`?${m}`:"";return r("GET",`/cards.json${T}`).pipe(u.flatMap(E))},showCard:(d)=>r("GET",`/cards/${d}.json`).pipe(u.flatMap(k)),listComments:(d)=>r("GET",`/cards/${d}/comments.json?all=true`).pipe(u.flatMap(Ie)),createCard:(d)=>r("POST","/cards.json",{board_id:d.board,title:d.title,description:d.description}).pipe(u.flatMap(k)),assignCard:(d,m)=>n("POST",`/cards/${d}/assignments.json`,{assignee_id:m}),selfAssignCard:(d)=>n("POST",`/cards/${d}/self_assignment.json`),moveCard:(d,m)=>n("POST",`/cards/${d}/triage.json`,{column_id:m}),comment:(d,m)=>n("POST",`/cards/${d}/comments.json`,{body:m}),closeCard:(d)=>n("POST",`/cards/${d}/close.json`),postponeCard:(d)=>n("POST",`/cards/${d}/postpone.json`),createStep:(d,m,T)=>n("POST",`/cards/${d}/steps.json`,{content:m,completed:Boolean(T)})}};var kh="1",vh="https://fizzy.puffin.studio",xi=".fizzy.yaml",KO=u.gen(function*(){let e=_t(),t=yield*e.loadProjectConfig(),r=yield*Th(t),n=yield*e.loadCredentials(t.account).pipe(u.catch(()=>u.fail(new Fr({message:`No token for account ${t.account}. Run: fizzyx auth login <token>`})))),o=Yc(t.account,r),s=Bn(t,n.token);return{config:t,configRepo:e,cacheRepo:o,api:s}}),Pe=u.gen(function*(){let e=_t(),t=yield*e.loadProjectConfig(),r=yield*Th(t),n=yield*e.loadCredentials(t.account).pipe(u.catch(()=>u.fail(new Fr({message:`No token for account ${t.account}. Run: fizzyx auth login <token>`})))),o=Yc(t.account,r),s=gi(e,t,n.token);return{config:yield*jh({configRepo:e,api:s,config:t}),configRepo:e,cacheRepo:o,api:s}}),Es=(e)=>u.gen(function*(){return(yield*e.loadProjectConfigOptional().pipe(u.catchDefect((r)=>Sh(r,"ConfigError")&&bh(r.message)?u.succeed(void 0):u.fail(r)),u.catch((r)=>Sh(r,"ConfigError")&&bh(r.message)?u.succeed(void 0):u.fail(r))))||{apiUrl:vh,account:kh,configPath:`${process.cwd()}/${xi}`,rootDir:process.cwd()}}),bh=(e)=>e.startsWith(`No ${xi} found from`),qC=(e,t)=>typeof e==="object"&&e!==null&&("_tag"in e)&&e._tag===t,Sh=(e,t)=>qC(e,t)&&typeof e.message==="string",Th=(e)=>e.board?u.succeed(e.board):u.fail(new Ve({message:"No board configured. Run: fizzyx setup <board-id>"})),Ah=(e)=>u.gen(function*(){let t=_t();if(!e.board)return yield*new Ve({message:"board is required"});let r=e.account||kh,n=e.apiUrl||vh,o={apiUrl:n,account:r,board:e.board,configPath:`${process.cwd()}/${xi}`,rootDir:process.cwd()},s=yield*t.loadCredentials(r).pipe(u.catch(()=>u.fail(new Fr({message:`No token for account ${r}. Run: fizzyx auth login <token>`})))),a=gi(t,o,s.token);if(e.todoColumn&&e.inProgressColumn)return yield*t.setupProjectConfig({account:r,board:e.board,todoColumn:e.todoColumn,inProgressColumn:e.inProgressColumn,users:e.users||{},apiUrl:n});return yield*jh({configRepo:t,api:a,config:o,initialUsers:e.users})}),Ih=()=>u.gen(function*(){let e=_t(),t=yield*Es(e),r=yield*e.loadCredentials(t.account).pipe(u.catch(()=>u.fail(new Fr({message:`No token for account ${t.account}. Run: fizzyx auth login <token>`}))));return yield*gi(e,t,r.token).listBoards()}),gi=(e,t,r)=>{let n=r,o=Bn(t,n),s=(i)=>i instanceof O?i:new O({message:String(i)}),a=(i)=>u.gen(function*(){let f=yield*i(o).pipe(u.map((p)=>({_tag:"right",right:p})),u.catch((p)=>u.succeed({_tag:"left",left:s(p)})));if(f._tag==="right")return f.right;let l=f.left;if(!zC(l))return yield*u.fail(l);let h=yield*e.migrateCredentialsFromOfficial(t.account).pipe(u.catch(()=>u.fail(l)));if(h.token!==n)n=h.token,o=Bn(t,n),yield*e.saveCredentials(t.account,h).pipe(u.catch((p)=>new O({message:`Failed to persist migrated credentials: ${p instanceof q?p.message:String(p)}`})));return yield*i(o)});return{identity:()=>a((i)=>i.identity()),listBoards:()=>a((i)=>i.listBoards()),listCards:(i)=>a((f)=>f.listCards(i)),showCard:(i)=>a((f)=>f.showCard(i)),listComments:(i)=>a((f)=>f.listComments(i)),listColumns:()=>a((i)=>i.listColumns()),createColumn:(i)=>a((f)=>f.createColumn(i)),createCard:(i)=>a((f)=>f.createCard(i)),assignCard:(i,f)=>a((l)=>l.assignCard(i,f)),selfAssignCard:(i)=>a((f)=>f.selfAssignCard(i)),moveCard:(i,f)=>a((l)=>l.moveCard(i,f)),comment:(i,f)=>a((l)=>l.comment(i,f)),closeCard:(i)=>a((f)=>f.closeCard(i)),postponeCard:(i)=>a((f)=>f.postponeCard(i)),createStep:(i,f,l)=>a((h)=>h.createStep(i,f,l))}},zC=(e)=>e.status===401;var Rh=(e)=>u.gen(function*(){let t=_t(),r=yield*Es(t);return yield*t.saveCredentials(r.account,{token:e}),r.account}),Oh=u.gen(function*(){let e=_t(),t=yield*Es(e),r=yield*e.loadCredentials(t.account).pipe(u.option);if(r._tag==="None")return{account:t.account,board:t.board,authenticated:!1};let o=yield*Bn(t,r.value.token).identity().pipe(u.map((s)=>({_tag:"success",identity:s})),u.catch((s)=>u.succeed({_tag:"failure",error:s instanceof Error?s.message:String(s)})));return{account:t.account,board:t.board,authenticated:!0,identity:o._tag==="success"?o.identity:void 0,identityError:o._tag==="failure"?o.error:void 0}}),_h=u.gen(function*(){let e=_t(),t=yield*Es(e);return yield*e.deleteCredentials(t.account),t.account}),Pt=(e)=>u.gen(function*(){let[t,r,n]=yield*u.all([e.api.identity(),e.api.listCards({all:!0}),e.api.listCards({indexedBy:"not_now",all:!0})]),o=qh(e.config,r),s={identity:t,cards:r,notNow:n,users:o,syncedAt:new Date().toISOString()};return yield*e.cacheRepo.write(s),s}),yi=(e,t)=>u.gen(function*(){let r=yield*e.cacheRepo.ageSeconds();if(t||r>e.config.flow.cacheTtlSeconds)return yield*Pt(e);let n=yield*e.cacheRepo.read();if(n)return n;return yield*Pt(e)}),Ei=(e,t)=>u.gen(function*(){let r=yield*yi(e,t.fresh),n=t.user?zh(e.config,t.user):r.identity.userId,o=WC(r,n)||t.user||r.identity.name||"me",s=r.cards.filter((a)=>a.assignees?.some((i)=>i.id===n));return{name:o,userId:n,cards:s}}),Mh=(e,t)=>u.gen(function*(){let r=yield*yi(e,t.fresh),n=yield*e.cacheRepo.ageSeconds();return{cache:r,age:n}}),Ph=(e,t)=>u.gen(function*(){let r=yield*e.api.showCard(t),n=yield*e.api.listComments(t).pipe(u.catch(()=>u.succeed([])));return{card:r,comments:n.slice(-3)}}),Fh=(e,t)=>u.gen(function*(){let r=yield*Ei(e,{fresh:t.fresh}),n=r.cards.find((o)=>(o.column?.name||"")==="TODO");return{user:r,card:n}}),Uh=(e,t)=>u.gen(function*(){let r=yield*yi(e,!0),n=r.cards.find((a)=>a.number===t);if(!n)return yield*new Ve({message:`Card #${t} not found`});let o=r.identity.userId,s=r.cards.filter((a)=>(a.column?.id===e.config.flow.columns.inProgress||a.column?.name==="INPROGRESS")&&a.assignees?.some((i)=>i.id===o));if(s.length>=e.config.flow.wipLimit)return yield*new Ve({message:`Current user already has ${s.length} INPROGRESS cards`});if(yield*e.api.moveCard(t,e.config.flow.columns.inProgress),!n.assignees?.some((a)=>a.id===o))yield*e.api.selfAssignCard(t);return yield*Pt(e),t}),Nh=(e,t,r)=>u.gen(function*(){let n=r||"done";return yield*e.api.comment(t,`<p>\u2713 Done. ${n}. All Done When satisfied.</p>`),yield*e.api.closeCard(t),yield*Pt(e),{number:t,ref:n}}),Dh=(e={})=>u.gen(function*(){let t=e.cwd||process.cwd(),[r,n]=yield*u.all([wh(t,["rev-parse","--short","HEAD"]),wh(t,["log","-1","--format=%s"])]);if(r===""||n==="")return yield*new Ve({message:"Cannot derive done ref from git. Pass an explicit ref."});return`commit ${r}: ${n}`}),Lh=(e,t,r)=>u.gen(function*(){if(!r.trim())return yield*new Ve({message:"Block reason is required"});return yield*e.api.comment(t,`<p>Blocked: ${r}</p>`),yield*e.api.postponeCard(t),yield*Pt(e),{number:t,reason:r}}),Hh=(e,t)=>u.gen(function*(){if(!e.config.board)return yield*new Ve({message:"board is required"});let r=zh(e.config,t.user),n=yield*e.api.createCard({title:t.title,description:t.description,board:e.config.board});return yield*e.api.assignCard(n.number,r),yield*e.api.moveCard(n.number,e.config.flow.columns.todo),yield*Pt(e),n.number}),$h=(e,t)=>u.gen(function*(){let r=yield*e.api.showCard(t),n=new Set((r.steps||[]).map((s)=>s.content)),o=VC(r.description||"").filter((s)=>!n.has(s.content));return yield*u.forEach(o,(s)=>e.api.createStep(t,s.content,s.completed)),o}),jh=(e)=>u.gen(function*(){let t={...e.initialUsers};if(e.config.flow?.users)Object.assign(t,e.config.flow.users);let r=yield*e.api.identity().pipe(u.map((f)=>({_tag:"success",identity:f})),u.catch(()=>u.succeed({_tag:"failure"}))),n=yield*e.api.listCards({all:!0}).pipe(u.catch(()=>u.succeed([]))),o=qh(e.config,n);if(Object.assign(t,o),r._tag==="success"&&r.identity.name)t[r.identity.name]=r.identity.userId;if(e.config.flow){if(!BC(e.config.flow.users,t))return e.config;return yield*e.configRepo.setupProjectConfig({account:e.config.account,board:e.config.board,todoColumn:e.config.flow.columns.todo,inProgressColumn:e.config.flow.columns.inProgress,users:t,apiUrl:e.config.apiUrl,configPath:e.config.configPath})}console.error("flow config missing; initializing...");let s=yield*e.api.listColumns(),a=yield*Ch(s,"TODO",()=>e.api.createColumn("TODO")),i=yield*Ch(s,"INPROGRESS",()=>e.api.createColumn("INPROGRESS"));return yield*e.configRepo.setupProjectConfig({account:e.config.account,board:e.config.board,todoColumn:a,inProgressColumn:i,users:t,apiUrl:e.config.apiUrl,configPath:e.config.configPath})}),BC=(e,t)=>{let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!0;for(let[o,s]of Object.entries(t))if(e[o]!==s)return!0;return!1},Ch=(e,t,r)=>u.gen(function*(){let n=e.find((s)=>s.name===t);if(n?.id)return n.id;return(yield*r()).id}),qh=(e,t)=>{let r={...e.flow?.users};for(let n of t)for(let o of n.assignees||[])if(o.name)r[o.name]=o.id;return r},zh=(e,t)=>{let r=e.flow.users[t];if(r)return r;let n=e.flow.users[t.toLowerCase()];if(n)return n;if(/^03[a-z0-9]{23}$/.test(t))return t;throw new Ve({message:`Unknown user ${t}`})},WC=(e,t)=>Object.entries(e.users).find(([,r])=>r===t)?.[0],VC=(e)=>e.split(/\r?\n/).flatMap((t)=>{let r=t.match(/^\s*-\s*\[([ xX])]\s*(.+)$/);if(!r)return[];return[{content:r[2].trim(),completed:r[1].toLowerCase()==="x"}]}),wh=(e,t)=>u.tryPromise({try:async()=>{let r=Bun.spawn({cmd:["git",...t],cwd:e,stdout:"pipe",stderr:"pipe"}),[n,o,s]=await Promise.all([new Response(r.stdout).text(),new Response(r.stderr).text(),r.exited]);if(s!==0)throw Error(o.trim()||`git ${t.join(" ")} failed`);return n.trim()},catch:(r)=>new Ve({message:`Unable to derive done ref from git: ${String(r)}. Pass an explicit ref.`})});var JC=new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*m`,"g");var QC=()=>{if(typeof Bun?.color!=="function")return!1;if(process.env.NO_COLOR)return!1;if(process.env.CI&&process.env.CI!=="false")return!1;return Boolean(process.stdout?.isTTY)},YC=(e)=>e.replace(JC,""),bi=(e)=>Math.max(0,Bun.stringWidth(YC(e))),GC=(e,t)=>{if(!QC())return e;let r=Bun.color(t,"ansi");if(!r)return e;return`${r}${e}\x1B[0m`},Si=(e,t,r={})=>{if(e.length===0)return"(none)";let n=" ".repeat(Math.max(0,r.gap??2)),o=r.showHeader??!1,s=e.map((h)=>t.map((p)=>p.value(h))),a=t.map((h)=>h.header),i=t.map((h,p)=>{let x=bi(a[p]||""),k=s.reduce((E,ee)=>Math.max(E,bi(ee[p]||"")),0);return Math.max(x,k)}),f=(h,p,x="left")=>{let k=Math.max(0,p-bi(h));return x==="right"?" ".repeat(k)+h:`${h}${" ".repeat(k)}`},l=[];if(o){let h=t.map((p,x)=>f(r.formatHeader?r.formatHeader(p.header):p.header,i[x]??0,"left")).join(n);l.push(h)}for(let[h,p]of s.entries()){let x=e[h],k=p.map((E)=>r.formatValue?r.formatValue(E,x):E).map((E,ee)=>f(E,i[ee]??0,t[ee]?.align)).join(n);l.push(k)}return l.join(`
|
|
37
|
+
`)},KC=(e,t={})=>{if(e.length===0)return"";let r=t.bullet||"-",n=t.align??!1,o=n?Math.max(...e.map(([s])=>s.length),0):0;return e.map(([s,a])=>`${r} ${n?s.padEnd(o):s}: ${a}`).join(`
|
|
38
|
+
`)},bs=(e)=>{if(e.length===0)return"(none)";return Si(e,[{header:"column",value:Vh,align:"left"},{header:"id",value:(r)=>GC(`#${r.number}`,"cyan")},{header:"assignees",value:Jh},{header:"title",value:(r)=>r.title}],{gap:2})},Bh=(e,t)=>{let r=e.steps??[],n=[`# #${e.number} ${e.title}`,"",KC([["column",Vh(e)],["assignees",Jh(e)],["closed",`${Boolean(e.closed)}`]]),"","## Description",...ZC(e.description||"")];if(r.length>0)n.push("","## Steps",...r.map((o)=>`- ${o.completed?"[x]":"[ ]"} ${o.content}`));if(t.length>0){n.push("","## Last comments");for(let o of t){let s=o.creator?.name||"?",a=(o.body?.plain_text||"").replace(/\n+/g," / ").trim()||"(no content)";n.push(`- ${XC(o.created_at)} ${s}: ${a}`)}}return n.join(`
|
|
39
|
+
`)},Wh=(e)=>{if(e.length===0)return"no new steps";return e.map((t)=>` + ${t.completed?"[x]":"[ ]"} ${t.content}`).join(`
|
|
40
|
+
`)},Vh=(e)=>e.column?.name||"TRIAGE",Jh=(e)=>{let t=(e.assignees||[]).map((r)=>r.name).filter(Boolean);return t.length===0?"-":t.join(", ")},XC=(e)=>e?e.replace(/T.*/,""):"?",ZC=(e)=>{let t=e.trim();if(!t)return["(no description)"];return t.split(`
|
|
41
|
+
`)};var Gh=(e)=>u.gen(function*(){let[t="help",...r]=e;switch(t){case"help":case"--help":case"-h":console.log(Kh());return;case"setup":{if(de(r)){console.log(i0());return}let n=o0(r);if(n.list){let s=yield*Ih();if(s.length===0){console.log("(no boards)");return}console.log(Si(s,[{header:"id",value:(a)=>a.id},{header:"name",value:(a)=>a.name}]));return}let o=yield*Ah(n);console.log(`created ${o.configPath}`);return}case"auth":yield*n0(r);return;case"flow":yield*r0(r);return;default:throw Error(t0(t))}}),e0={sync:"sync",mine:"mine",status:"status",next:"next",show:"show",start:"start",done:"done",block:"block",add:"add","steps-from-desc":"steps-from-desc"},t0=(e)=>{let t=e0[e];if(t)return`unknown command: ${e}. Did you mean: fizzyx flow ${t}?`;return`unknown command: ${e}
|
|
42
|
+
|
|
43
|
+
${Kh()}`},r0=(e)=>u.gen(function*(){let[t="help",...r]=e;if(Ss(t)){console.log(Ci());return}switch(t){case"sync":{if(de(r)){console.log(u0());return}let n=yield*Pe,o=yield*Pt(n);console.error(`synced cards=${o.cards.length} not_now=${o.notNow.length}`);return}case"mine":{if(de(r)){console.log(f0());return}let n=yield*Pe,o=r.includes("--fresh"),s=a0(r),a=yield*Ei(n,{fresh:o,user:s});console.log(`# ${a.name}: ${a.userId}`),console.log(bs(a.cards));return}case"status":{if(de(r)){console.log(l0());return}let n=yield*Pe,o=yield*Mh(n,{fresh:r.includes("--fresh")});if(console.log(`# board cache age: ${o.age}s`),console.log(""),console.log(bs(o.cache.cards.filter((s)=>["INPROGRESS","TODO"].includes(s.column?.name||"")))),o.cache.notNow.length>0)console.log(`
|
|
44
|
+
# not_now (${o.cache.notNow.length})`),console.log(bs(o.cache.notNow));return}case"next":{if(de(r)){console.log(p0());return}let n=yield*Pe,o=yield*Fh(n,{fresh:r.includes("--fresh")});if(!o.card){console.log(`no TODO card for ${o.user.name}`);return}console.log(`#${o.card.number} ${o.card.title}`),console.log(`next: fizzyx flow start ${o.card.number}`);return}case"show":{if(de(r)){console.log(d0());return}let n=Wn(r[0]),o=yield*Pe,s=yield*Ph(o,n);console.log(Bh(s.card,s.comments));return}case"start":{if(de(r)){console.log(m0());return}let n=Wn(r[0]),o=yield*Pe;yield*Uh(o,n),console.log(`started #${n}`);return}case"done":{if(de(r)){console.log(h0());return}let n=Wn(r[0]),o=r.slice(1).filter((f)=>!Ss(f)).join(" "),s=o?o:yield*Dh(),a=yield*Pe,i=yield*Nh(a,n,s);console.log(`closed #${i.number} (${i.ref})`);return}case"block":{if(de(r)){console.log(x0());return}let n=Wn(r[0]),o=r.slice(1).join(" "),s=yield*Pe,a=yield*Lh(s,n,o);console.log(`blocked #${a.number}: ${a.reason}`);return}case"add":{if(de(r)){console.log(Yh());return}let n=r[0],o=r[1],s=s0(r,"--desc");if(!n||!o||!s)throw Error(Yh());let a=yield*c0(s),i=yield*Pe,f=yield*Hh(i,{user:n,title:o,description:a});console.log(f);return}case"steps-from-desc":{if(de(r)){console.log(g0());return}let n=Wn(r[0]),o=yield*Pe,s=yield*$h(o,n);console.log(Wh(s));return}case"init":{if(de(r)){console.log(y0());return}let n=yield*Pe;console.log(`flow configured with todo=${n.config.flow.columns.todo} in_progress=${n.config.flow.columns.inProgress}`);return}case"help":case"--help":case"-h":console.log(Ci());return;default:throw Error(`unknown flow command: ${t}
|
|
45
|
+
|
|
46
|
+
${Ci()}`)}}),n0=(e)=>u.gen(function*(){let[t="help",...r]=e;if(Ss(t)){console.log(Qh());return}switch(t){case"login":{if(de(r)||!r[0])throw Error(E0());let n=yield*Rh(r[0]);console.log(`token saved for ${n}`);return}case"status":{if(de(r)){console.log(b0());return}let n=yield*Oh;if(console.log(`account: ${n.account}`),console.log(`board: ${n.board}`),console.log(`authenticated: ${n.authenticated}`),n.identity)console.log(`user: ${n.identity.name||""}`),console.log(`user_id: ${n.identity.userId}`),console.log(`email: ${n.identity.email||""}`);else if(n.identityError)console.log(`identity_error: ${n.identityError}`);return}case"logout":{if(de(r)){console.log(S0());return}let n=yield*_h;console.log(`token removed for ${n}`);return}default:throw Error(Qh())}}),o0=(e)=>{let t=e.includes("--list"),r=e.filter((o)=>o.startsWith("--")),n=e.filter((o)=>!o.startsWith("--"));if(t){if(r.length>1||n.length>0)throw Error("usage: fizzyx setup --list");return{list:!0}}if(r.length>0||n.length!==1)throw Error("usage: fizzyx setup <board-id>");return{board:n[0]}},Wn=(e)=>{let t=Number.parseInt((e||"").replace(/^#/,""),10);if(!Number.isFinite(t))throw Error("card number is required");return t},s0=(e,t)=>{let r=e.indexOf(t);if(r<0||!e[r+1])return;return e[r+1]},a0=(e)=>e.find((t)=>!t.startsWith("--")),c0=(e)=>e==="-"?u.tryPromise({try:()=>Bun.stdin.text(),catch:(t)=>Error(`failed to read stdin: ${String(t)}`)}):u.tryPromise({try:()=>Bun.file(e).text(),catch:(t)=>Error(`failed to read ${e}: ${String(t)}`)}),Ss=(e)=>e==="help"||e==="--help"||e==="-h",de=(e)=>e.some(Ss),Kh=()=>`fizzyx <command>
|
|
47
|
+
|
|
48
|
+
commands:
|
|
49
|
+
setup
|
|
50
|
+
auth
|
|
51
|
+
flow
|
|
52
|
+
|
|
53
|
+
Use:
|
|
54
|
+
fizzyx <command> -h
|
|
55
|
+
for command help.`,i0=()=>`fizzyx setup <command>
|
|
56
|
+
|
|
57
|
+
commands:
|
|
58
|
+
setup <board-id>
|
|
59
|
+
setup --list`,Qh=()=>`fizzyx auth <command>
|
|
60
|
+
|
|
61
|
+
commands:
|
|
62
|
+
auth login <token>
|
|
63
|
+
auth status
|
|
64
|
+
auth logout
|
|
65
|
+
auth help`,Ci=()=>`fizzyx flow <command>
|
|
66
|
+
|
|
67
|
+
commands:
|
|
68
|
+
sync
|
|
69
|
+
mine [--fresh] [user]
|
|
70
|
+
status [--fresh]
|
|
71
|
+
next [--fresh]
|
|
72
|
+
show <card>
|
|
73
|
+
start <card>
|
|
74
|
+
done <card> [ref]
|
|
75
|
+
block <card> <reason>
|
|
76
|
+
add <user> <title> --desc <file|->
|
|
77
|
+
steps-from-desc <card>
|
|
78
|
+
init
|
|
79
|
+
flow help`,u0=()=>"fizzyx flow sync",f0=()=>"fizzyx flow mine [--fresh] [user]",l0=()=>"fizzyx flow status [--fresh]",p0=()=>"fizzyx flow next [--fresh]",d0=()=>"fizzyx flow show <card>",m0=()=>"fizzyx flow start <card>",h0=()=>"fizzyx flow done <card> [ref]",x0=()=>"fizzyx flow block <card> <reason>",Yh=()=>"fizzyx flow add <user> <title> --desc <file|->",g0=()=>"fizzyx flow steps-from-desc <card>",y0=()=>"fizzyx flow init",E0=()=>"fizzyx auth login <token>",b0=()=>"fizzyx auth status",S0=()=>"fizzyx auth logout";u.runPromise(Gh(Bun.argv.slice(2))).catch((e)=>{let t=e instanceof Error?e.message:String(e);console.error(t),process.exit(1)});
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@puffinstudio/fizzyx",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"homepage": "https://github.com/PuffinStudio/fizzyx#readme",
|
|
5
|
+
"bugs": {
|
|
6
|
+
"url": "https://github.com/PuffinStudio/fizzyx/issues"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+ssh://git@github.com/PuffinStudio/fizzyx.git"
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"fizzyx": "./dist/main.js"
|
|
14
|
+
},
|
|
15
|
+
"type": "module",
|
|
16
|
+
"main": "./dist/main.js",
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "bun build ./src/main.ts --outfile ./dist/main.js --target bun --format esm --minify",
|
|
19
|
+
"dev": "bun run src/main.ts",
|
|
20
|
+
"prepublishOnly": "bun run check && bun run build",
|
|
21
|
+
"typecheck": "tsgo --noEmit",
|
|
22
|
+
"fmt": "oxfmt .",
|
|
23
|
+
"lint": "oxlint",
|
|
24
|
+
"test": "bun test",
|
|
25
|
+
"check": "bun --bun run typecheck && bun --bun run fmt && bun --bun run lint && bun test"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/bun": "latest",
|
|
29
|
+
"@typescript/native-preview": "^7.0.0-dev.20260611.2",
|
|
30
|
+
"effect": "4.0.0-beta.79",
|
|
31
|
+
"oxfmt": "^0.54.0",
|
|
32
|
+
"oxlint": "^1.69.0"
|
|
33
|
+
}
|
|
34
|
+
}
|