effect-analyzer 0.1.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 +202 -0
- package/dist/analyze-a8PswlPG.d.cts +1152 -0
- package/dist/analyze-a8PswlPG.d.ts +1152 -0
- package/dist/cli.js +198 -0
- package/dist/effect-workflow.cjs +5 -0
- package/dist/effect-workflow.cjs.map +1 -0
- package/dist/effect-workflow.d.cts +31 -0
- package/dist/effect-workflow.d.ts +31 -0
- package/dist/effect-workflow.js +5 -0
- package/dist/effect-workflow.js.map +1 -0
- package/dist/index.cjs +548 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1895 -0
- package/dist/index.d.ts +1895 -0
- package/dist/index.js +548 -0
- package/dist/index.js.map +1 -0
- package/dist/lsp/server.js +8827 -0
- package/package.json +76 -0
- package/scripts/analyze-public-repos.ts +130 -0
- package/scripts/audit-ci.ts +213 -0
- package/scripts/audit-public-effect-modules.ts +111 -0
- package/scripts/baselines/effect-audit-baseline.json +14 -0
- package/scripts/benchmark.ts +107 -0
- package/scripts/diff-effect-scans.ts +87 -0
- package/scripts/effect-scan-utils.ts +275 -0
- package/scripts/eslint-rules/no-inline-type-import.js +39 -0
- package/scripts/fetch-effect-repo.ts +52 -0
- package/scripts/openapi-runtime-runner.mjs +66 -0
- package/scripts/scan-effect-internals.ts +53 -0
- package/scripts/scan-effect-top-level.ts +52 -0
- package/scripts/summarize-scan.ts +47 -0
- package/scripts/triage-effect-scan.ts +85 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { A as AnalyzerOptions, af as analyze$1 } from './analyze-a8PswlPG.cjs';
|
|
2
|
+
export { p as AnalyzeResult, S as StaticEffectIR } from './analyze-a8PswlPG.cjs';
|
|
3
|
+
import 'effect';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* effect-workflow analyzer entrypoint
|
|
7
|
+
*
|
|
8
|
+
* Same API as the main analyzer but with effect-workflow patterns enabled
|
|
9
|
+
* (Workflow.make / Workflow.run). Use this when analyzing code that uses
|
|
10
|
+
* the effect-workflow library.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { Effect } from "effect";
|
|
15
|
+
* import { analyze } from "effect-analyzer/effect-workflow";
|
|
16
|
+
*
|
|
17
|
+
* const ir = await Effect.runPromise(
|
|
18
|
+
* analyze.source(source).named("runCheckout")
|
|
19
|
+
* );
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Analyze a file with effect-workflow patterns enabled (Workflow.make / Workflow.run).
|
|
25
|
+
*/
|
|
26
|
+
declare const analyze: {
|
|
27
|
+
(filePath: string, options?: AnalyzerOptions): ReturnType<typeof analyze$1>;
|
|
28
|
+
source(code: string, options?: AnalyzerOptions): ReturnType<typeof analyze$1.source>;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { AnalyzerOptions, analyze };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { A as AnalyzerOptions, af as analyze$1 } from './analyze-a8PswlPG.js';
|
|
2
|
+
export { p as AnalyzeResult, S as StaticEffectIR } from './analyze-a8PswlPG.js';
|
|
3
|
+
import 'effect';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* effect-workflow analyzer entrypoint
|
|
7
|
+
*
|
|
8
|
+
* Same API as the main analyzer but with effect-workflow patterns enabled
|
|
9
|
+
* (Workflow.make / Workflow.run). Use this when analyzing code that uses
|
|
10
|
+
* the effect-workflow library.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { Effect } from "effect";
|
|
15
|
+
* import { analyze } from "effect-analyzer/effect-workflow";
|
|
16
|
+
*
|
|
17
|
+
* const ir = await Effect.runPromise(
|
|
18
|
+
* analyze.source(source).named("runCheckout")
|
|
19
|
+
* );
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Analyze a file with effect-workflow patterns enabled (Workflow.make / Workflow.run).
|
|
25
|
+
*/
|
|
26
|
+
declare const analyze: {
|
|
27
|
+
(filePath: string, options?: AnalyzerOptions): ReturnType<typeof analyze$1>;
|
|
28
|
+
source(code: string, options?: AnalyzerOptions): ReturnType<typeof analyze$1.source>;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { AnalyzerOptions, analyze };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{Effect as z,Option as qe}from"effect";import{Option as F}from"effect";var G=class extends Error{code;location;constructor(e,n,i){super(n),this.code=e,this.location=i,this.name="AnalysisError"}};var Ce=t=>{switch(t.type){case"program":return F.some(t.children);case"generator":return F.some(t.yields.map(e=>e.effect));case"pipe":return F.some([t.initial,...t.transformations]);case"parallel":case"race":return F.some([...t.children]);case"error-handler":return F.some(t.handler?[t.source,t.handler]:[t.source]);case"retry":{let e=t,n=[e.source,e.scheduleNode].filter(i=>i!==void 0);return n.length>0?F.some(n):F.none()}case"timeout":{let e=t.source;return e?F.some([e]):F.none()}case"resource":return F.some(t.use?[t.acquire,t.release,t.use]:[t.acquire,t.release]);case"conditional":return F.some(t.onFalse?[t.onTrue,t.onFalse]:[t.onTrue]);case"loop":return F.some([t.body]);case"cause":return t.children&&t.children.length>0?F.some(t.children):F.none();case"exit":case"schedule":case"match":return F.none();case"transform":return t.source?F.some([t.source]):F.none();case"layer":return F.some([...t.operations]);case"stream":return F.some([t.source]);case"channel":return t.source?F.some([t.source]):F.none();case"sink":return t.source?F.some([t.source]):F.none();case"concurrency-primitive":return t.source?F.some([t.source]):F.none();case"fiber":return t.fiberSource?F.some([t.fiberSource]):F.none();case"interruption":{let e=[];return t.source&&e.push(t.source),t.handler&&e.push(t.handler),e.length>0?F.some(e):F.none()}case"effect":return t.callbackBody&&t.callbackBody.length>0?F.some([...t.callbackBody]):F.none();case"decision":return F.some([...t.onTrue,...t.onFalse??[]]);case"switch":return F.some(t.cases.flatMap(e=>[...e.body]));case"try-catch":return F.some([...t.tryBody,...t.catchBody??[],...t.finallyBody??[]]);case"terminal":return t.value?F.some([...t.value]):F.none();case"opaque":return F.none();default:return F.none()}};import{Effect as ne}from"effect";import{createRequire as Sn}from"module";var $e=null,xt=new Map,x=()=>{if(!$e)try{$e=Sn(import.meta.url)("ts-morph")}catch{throw new Error("ts-morph is required but not installed. Please install it as a peer dependency: npm install ts-morph")}return $e},Nt=t=>{let e=t??"__default__",n=xt.get(e);if(n)return n;let{Project:i}=x(),s={};t&&(s.tsConfigFilePath=t);let c=new i(s);return xt.set(e,c),c};var Tt=(t,e="temp.ts")=>{let{Project:n}=x();return new n({useInMemoryFileSystem:!0,compilerOptions:{strict:!0,esModuleInterop:!0}}).createSourceFile(e,t)};import{Option as wt}from"effect";var En=/Effect(?:\.Effect)?<([^,]+),\s*([^,]+),\s*([^>]+)>/,xn=/Effect(?:\.Effect)?<([^,>]+),\s*([^,>]+)>/;function Ue(t){let e=s=>s.replace(/import\([^)]+\)\./g,"").replace(/typeof\s+/g,"").trim().substring(0,200),n=En.exec(t);if(n)return{successType:e(n[1]),errorType:e(n[2]),requirementsType:e(n[3]),isInferred:!1,typeConfidence:"inferred",rawTypeString:t};let i=xn.exec(t);if(i)return{successType:e(i[1]),errorType:e(i[2]),requirementsType:"never",isInferred:!1,typeConfidence:"inferred",rawTypeString:t}}var ye=(t,e)=>{let n;try{n=t.getType()}catch{return}if(!Tn(n))return;let i=Fe(n);if(i){let[o,r,a]=i;return{successType:ee(o),errorType:ee(r),requirementsType:ee(a),isInferred:!0,typeConfidence:"declared",rawTypeString:n.getText()}}let s=n.getText(),c=Ue(s);if(c)return c;let d=Nn(t);return d||{successType:"unknown",errorType:"never",requirementsType:"never",isInferred:!1,typeConfidence:"unknown",rawTypeString:s}};function Nn(t){try{if(!("getExpression"in t))return;let n=t.getExpression(),s=n.getType().getCallSignatures();if(s.length>0){let d=s[0].getReturnType(),o=Fe(d);if(o){let[l,u,f]=o;return{successType:ee(l),errorType:ee(u),requirementsType:ee(f),isInferred:!0,typeConfidence:"inferred",rawTypeString:d.getText()}}let r=d.getText(),a=Ue(r);if(a)return a}let c=n.getSymbol();if(!c)return;for(let d of c.getDeclarations()){let o;if("getReturnType"in d)o=d.getReturnType().getText();else if("getType"in d){let a=d.getType().getCallSignatures();if(a.length>0){let l=a[0].getReturnType(),u=Fe(l);if(u){let[f,p,g]=u;return{successType:ee(f),errorType:ee(p),requirementsType:ee(g),isInferred:!0,typeConfidence:"inferred",rawTypeString:l.getText()}}o=l.getText()}}if(o){let r=Ue(o);if(r)return{...r,typeConfidence:"inferred"}}}}catch{}}var Tn=t=>{let e=t.getSymbol(),n=t.getText();if(e){let s=e.getName();if(s==="Effect"||s.includes("Effect"))return!0}if(n.includes("Effect<")||n.startsWith("Effect."))return!0;let i=t.getAliasSymbol();if(i){let s=i.getName();if(s==="Effect"||s.includes("Effect"))return!0}return!1},Fe=t=>{try{let e=t.getTypeArguments?.();if(!e||e.length<3){let n=t.getAliasTypeArguments?.();return n&&n.length>=3?[n[0],n[1],n[2]]:void 0}return[e[0],e[1],e[2]]}catch{return}},ee=t=>t.getText().replace(/import\([^)]+\)\./g,"").replace(/typeof\s+/g,"").substring(0,200),ve=(t,e)=>{let n=[],i=t.getType(),s=t,c;try{c=typeof i.getTypeArguments=="function"?i.getTypeArguments():void 0}catch{c=void 0}if(!c||c.length<3){let r=t.getParent();if(r?.getKindName()==="VariableDeclaration"){let a=r,l=a.getType();l&&(i=l,s=a)}}let d=bn(i);if(!d)return n;let o=Cn(d);for(let r of o){let a=s.getSourceFile(),{line:l,column:u}=a.getLineAndColumnAtPos(s.getStart()),f={filePath:a.getFilePath(),line:l,column:u};n.push({serviceId:r.id,serviceType:r.typeName,requiredAt:f})}return n},bn=t=>{let e=Fe(t);if(e)return e[2]},Cn=t=>{let e=[],n=t.getText(),i=/Context<([^>]+)>/.exec(n);if(i){let s=i[1];e.push({id:bt(s),typeName:s})}if(n.includes("|")){let s=He(n);for(let c of s){let d=/Context<([^>]+)>/.exec(c);d&&e.push({id:bt(d[1]),typeName:d[1]})}}return n==="never"||n==="{}"?[]:e},bt=t=>{let e=/Tag<["']([^"']+)["']/.exec(t);return e?e[1]:t.split("<")[0].trim()};function He(t){let e=[],n="",i=0,s=null;for(let d=0;d<t.length;d++){let o=t[d];if(s){n+=o,o===s&&t[d-1]!=="\\"&&(s=null);continue}if(o==='"'||o==="'"||o==="`"){s=o,n+=o;continue}if(o==="<"||o==="("){i++,n+=o;continue}if(o===">"||o===")"){i=Math.max(0,i-1),n+=o;continue}if(o==="|"&&i===0){e.push(n.trim()),n="";continue}n+=o}let c=n.trim();return c&&e.push(c),e.filter(Boolean)}var Ve=t=>t.replace(/import\([^)]+\)\./g,"").replace(/typeof\s+/g,"").trim().substring(0,200);var An=/Layer<([^,]+),\s*([^,]+),\s*([^>]+)>/;function Ct(t){let e=t.getType().getText(),n=An.exec(e);if(n)return{providedType:Ve(n[1]),errorType:Ve(n[2]),requiredType:Ve(n[3]),rawTypeString:e}}var Ge={tsConfigPath:"./tsconfig.json",resolveReferences:!0,maxReferenceDepth:5,includeLocations:!0,assumeImported:!1,enableEffectWorkflow:!1,knownEffectInternalsRoot:void 0,minDiscoveryConfidence:"low",onlyExportedPrograms:!1,enableEffectFlow:!1},kt=0,Ie=()=>{kt=0},E=()=>`effect-${++kt}`,At=new WeakMap;function We(t){let e=At.get(t);return e===void 0&&(e=t.getText(),At.set(t,e)),e}function Rt(t){let e=new Set,n=i=>{for(let s of i){if(s.type==="effect"){let d=s.typeSignature?.errorType?.trim();if(d&&d!=="never")for(let o of He(d))e.add(o)}let c=wt.getOrElse(Ce(s),()=>[]);c.length>0&&n(c)}};return n(t),Array.from(e).sort()}function Dt(t){let e=new Map,n=i=>{for(let s of i){if(s.type==="effect"){let d=s.requiredServices;if(d)for(let o of d)e.has(o.serviceId)||e.set(o.serviceId,{name:o.serviceId,typeSignature:o.serviceType,isLayer:!1});if((s.semanticRole==="environment"||s.semanticRole==="side-effect")&&s.callee){let o=s.callee;/^[A-Z]/.test(o)&&!o.startsWith("Effect.")&&!o.startsWith("Schema.")&&!o.startsWith("Data.")&&!o.startsWith("Config.")&&!o.startsWith("Command.")&&!o.startsWith("Stream.")&&!o.startsWith("Option.")&&!o.startsWith("Either.")&&!o.startsWith("Cause.")&&!o.startsWith("Exit.")&&!e.has(o)&&e.set(o,{name:o,typeSignature:s.typeSignature?.requirementsType,isLayer:!1})}}let c=wt.getOrElse(Ce(s),()=>[]);c.length>0&&n(c)}};return n(t),Array.from(e.values())}var I=(t,e,n)=>{if(!n)return;let i=t.getSourceFile(),s=t.getStart(),{line:c,column:d}=i.getLineAndColumnAtPos(s),o=t.getEnd(),r=i.getLineAndColumnAtPos(o);return{filePath:e,line:c,column:d,endLine:r.line,endColumn:r.column}},le=t=>{let e=t.getJsDocs?.();if(e&&e.length>0){let i=e[0];if(!i)return;let s=i.getComment?.();if(s){let o;if(typeof s=="string")o=s;else if(Array.isArray(s))o=s.map(a=>a.text).join(`
|
|
2
|
+
`);else return;let r=o.search(/\n\s*@/);return r!==-1&&(o=o.substring(0,r)),o.trim()||void 0}let c=i.getText(),d=/\/\*\*\s*\n?\s*\*\s*([^@]*?)(?=\n\s*\*\s*@|\*\/)/.exec(c);if(d?.[1])return d[1].replace(/\n\s*\*\s*/g," ").trim()||void 0}let n=t.getLeadingCommentRanges();if(n.length>0){let i=n[n.length-1];if(!i)return;let s=i.getText();if(s.startsWith("/**")){let c=s.replace(/^\/\*\*\s*/,"").replace(/\s*\*\/\s*$/,"").replace(/^\s*\*\s?/gm,"").trim(),d=c.search(/\n@/);return d!==-1?c.substring(0,d).trim()||void 0:c||void 0}}},ge=t=>{let e=i=>{let s=i.getJsDocs?.();if(s&&s.length>0)return s[0].getText();let c=i.getLeadingCommentRanges();if(c.length>0){let d=c[c.length-1];if(d){let o=d.getText();if(o.startsWith("/**"))return o}}},n=e(t);if(!n){let{SyntaxKind:i}=x(),s=t.getParent();for(;s&&!n;){let c=s.getKind();if(c===i.VariableStatement){n=e(s);break}if(c===i.VariableDeclarationList){let d=s.getParent();d&&(n=e(d));break}if(c===i.CallExpression||c===i.ArrowFunction||c===i.VariableDeclaration||c===i.ParenthesizedExpression)s=s.getParent();else break}}if(n)return wn(n)};function wn(t){let e=t.replace(/^\/\*\*/,"").replace(/\*\/$/,"").split(`
|
|
3
|
+
`).map(r=>r.replace(/^\s*\*\s?/,"")).join(`
|
|
4
|
+
`),n=[],i,s=[],c,d=/@(param|returns?|throws?|exception|example)\s*(.*)/gi,o;for(;(o=d.exec(e))!==null;){let r=o[1].toLowerCase(),a=o[2].trim();if(r==="param"){let l=/^(?:\{[^}]*\}\s*)?(\[?\w+(?:=[^\]]*)?]?)\s*(?:-\s*(.*))?$/.exec(a);if(l){let u=l[1].replace(/^\[|\]$/g,"").replace(/=.*/,""),f=l[2]?.trim();n.push(f?{name:u,description:f}:{name:u})}}else if(r==="returns"||r==="return")i=a.replace(/^\{[^}]*\}\s*/,"").trim()||void 0;else if(r==="throws"||r==="throw"||r==="exception"){let l=a.replace(/^\{[^}]*\}\s*/,"").trim();l&&s.push(l)}else if(r==="example"){let l=o.index+o[0].length,u=/\n\s*@\w/.exec(e.slice(l));u?c=e.slice(o.index+o[0].length-a.length,l+u.index).trim()||void 0:c=e.slice(o.index+o[0].length-a.length).trim()||void 0}}if(!(n.length===0&&!i&&s.length===0&&!c))return{params:n,returns:i,throws:s,example:c}}var Ft=t=>{let e=t.getParent(),{SyntaxKind:n}=x();if(e){let i=e.getKind();if(i===n.VariableDeclaration)return le(e);if(i===n.ArrowFunction){let s=e.getParent();if(s?.getKind()===n.VariableDeclaration)return le(s)}}};function vt(t){return t.endsWith(".js")||t.endsWith(".jsx")}var Pe=t=>{let e=t.getParent(),{SyntaxKind:n}=x();if(e?.getKind()===n.VariableDeclaration)return e.getName()},ue=t=>{let{SyntaxKind:e}=x(),n=c=>{let d=c;for(;d!==void 0;){if(d.getKind()===e.VariableDeclaration)return d.getName();d=d.getParent()}},i=t.getParent();if(i){let c=i.getKind();if(c===e.VariableDeclaration)return i.getName();if(c===e.AwaitExpression){let d=i.getParent();if(d?.getKind()===e.VariableDeclaration)return d.getName()}if(c===e.PropertyAssignment){let o=i.getName(),r=n(i);return r?`${r}.${o}`:o}if(c===e.ArrowFunction){let d=i.getParent();if(d?.getKind()===e.VariableDeclaration)return d.getName();if(d?.getKind()===e.PropertyAssignment){let r=d.getName(),a=n(d);return a?`${a}.${r}`:r}}}let s=t;for(let c=0;s&&c<6&&(s=s.getParent(),!!s);c++){let d=s.getKind();if(d===e.VariableDeclaration)return s.getName();if(d===e.PropertyAssignment){let r=s.getName(),a=n(s);return a?`${a}.${r}`:r}if(d===e.Block||d===e.SourceFile)break}},It=t=>{let{SyntaxKind:e}=x(),n=t.getParent();for(let i=0;n&&i<10;i++){if(n.getKind()===e.CallExpression){let s=n,c=s.getExpression().getText();if(c==="Effect.fn"||c.endsWith(".fn")){let d=s.getArguments();if(d.length>0){let o=d[0].getText(),r=/^["'](.+)["']$/.exec(o);if(r?.[1])return r[1]}}}n=n.getParent()}},Wt=()=>({totalEffects:0,parallelCount:0,raceCount:0,errorHandlerCount:0,retryCount:0,timeoutCount:0,resourceCount:0,loopCount:0,conditionalCount:0,layerCount:0,interruptionCount:0,unknownCount:0,decisionCount:0,switchCount:0,tryCatchCount:0,terminalCount:0,opaqueCount:0}),Ae=(t,e)=>t.length<=e?t:`${t.slice(0,e)}\u2026`;function O(t,e){switch(t.type){case"effect":{let n=e??t.name;return n?`${n} <- ${t.callee}`:t.callee}case"generator":return`Generator (${t.yields.length} yields)`;case"pipe":return`Pipe (${t.transformations.length} steps)`;case"parallel":return`${t.callee} (${t.children.length})`;case"race":return`${t.callee} (${t.children.length} racing)`;case"error-handler":return t.name?`${t.name}: ${t.handlerType}`:t.handlerType;case"retry":return t.schedule?`retry: ${t.schedule}`:"retry";case"timeout":return t.duration?`timeout: ${t.duration}`:"timeout";case"resource":return"Resource";case"conditional":return Ae(t.condition,30);case"loop":return t.iterSource?`${t.loopType}(${t.iterSource})`:t.loopType;case"layer":return t.isMerged?"Layer (merged)":"Layer";case"stream":{let i=["Stream",...t.pipeline.map(s=>s.operation)];return t.sink&&i.push(t.sink),i.join(" \u2192 ")}case"concurrency-primitive":return`${t.primitive}.${t.operation}`;case"fiber":{let n=t.operation;return t.isDaemon?`${n} (daemon)`:t.isScoped?`${n} (scoped)`:n}case"transform":return t.transformType;case"match":return`Match.${t.matchOp}`;case"cause":return`Cause.${t.causeOp}`;case"exit":return`Exit.${t.exitOp}`;case"schedule":return`Schedule.${t.scheduleOp}`;case"interruption":return t.interruptionType;case"channel":{let n=t.pipeline.map(i=>i.operation);return n.length>0?`Channel: ${n.join(" \u2192 ")}`:"Channel"}case"sink":{let n=t.pipeline.map(i=>i.operation);return n.length>0?`Sink: ${n.join(" \u2192 ")}`:"Sink"}case"decision":return Ae(t.condition,30);case"switch":return`switch(${Ae(t.expression,25)})`;case"try-catch":return"try/catch";case"terminal":return t.label?`${t.terminalKind} ${t.label}`:t.terminalKind;case"opaque":return`Opaque: ${Ae(t.reason,25)}`;case"unknown":return`Unknown: ${Ae(t.reason,30)}`}}function K(t){switch(t.type){case"effect":{if(t.serviceCall||t.serviceMethod)return"service-call";let e=t.description?.toLowerCase()??"";if(e.includes("service"))return"service-call";if(e.includes("layer")||t.provideKind==="layer")return"layer";let n=t.callee.toLowerCase();return/^[A-Z][A-Za-z0-9_]*$/.test(t.callee)&&!t.constructorKind?"environment":n.includes("sync")||n.includes("promise")||n.includes("async")||n.includes("log")||n.includes("console")?"side-effect":n.includes("succeed")||n.includes("fail")||n.includes("die")||n.includes("void")||n.includes("never")||n.includes("gen")||n.includes("make")||t.constructorKind?"constructor":"side-effect"}case"generator":case"pipe":return"constructor";case"parallel":case"race":case"concurrency-primitive":return"concurrency";case"error-handler":case"cause":case"exit":return"error-handler";case"retry":case"timeout":case"schedule":return"scheduling";case"resource":return"resource";case"conditional":case"loop":case"match":case"decision":case"switch":case"terminal":return"control-flow";case"try-catch":return"error-handler";case"opaque":return"unknown";case"layer":return"layer";case"stream":case"channel":case"sink":return"stream";case"fiber":case"interruption":return"fiber";case"transform":return"transform";case"unknown":return"unknown"}}var Ye=[".catchAll",".catchTag",".catchAllCause",".catchIf",".catchSome",".catchSomeCause",".catchSomeDefect",".catchAllDefect",".catchTags",".orElse",".orElseFail",".orElseSucceed",".orDie",".orDieWith",".flip",".mapError",".mapErrorCause",".mapBoth",".sandbox",".unsandbox",".parallelErrors",".filterOrDie",".filterOrDieMessage",".filterOrElse",".filterOrFail",".match",".matchCause",".matchEffect",".matchCauseEffect",".firstSuccessOf",".ignore",".ignoreLogged",".eventually"],Je=[".if",".when",".whenEffect",".whenFiberRef",".whenRef",".unless",".unlessEffect",".option",".either",".exit",".liftPredicate"],kn=[".acquireRelease",".acquireUseRelease",".ensuring",".addFinalizer",".onExit",".onError",".parallelFinalizers",".sequentialFinalizers",".finalizersMask",".using",".withEarlyRelease"],Qe=[".forEach",".loop",".filter",".filterMap",".partition",".reduce",".reduceRight",".reduceWhile",".reduceEffect",".dropUntil",".dropWhile",".takeUntil",".takeWhile",".every",".exists",".findFirst",".head",".mergeAll",".replicate",".replicateEffect",".validateAll",".validateFirst",".validate",".validateWith"],Xe=["Effect.fork",".fork",".forkAll",".forkIn",".forkWithErrorHandler","Fiber."],Ze={"Effect.map":"map","Effect.flatMap":"flatMap","Effect.andThen":"andThen","Effect.tap":"tap","Effect.tapBoth":"tapBoth","Effect.tapError":"tapError","Effect.tapErrorTag":"tapErrorTag","Effect.tapErrorCause":"tapErrorCause","Effect.tapDefect":"tapDefect","Effect.zipLeft":"zipLeft","Effect.zipRight":"zipRight","Effect.zipWith":"zipWith","Effect.zip":"zip","Effect.as":"as","Effect.asVoid":"asVoid","Effect.asSome":"asSome","Effect.asSomeError":"asSomeError","Effect.flatten":"flatten","Effect.ap":"ap","Effect.negate":"negate","Effect.merge":"merge"},Ot=new Set(["flatMap","andThen","tapBoth","tapError","tapErrorTag","tapErrorCause","tapDefect","zipWith","zipLeft","zipRight","zip","ap","flatten"]),Lt=t=>t in Ze,et={"Match.type":"type","Match.tag":"tag","Match.value":"value","Match.when":"when","Match.whenOr":"whenOr","Match.whenAnd":"whenAnd","Match.not":"not","Match.is":"is","Match.exhaustive":"exhaustive","Match.orElse":"orElse","Match.option":"option","Match.either":"either","Match.discriminator":"discriminator","Match.discriminatorsExhaustive":"discriminatorsExhaustive","Match.tags":"tags","Match.tagsExhaustive":"tagsExhaustive","Match.withReturnType":"withReturnType","Match.run":"run"},Kt=new Set(["exhaustive","discriminatorsExhaustive","tagsExhaustive"]),Mt=t=>t.startsWith("Match.")&&t in et,tt={"Cause.fail":"fail","Cause.die":"die","Cause.interrupt":"interrupt","Cause.parallel":"parallel","Cause.sequential":"sequential","Cause.empty":"empty","Cause.failures":"failures","Cause.defects":"defects","Cause.interruptors":"interruptors","Cause.squash":"squash","Cause.squashWith":"squashWith","Cause.pretty":"pretty","Cause.flatten":"flatten","Cause.isDie":"isDie","Cause.isFailure":"isFailure","Cause.isInterrupted":"isInterrupted","Cause.isEmpty":"isEmpty","Cause.map":"map","Cause.filter":"filter"},zt=new Set(["fail","die","interrupt","parallel","sequential","empty"]),Bt=t=>t.startsWith("Cause.")&&t in tt,nt={"Exit.succeed":"succeed","Exit.fail":"fail","Exit.die":"die","Exit.interrupt":"interrupt","Exit.void":"void","Exit.unit":"unit","Exit.match":"match","Exit.isSuccess":"isSuccess","Exit.isFailure":"isFailure","Exit.isInterrupted":"isInterrupted","Exit.when":"when","Exit.whenEffect":"whenEffect","Exit.exists":"exists","Exit.contains":"contains","Exit.flatten":"flatten","Exit.map":"map","Exit.mapBoth":"mapBoth","Exit.mapError":"mapError","Exit.flatMap":"flatMap","Exit.zipWith":"zipWith","Exit.tap":"tap","Exit.tapBoth":"tapBoth","Exit.tapError":"tapError"},qt=new Set(["succeed","fail","die","interrupt","void","unit"]),jt=t=>t.startsWith("Exit.")&&(t in nt||/^Exit\.\w+$/.test(t)),rt={"Schedule.exponential":"exponential","Schedule.fibonacci":"fibonacci","Schedule.spaced":"spaced","Schedule.fixed":"fixed","Schedule.linear":"linear","Schedule.cron":"cron","Schedule.windowed":"windowed","Schedule.duration":"duration","Schedule.elapsed":"elapsed","Schedule.delays":"delays","Schedule.once":"once","Schedule.stop":"stop","Schedule.count":"count","Schedule.forever":"forever","Schedule.jittered":"jittered","Schedule.andThen":"andThen","Schedule.intersect":"intersect","Schedule.union":"union","Schedule.compose":"compose","Schedule.zipWith":"zipWith","Schedule.addDelay":"addDelay","Schedule.modifyDelay":"modifyDelay","Schedule.check":"check","Schedule.resetAfter":"resetAfter","Schedule.resetWhen":"resetWhen","Schedule.ensure":"ensure","Schedule.driver":"driver","Schedule.mapInput":"mapInput"},_t=t=>t.startsWith("Schedule.")&&(t in rt||/^Schedule\.\w+$/.test(t)),it=[".interruptible",".uninterruptible",".interruptibleMask",".uninterruptibleMask",".onInterrupt",".disconnect",".allowInterrupt","Effect.interrupt",".interruptWith"],Rn=[".Do",".bind",".bindAll",".bindTo"],Dn=[".cached",".cachedWithTTL",".cachedInvalidateWithTTL",".cachedFunction",".once","Cache.","ScopedCache."],ot=["Effect.","Layer.","Schedule.","Stream.","Queue.","PubSub.","Deferred.","Semaphore.","Mailbox.","SubscriptionRef.","Scope.","Fiber.","Runtime.","ManagedRuntime.","NodeRuntime.","BunRuntime.","DenoRuntime.","Cause.","Exit.","Data.","Option.","Either.","Chunk.","HashMap.","HashSet.","List.","SortedMap.","SortedSet.","RedBlackTree.","Trie.","Graph.","Match.","Config.","Schema.","Cache.","ScopedCache.","RcRef.","RcMap.","Reloadable.","Cache.","ScopedCache.","RateLimiter.","PartitionedSemaphore.","FiberSet.","FiberMap.","FiberHandle.","Metric.","Logger.","Tracer.","Context.","HttpClient.","HttpRouter.","HttpApi.","FileSystem.","Command.","Socket.","SocketServer.","Worker.","Terminal.","KeyValueStore.","Multipart.","Ndjson.","MsgPack.","OpenApi.","OpenApiJsonSchema.","Brand.","Encoding.","Predicate.","DateTime.","Cron.","BigDecimal.","HashRing.","Redacted.","GlobalValue.","Channel.","Sink.","CliApp.","Args.","Options.","AiModel.","AiToolkit.","Completions.","AiInput.","AiResponse.","NodeSdk.","WebSdk.","Entity.","ClusterSchema.","MessageState.","Sharding.","RpcGroup.","RpcApi.","RpcClient.","RpcRouter.","SqlResolver.","SqlMigrator.","Printer.","Doc.","DocTree.","PageWidth.","Optimize."],$t=new Set(["Array","ReadonlyArray","String","Number","Boolean","Object","Function","Promise","Math","Date","RegExp","Error","Map","Set","WeakMap","WeakSet","Symbol","BigInt","JSON","Console","process","Buffer","EventEmitter","Window","Document","AbortController"]),st=new Set(["Effect","Layer","Stream","Queue","PubSub","Deferred","Semaphore","Mailbox","SubscriptionRef","Scope","Fiber","Runtime","ManagedRuntime","Cause","Exit","Data","Option","Either","Chunk","HashMap","HashSet","List","SortedMap","SortedSet","Match","Config","Schema","Schedule","Metric","Tracer","Logger","FiberRef","FiberHandle","FiberSet","FiberMap","Cache","ScopedCache","RateLimiter","Supervisor"]),Vt=t=>t.includes(".")||st.has(t)?!1:/^[A-Z][A-Za-z0-9]*$/.test(t),Pt=t=>{if(t.startsWith("Channel."))return"channel";if(t.startsWith("Sink."))return"sink";if(t.endsWith(".never"))return"never";if(t.endsWith(".void"))return"void-effect";if(t.endsWith(".fromNullable"))return"null-coalescing";if(t.endsWith(".fn")||t.endsWith(".fnUntraced"))return"function-lift";if(t.includes(".async")||t.includes(".asyncEffect")||t.includes(".promise")||t.includes(".sync")||t.includes(".suspend")||t.includes(".succeed")||t.includes(".fail")||t.includes(".try"))return"constructor";if(it.some(e=>t.includes(e)))return"interruption";if(Rn.some(e=>t.includes(e)))return"do-notation";if(Dn.some(e=>t.includes(e)||t.startsWith(e)))return"caching";if(Ye.some(e=>t.includes(e)))return"error-handler";if(Je.some(e=>t.includes(e)))return"conditional";if(kn.some(e=>t.includes(e)))return"resource";if(Qe.some(e=>t.includes(e)))return"collection";if(Xe.some(e=>t.includes(e)))return"fiber";if(t.startsWith("Stream."))return"stream";if(t.startsWith("Layer."))return"layer";if(t.startsWith("Schema."))return"schema";if(t.startsWith("Config."))return"config";if(t.startsWith("Cause."))return"cause";if(t.startsWith("Exit."))return"exit";if(t==="Data.tagged"||t==="Data.taggedEnum")return"tagged-enum";if(t.startsWith("Data."))return"data";if(t.startsWith("Option."))return"option";if(t.startsWith("Either."))return"either";if(t.startsWith("Match."))return"match";if(t.startsWith("ManagedRuntime.")||t.startsWith("Runtime.")||t.startsWith("NodeRuntime.")||t.startsWith("BunRuntime.")||t.startsWith("DenoRuntime."))return"runtime";if(t.startsWith("Scope."))return"scope";if(t.startsWith("ScopedRef.")||t.startsWith("RcRef.")||t.startsWith("RcMap."))return"resource-ref";if(t.startsWith("Reloadable.")||t.startsWith("Resource."))return"reloadable";if(t.startsWith("Micro."))return"micro";if(t.startsWith("Brand."))return"brand";if(t.startsWith("Encoding."))return"encoding";if(t.startsWith("Predicate."))return"predicate";if(t.startsWith("DateTime."))return"datetime";if(t.startsWith("Cron."))return"cron";if(t.startsWith("Redacted."))return"redacted";if(t.startsWith("GlobalValue."))return"global-value";if(t.startsWith("Supervisor."))return"supervisor";if(t.includes(".locally")||t.includes(".locallyWith")||t.includes(".locallyScoped")||t.includes(".getFiberRefs")||t.includes(".setFiberRefs")||t.includes(".inheritFiberRefs")||t.includes("FiberRef."))return"fiberref";if(t.includes(".withConcurrency")||t.includes(".withScheduler")||t.includes(".withSchedulingPriority")||t.includes(".daemonChildren")||t.includes(".awaitAllChildren")||t.includes(".supervised"))return"structured-concurrency";if(t.startsWith("Context.pick")||t.startsWith("Context.omit")||t==="Effect.provide"||t.startsWith("Effect.")&&t.includes(".provide")&&!t.includes("provideService"))return"context";if(t.includes(".serviceOption")||t.includes(".serviceOptional")||t.includes(".serviceFunction")||t.includes(".serviceFunctionEffect")||t.includes(".serviceFunctions")||t.includes(".serviceConstants")||t.includes(".serviceMembers")||t.includes(".updateService"))return"service";if(t.startsWith("CliApp.")||t.startsWith("Args.")||t.startsWith("Options."))return"cli";if(t.startsWith("AiModel.")||t.startsWith("AiToolkit.")||t.startsWith("Completions.")||t.startsWith("AiInput.")||t.startsWith("AiResponse."))return"ai";if(t.startsWith("NodeSdk.")||t.startsWith("WebSdk.")||t.startsWith("OtelMetrics."))return"opentelemetry";if(t.startsWith("Entity.")||t.startsWith("ClusterSchema.")||t.startsWith("MessageState.")||t.startsWith("Sharding."))return"cluster";if(t.startsWith("RpcGroup.")||t.startsWith("RpcApi.")||t.startsWith("RpcClient.")||t.startsWith("RpcRouter."))return"rpc";if(t.startsWith("SqlResolver.")||t.startsWith("SqlMigrator."))return"sql";if(t.startsWith("DevTools.")||t.startsWith("Server."))return"devtools";if(t.startsWith("BigDecimal."))return"big-decimal";if(t.startsWith("Graph."))return"graph";if(t.startsWith("HashRing."))return"hash-ring";if(t.startsWith("Chunk."))return"chunk";if(t.startsWith("HashMap.")||t.startsWith("HashSet.")||t.startsWith("List.")||t.startsWith("SortedMap.")||t.startsWith("SortedSet.")||t.startsWith("RedBlackTree.")||t.startsWith("Trie."))return"immutable-collection";if(t.includes(".map")||t.includes(".flatMap")||t.includes(".andThen")||t.includes(".tap")||t.includes(".tapBoth")||t.includes(".tapError")||t.includes(".tapErrorTag")||t.includes(".tapErrorCause")||t.includes(".tapDefect")||t.includes(".zip")||t.includes(".zipLeft")||t.includes(".zipRight")||t.includes(".zipWith")||t.includes(".as")||t.includes(".asVoid")||t.includes(".flatten")||t.includes(".merge")||t.includes(".ap")||t.includes(".validate")||t.includes(".negate"))return"transformation";if(t.startsWith("Printer.")||t.startsWith("Doc.")||t.startsWith("DocTree.")||t.startsWith("PageWidth.")||t.startsWith("Optimize."))return"printer";if(t.startsWith("Http")||t.startsWith("FileSystem.")||t.startsWith("Command.")||t.startsWith("Socket.")||t.startsWith("Worker."))return"platform";if(t.includes("channel.")&&!t.includes("Channel"))return"channel"},Ut=(t,e)=>{let n=Pt(t);if(n)return n;if(e){let i=t.indexOf(".");if(i>0){let s=t.substring(0,i);if(e.has(s)){let c=t.substring(i+1);return Pt(`Effect.${c}`)}}}},_=(t,e,n=new Set)=>{let{SyntaxKind:i}=x(),s=u=>n.has(u),c=u=>/\.run(?:Promise(?:Exit)?|Sync(?:Exit)?|Fork|Callback|Main)$/.test(u)||/^Runtime\.run(?:Promise|Sync|Fork)$/.test(u),d=u=>{if(c(u))return!1;let f=u==="pipe"||u.endsWith(".pipe"),p=u.indexOf(".");return p>0&&s(u.slice(0,p))?!1:f||[...e].some(g=>u.startsWith(`${g}.`))},o=u=>{let f=u.getExpression(),p=f.getText();if(c(p))return!1;let g=p==="pipe",m=f.getKind()===i.PropertyAccessExpression&&f.getName()==="pipe";if(g||m){if(u.getArguments().some(w=>_(w,e,n)))return!0;if(m){let w=f.getExpression();return _(w,e,n)}return!1}return f.getKind()===i.Identifier&&e.has(p)&&!s(p)||d(p)||f.getKind()===i.PropertyAccessExpression&&_(f.getExpression(),e,n)?!0:u.getArguments().some(T=>_(T,e,n))},r=(u,f)=>{let p=u.getParent();for(;p&&p!==f;){let g=p.getKind();if(g===i.FunctionDeclaration||g===i.FunctionExpression||g===i.ArrowFunction||g===i.MethodDeclaration||g===i.GetAccessor||g===i.SetAccessor||g===i.ClassDeclaration||g===i.ClassExpression||g===i.Constructor||g===i.ClassStaticBlockDeclaration)return!1;p=p.getParent()}return!0},a=u=>u.getDescendantsOfKind(i.CallExpression).some(m=>r(m,u)&&o(m))||u.getDescendantsOfKind(i.AwaitExpression).some(m=>r(m,u)&&_(m,e,n))?!0:u.getDescendantsOfKind(i.PropertyAccessExpression).some(m=>r(m,u)&&_(m,e,n)),l=u=>u.getDescendantsOfKind(i.CallExpression).some(f=>r(f,u)&&c(f.getExpression().getText()));if(t.getKind()===i.ObjectLiteralExpression)return t.getProperties().some(f=>{if(f.getKind()===i.PropertyAssignment||f.getKind()===i.ShorthandPropertyAssignment){let p=f.getKind()===i.PropertyAssignment?f.getInitializer():void 0;return p?_(p,e,n):!1}if(f.getKind()===i.MethodDeclaration||f.getKind()===i.GetAccessor||f.getKind()===i.SetAccessor){let p=f.getBody();return p?a(p):!1}return!1});if(t.getKind()===i.ArrowFunction||t.getKind()===i.FunctionExpression){let f=t.getBody();if(f.getKind()===i.Block){let p=f;return p.getDescendantsOfKind(i.ReturnStatement).some(T=>{if(!r(T,p))return!1;let w=T.getExpression();return w!==void 0&&_(w,e,n)})?!0:l(p)?!1:a(p)}return _(f,e,n)}if(t.getKind()===i.CallExpression)return o(t);if(t.getKind()===i.AwaitExpression){let u=t.getExpression();return u.getKind()!==i.CallExpression?!1:o(u)}if(t.getKind()===i.ConditionalExpression){let u=t;return _(u.getWhenTrue(),e,n)||_(u.getWhenFalse(),e,n)}if(t.getKind()===i.PropertyAccessExpression){let u=t.getText(),f=u.indexOf(".");return f>0&&s(u.slice(0,f))?!1:[...e].some(p=>u.startsWith(`${p}.`))}return!1};function ie(t){return t==="effect"||t.startsWith("effect/")||t.startsWith("@effect/")}var at=new Set(["Effect","Layer","Schedule","Stream","Queue","PubSub","Deferred","Semaphore","Mailbox","SubscriptionRef","Scope","Fiber","Runtime","ManagedRuntime","Cause","Exit","Data","Option","Either","Chunk","HashMap","HashSet","Match","Config","Schema","Cache","ScopedCache","Metric","Logger","Tracer","Context","Brand","Encoding","Predicate","DateTime","Cron","BigDecimal","Graph","HashRing","Redacted","GlobalValue","NodeRuntime","BunRuntime","DenoRuntime","Channel","Sink"]),Ht=new Set(["core","core-effect","core-stream","fiberRuntime","effectable","channel","sink","layer","schedule","mailbox","pubsub"]);function Gt(t){let e=new Set(["never","unknown","any","{}","object"]),n=t.trim();return!n||e.has(n)?[]:n.split(/[\s|&]+/).map(s=>s.trim().split("<")[0]?.trim()??"").filter(s=>s.length>0&&!e.has(s))}function we(t){let{SyntaxKind:e}=x(),n=t.getKind();if(n===e.NumericLiteral){let i=t.getText(),s=Number(i);return Number.isFinite(s)?s:void 0}if(n===e.PrefixUnaryExpression){let i=t;if(i.getOperatorToken()===e.MinusToken){let s=i.getOperand(),c=we(s);return c!==void 0?-c:void 0}}}import{existsSync as Fn}from"fs";import{dirname as ct,resolve as ke,join as oe,sep as Yt}from"path";var Jt=new WeakMap,Qt=new WeakMap;function dt(t){let e=new Set;for(let n of t.getExportDeclarations()){let i=n.getModuleSpecifierValue();if(!(!i||!ie(i))){if(n.isNamespaceExport()){at.forEach(s=>e.add(s));continue}for(let s of n.getNamedExports()){e.add(s.getName());let c=s.getAliasNode()?.getText();c&&e.add(c)}}}return e}function me(t,e,n){if(!n.startsWith("."))return;let i=ct(e),s=ke(i,n),c=[s,`${s}.ts`,`${s}.tsx`,`${s}.js`,`${s}.jsx`,oe(s,"index.ts"),oe(s,"index.tsx"),oe(s,"index.js"),oe(s,"index.jsx")];for(let d of c){let o=t.getSourceFile(d);if(o)return o}}function lt(t,e){if(!e.startsWith("."))return;let n=ct(t),i=ke(n,e);return[i,`${i}.ts`,`${i}.tsx`,`${i}.js`,`${i}.jsx`,oe(i,"index.ts"),oe(i,"index.tsx"),oe(i,"index.js"),oe(i,"index.jsx")].find(c=>Fn(c))}function Oe(t,e,n){if(!n||!e.startsWith("."))return!1;let i=e.replace(/\\/g,"/"),s=ke(ct(t),e),c=ke(s),d=ke(n);return c===d||c.startsWith(d+Yt)?!0:t==="temp.ts"||t.endsWith(`${Yt}temp.ts`)?i.startsWith("./internal/")||i.startsWith("../internal/"):!1}function vn(t){let e=new Set(at),n=t.getProject(),i=t.getFilePath();for(let s of t.getImportDeclarations()){let c=s.getModuleSpecifierValue();if(ie(c)){let d=s.getDefaultImport();d&&e.add(d.getText());let o=s.getNamespaceImport();o&&e.add(o.getText());for(let r of s.getNamedImports()){let a=r.getAliasNode()?.getText();e.add(a??r.getName())}continue}if(c.startsWith(".")){let d=me(n,i,c);if(!d)continue;let o=dt(d);if(o.size===0)continue;let r=s.getDefaultImport();if(r){let l=r.getText();o.has(l)&&e.add(l)}let a=s.getNamespaceImport();if(a){let l=a.getText();o.has(l)&&e.add(l)}for(let l of s.getNamedImports())o.has(l.getName())&&e.add(l.getAliasNode()?.getText()??l.getName())}}return e}function ut(t,e){let n=vn(t);for(let i of t.getImportDeclarations()){let s=i.getModuleSpecifierValue(),c=i.getNamespaceImport();if(!c)continue;let d=c.getText();if(s.startsWith("effect")||s.startsWith("@effect/")){n.add(d);continue}if(Oe(t.getFilePath(),s,e)){n.add(d);continue}let o=s.replace(/\.(js|ts)$/,"").split("/").pop()??"";Ht.has(o)&&n.add(d)}return n}var In=new Set(["BigDecimal","BigInt","Brand","Cause","Chunk","Data","Exit","Option","Either","HashMap","HashSet","List","Redacted"]);function Zt(t){let e=new Set;for(let n of t.getImportDeclarations()){let c=n.getModuleSpecifierValue().replace(/\\/g,"/").replace(/\.(js|ts|tsx|jsx)$/,"").split("/").pop()??"";if(!In.has(c))continue;let d=n.getDefaultImport();d&&e.add(d.getText());let o=n.getNamespaceImport();o&&e.add(o.getText());for(let r of n.getNamedImports())e.add(r.getAliasNode()?.getText()??r.getName())}return e}function se(t){let e=Jt.get(t);return e||(e=ut(t),Jt.set(t,e)),e}var Xt=new WeakMap;function Wn(t){let e=t.replace(/\\/g,"/").replace(/\.(js|ts|mts|cts)$/,"");return e==="effect"||e.endsWith("/Effect")?"Effect":(e.split("/").pop()??"")||"Effect"}function Pn(t){let e=Xt.get(t);if(e)return e;e=new Map;for(let n of t.getImportDeclarations()){let i=n.getModuleSpecifierValue();if(!i||!ie(i))continue;let s=n.getNamespaceImport();if(!s)continue;let c=s.getText(),d=Wn(i);e.set(c,d)}return Xt.set(t,e),e}function ft(t,e){let n=t.indexOf(".");if(n<=0)return t;let i=t.slice(0,n),s=t.slice(n+1),d=Pn(e).get(i);return d?`${d}.${s}`:t}function On(t,e){let n=Qt.get(e);n||(n=new Map,Qt.set(e,n));let i=t.indexOf("."),s=i>0?t.slice(0,i):t,c=n.get(s);if(c!==void 0)return c;let d=!1;try{for(let o of e.getImportDeclarations()){let r=o.getModuleSpecifierValue();if(o.getNamespaceImport()?.getText()===s){d=ie(r);break}if(o.getDefaultImport()?.getText()===s){d=ie(r);break}for(let u of o.getNamedImports())if((u.getAliasNode()?.getText()??u.getName())===s){if(ie(r))d=!0;else if(r.startsWith(".")){let g=me(e.getProject(),e.getFilePath(),r);g&&(d=dt(g).has(u.getName()))}break}if(d)break}}catch{d=!1}return n.set(s,d),d}function Ln(t,e){let i=t.getExpression().getText();for(let s of e.getImportDeclarations()){let c=s.getModuleSpecifierValue();if(s.getNamespaceImport()?.getText()===i||s.getDefaultImport()?.getText()===i)return c;for(let r of s.getNamedImports())if((r.getAliasNode()?.getText()??r.getName())===i)return c}}function he(t,e,n,i){let s=t.getExpression(),c=s.getText();if(ot.some(a=>c.startsWith(a))||c.startsWith("pipe("))return!0;for(let a of n)if(c.startsWith(`${a}.`))return!0;let{SyntaxKind:d}=x();if(s.getKind()!==d.PropertyAccessExpression)return!1;let o=s,r=Ln(o,e);if(!r)return!1;if(ie(r))return!0;if(r.startsWith(".")){let a=me(e.getProject(),e.getFilePath(),r);if(a){let l=dt(a),u=o.getExpression().getText();for(let f of e.getImportDeclarations())if(f.getModuleSpecifierValue()===r){for(let p of f.getNamedImports())if((p.getAliasNode()?.getText()??p.getName())===u&&l.has(p.getName()))return!0}}if(Oe(e.getFilePath(),r,i))return!0}return!1}function Le(t,e,n){if(ot.some(i=>t.startsWith(i))||t.startsWith("pipe("))return!0;if(e){for(let i of e)if(t.startsWith(`${i}.`))return!0}return n&&t.includes(".")?On(t,n):!1}var Kn=new Set(["createWorkflow","createSagaWorkflow","runSaga"]),Mn=t=>Array.from(Kn).some(e=>t===e||t.endsWith(`.${e}`)),en=t=>{let e=t.getExpression();if(e.getKind()!==x().SyntaxKind.PropertyAccessExpression)return!1;let n=e,i=t.getArguments();if(n.getName()!=="make"||i.length<3||!i[2])return!1;let s=i[2].getKind(),{SyntaxKind:c}=x();return s===c.ArrowFunction||s===c.FunctionExpression};function on(t,e){let n=t.replace(/\\/g,"/");return!!(n==="@effect/workflow"||n==="effect/workflow"||n.endsWith("/workflow")||n.includes("/workflow/")||n.endsWith("/Workflow.js")||n.endsWith("/Workflow.ts")||n.endsWith("/Activity.js")||n.endsWith("/Activity.ts")||n.startsWith(".")&&(n.endsWith("Workflow.js")||n.endsWith("Workflow.ts")||n.endsWith("Activity.js")||n.endsWith("Activity.ts")))}function zn(t,e,n){return t!=="Workflow"?!1:on(e,n)}function Bn(t,e,n){return t!=="Activity"?!1:on(e,n)}function sn(t,e){let{SyntaxKind:n}=x(),i=t.getArguments();if(i.length!==1||!i[0])return!1;let s=i[0];if(s.getKind()!==n.ObjectLiteralExpression)return!1;let d=s.getProperties(),o=new Set(e);for(let r of d)if(r.getKind()===n.PropertyAssignment){let a=r.getName();if(o.has(a))return!0}return!1}function qn(t,e,n){let{SyntaxKind:i}=x(),s=t.getExpression();if(s.getKind()!==i.PropertyAccessExpression)return!1;let c=s;if(c.getName()!=="make")return!1;let d=c.getExpression().getText(),o=e.get(d);return!o||!zn(d,o,n)?!1:sn(t,["name","payload","idempotencyKey"])}function jn(t,e,n){let{SyntaxKind:i}=x(),s=t.getExpression();if(s.getKind()!==i.PropertyAccessExpression)return!1;let c=s;if(c.getName()!=="make")return!1;let d=c.getExpression().getText(),o=e.get(d);return!o||!Bn(d,o,n)?!1:sn(t,["name","execute"])}var an=(t,e)=>{let n=t.getExpression();if(n.getKind()!==x().SyntaxKind.PropertyAccessExpression||n.getName()!=="run")return null;let s=t.getArguments();if(s.length<1||!s[0])return null;let c=s[0],{SyntaxKind:d}=x();if(c.getKind()===d.CallExpression){let l=c;return en(l)?l.getArguments()[2]??null:null}if(c.getKind()!==d.Identifier)return null;let r=c.getText(),a=e.getDescendantsOfKind(d.VariableDeclaration);for(let l of a){if(l.getName()!==r)continue;let u=l.getInitializer();if(u?.getKind()===d.CallExpression&&en(u))return u.getArguments()[2]??null}return null},_n=t=>{let{SyntaxKind:e}=x(),n=t.getParent();for(;n;){if(n.getKind()===e.CallExpression){let s=n.getExpression().getText();if(s.includes(".gen")||s==="gen")return!0}n=n.getParent()}return!1},$n=t=>{let{SyntaxKind:e}=x();return t.getFirstAncestorByKind(e.VariableStatement)?.getParent()?.getKind()===e.SourceFile},Vn=t=>{let{SyntaxKind:e}=x(),n=t.getInitializer();return n?n.getKind()===e.YieldExpression||n.getKind()===e.AwaitExpression&&n.getExpression().getKind()===e.YieldExpression:!1},tn=t=>{let{SyntaxKind:e}=x();if(t.getKind()===e.CallExpression)return t;if(t.getKind()===e.AwaitExpression){let n=t.getExpression();if(n.getKind()===e.CallExpression)return n}},L=(t,e)=>({discoveryConfidence:t,discoveryReason:e}),Un=["Effect<","Layer<","Layer.Layer<","Stream<","Stream.Stream<","Channel<","Channel.Channel<","Sink<","Sink.Sink<","STM<","STM.STM<","Schedule<","Schedule.Schedule<"],Ke=t=>t!==void 0&&Un.some(e=>t.includes(e)),nn={low:0,medium:1,high:2},pt=t=>{let e=t.getExpression().getText();return e.includes(".runPromise")||e.includes(".runPromiseExit")||e.includes(".runSync")||e.includes(".runSyncExit")||e.includes(".runFork")||e.includes(".runCallback")||e.includes(".runMain")||e.includes("Runtime.runPromise")||e.includes("Runtime.runSync")||e.includes("Runtime.runFork")};function rn(t){let e=t.getBody?.();if(!e)return!1;let n=e.getText();return n.includes(".runMain")||n.includes(".runPromise")||n.includes(".runSync")||n.includes(".runFork")||n.includes("Runtime.runPromise")||n.includes("Runtime.runSync")||n.includes("NodeRuntime.runMain")||n.includes("BunRuntime.runMain")||n.includes("DenoRuntime.runMain")}function Hn(t,e){let n=t.getExpression();if(n.getKind()!==x().SyntaxKind.Identifier)return!1;let c=n.getSymbol()?.getValueDeclaration();if(!c)return!1;let d=c.getKind(),{SyntaxKind:o}=x();if(d===o.FunctionDeclaration||d===o.ArrowFunction||d===o.FunctionExpression)return rn(c);if(d===o.VariableDeclaration){let r=c.getInitializer();if(r&&(r.getKind()===o.ArrowFunction||r.getKind()===o.FunctionExpression))return rn(r)}return!1}function Gn(t){let e=t.getExpression();if(t.getArguments().length!==1)return!1;let{SyntaxKind:n}=x();if(e.getKind()!==n.CallExpression)return!1;let i=e;if(i.getArguments().length!==1)return!1;let s=i.getExpression().getText();return s.includes(".runPromise")||s.includes(".runSync")||s.includes(".runFork")||s.includes(".runCallback")||s.includes("Runtime.runPromise")||s.includes("Runtime.runSync")||s.includes("Runtime.runFork")}var yt=(t,e)=>{let n=[],{SyntaxKind:i}=x(),s=new Set,c=new Set,d=ut(t,e.knownEffectInternalsRoot),o=Zt(t),r=new Map;for(let h of t.getImportDeclarations()){let S=h.getModuleSpecifierValue(),N=h.getDefaultImport();N&&r.set(N.getText(),S);let b=h.getNamespaceImport();b&&r.set(b.getText(),S);for(let y of h.getNamedImports())r.set(y.getAliasNode()?.getText()??y.getName(),S)}let a=h=>{let S=r.get(h);if(S){if(S.startsWith("effect")||S.startsWith("@effect/"))return L("high",`imported from ${S}`);if(Oe(t.getFilePath(),S,e.knownEffectInternalsRoot))return L("high","namespace import resolved under knownEffectInternalsRoot");if(S.startsWith(".")&&/(?:^|\/)Effect(?:\.[jt]sx?)?$/.test(S))return L("high",`relative Effect module namespace import (${S})`)}},l=h=>{let S=b=>{let y=b.getDescendantsOfKind(i.PropertyAccessExpression);for(let C of y){let D=C.getExpression().getText();if(d.has(D)&&!o.has(D))return a(D)?.discoveryConfidence==="high"?L("high",`function body uses ${D}.* from trusted Effect alias`):L("medium",`function body uses Effect-like alias ${D}.*`)}let R=b.getDescendantsOfKind(i.CallExpression);for(let C of R){let D=C.getExpression();if(D.getKind()===i.Identifier){let P=D.getText();if(d.has(P)&&!o.has(P))return a(P)?.discoveryConfidence==="high"?L("high",`function body calls trusted Effect import ${P}(...)`):L("medium",`function body calls Effect-like import ${P}(...)`)}}};if(h.getKind()===i.ArrowFunction||h.getKind()===i.FunctionExpression){let y=h.getBody();if(y.getKind()===i.Block){let R=S(y);if(R)return R}else{let R=S(y);if(R)return R}}let N=tn(h);if(N){let b=N.getExpression(),y=b.getText();if(b.getKind()===i.Identifier){let R=y;if(d.has(R)&&!o.has(R))return a(R)??L("high",`named import call (${R})`);if(R==="pipe")return L("medium","exact pipe() call detection")}if(b.getKind()===i.PropertyAccessExpression){let R=b,C=R.getExpression().getText();if(d.has(C)&&!o.has(C))return a(C)??L("medium",`Effect-like namespace prefix (${C}.*)`);if(R.getName()==="pipe")return L("medium","exact .pipe() call detection")}}if(h.getKind()===i.PropertyAccessExpression){let y=h.getExpression().getText();if(d.has(y)&&!o.has(y))return a(y)??L("medium",`Effect-like namespace property access (${y}.*)`)}if(h.getKind()===i.AwaitExpression){let b=h.getExpression();if(b.getKind()===i.CallExpression)return l(b)}return L("low","heuristic direct initializer match")},u=h=>{let N=(y=>y.getTypeNode?.()?.getText())(h);if(Ke(N))return L("high","explicit Effect-family type annotation");let b=h.getKind()===i.VariableDeclaration?h.getFirstAncestorByKind(i.VariableStatement)?.isExported()??!1:h.getKind()===i.PropertyDeclaration||h.getKind()===i.MethodDeclaration||h.getKind()===i.GetAccessor?h.getFirstAncestorByKind(i.ClassDeclaration)?.isExported()??!1:!1;if(h.getKind()===i.VariableDeclaration||h.getKind()===i.PropertyDeclaration){let y=h.getInitializer();if(y&&(y.getKind()===i.ArrowFunction||y.getKind()===i.FunctionExpression)){let C=y.getReturnTypeNode()?.getText();if(Ke(C))return L("high","function return type annotated as Effect-family");if(b&&N)return L("medium","explicit exported function API type signature")}if(y?.getKind()===i.CallExpression){let C=y.getTypeArguments().map(D=>D.getText()).join(" ");if(Ke(C))return L("high","call type arguments reference Effect-family types");if(b&&N)return L("medium","explicit exported call-based API type signature")}}if(h.getKind()===i.MethodDeclaration||h.getKind()===i.GetAccessor){let y=h.getReturnTypeNode?.()?.getText();if(Ke(y))return L("high","method/getter return type annotated as Effect-family");if(b&&N)return L("medium","explicit exported method/getter API type signature")}},f=h=>{let S=h.node,N=S.getKind();return N===i.CallExpression?!0:N===i.VariableDeclaration?S.getFirstAncestorByKind(i.VariableStatement)?.isExported()??!1:N===i.FunctionDeclaration||N===i.ClassDeclaration?S.isExported():N===i.PropertyDeclaration||N===i.MethodDeclaration||N===i.GetAccessor?S.getFirstAncestorByKind(i.ClassDeclaration)?.isExported()??!1:!0},p=h=>{for(let S of h){let N=S.getExpression();if(N&&_(N,d,o))return l(N)}return L("low","heuristic method return match")},g=t.getFilePath(),m=t.getDescendantsOfKind(i.VariableDeclaration);for(let h of m){let S=h.getInitializer();if(S?.getKind()===i.CallExpression&&Mn(S.getExpression().getText())&&c.add(h.getName()),e.enableEffectWorkflow&&S?.getKind()===i.CallExpression){let N=S;(qn(N,r,g)||jn(N,r,g))&&c.add(h.getName())}}let T=t.getDescendantsOfKind(i.CallExpression);for(let h of T){let S=h.getExpression(),N=S.getText(),b=h.getStart(),y=!1;if(S.getKind()===i.Identifier)y=c.has(N);else if(S.getKind()===i.PropertyAccessExpression){let C=S,D=C.getExpression().getText(),P=C.getName();if(y=c.has(D)&&P==="run",e.enableEffectWorkflow&&!y&&P==="run"&&h.getArguments().length===1&&!N.includes("runPromise")&&!N.includes("runSync")&&!N.includes("runFork")&&!N.includes("runCallback")&&!s.has(b)){let V=ue(h)??`workflow-${n.length+1}`;n.push({name:V,node:h,type:"run",...L("low","workflow-like .run(...) shape heuristic")}),s.add(b);continue}}if(y&&!s.has(b)){let C=ue(h)??`workflow-${n.length+1}`;n.push({name:C,node:h,type:"run",...L("medium","workflow builder invocation")}),s.add(b);continue}if(e.enableEffectWorkflow&&S.getKind()===i.PropertyAccessExpression){let C=S,D=C.getExpression().getText(),P=C.getName();if((P==="execute"||P==="executeEncoded")&&c.has(D)&&!s.has(b)){let j=ue(h)??`${D}.${P}`;n.push({name:j,node:h,type:"workflow-execute",...L("medium","workflow/activity .execute entrypoint")}),s.add(b);continue}}if((N==="gen"||N.includes(".gen")&&he(h,t,d,e.knownEffectInternalsRoot))&&!s.has(b)){let C=ue(h)??It(h)??`program-${n.length+1}`;n.push({name:C,node:h,type:"generator",...N==="gen"?L("medium","unqualified gen(...) call"):L("high","Effect-like .gen(...) call")}),s.add(b)}let R=ue(h);if(N.includes("pipe")&&Yn(h,d)&&!s.has(b)&&S.getKind()!==i.PropertyAccessExpression&&R!==void 0&&!_n(h)&&(n.push({name:R,node:h,type:"pipe",...L("medium","exact pipe(...) call with Effect-like args")}),s.add(b)),(pt(h)||Gn(h))&&!s.has(b)){let C=ue(h)??`run-${n.length+1}`;n.push({name:C,node:h,type:"run",...L("high","recognized Runtime/Effect run* entrypoint")}),s.add(b)}}for(let h of m){if(!$n(h)||Vn(h))continue;let S=h.getInitializer();if(S){let N=h.getName(),b=tn(S);if(b&&pt(b)||S.getKind()===i.ObjectLiteralExpression)continue;_(S,d,o)&&!n.some(R=>R.name===N)&&n.push({name:N,node:h,type:"direct",...u(h)??l(S)})}}let w=t.getStatements();for(let h of w){if(h.getKind()!==i.ExpressionStatement)continue;let S=h.getExpression();if(S.getKind()!==i.CallExpression)continue;let N=S,b=N.getStart();if(s.has(b))continue;let y=N.getExpression(),R=y.getText();if(pt(N)){let C=`run-${n.length+1}`;n.push({name:C,node:N,type:"run",...L("high","recognized top-level run* entrypoint")}),s.add(b);continue}if(R.endsWith(".pipe")||R==="pipe"){let C=N.getArguments(),D=C[C.length-1];if(!D)continue;let P=D.getText();if(P.includes(".runMain")||P.includes(".runPromise")||P.includes(".runSync")||P.includes(".runFork")){let j;y.getKind()===i.PropertyAccessExpression&&(j=y.getExpression().getText().split(".").pop());let ae=j&&!n.some(J=>J.name===j)?j:`entrypoint-${n.length+1}`;n.push({name:ae,node:N,type:"run",...L("medium","top-level pipe(...).run* terminator pattern")}),s.add(b)}}if(y.getKind()===i.Identifier&&N.getArguments().length>=1){let C=y.getText();Hn(N,t)&&!n.some(P=>P.name===C)&&(n.push({name:C,node:N,type:"run",...L("low","indirect run wrapper body heuristic")}),s.add(b))}}let v=["Data.TaggedError","Data.TaggedClass","Data.Class","Data.Error","Schema.Class","Schema.TaggedClass","Schema.TaggedError","Schema.TaggedRequest","Context.Tag","Context.Reference","Effect.Service"],W=t.getDescendantsOfKind(i.ClassDeclaration);for(let h of W){let S=h.getName();if(!S||n.some(y=>y.name===S))continue;h.getHeritageClauses().some(y=>{let R=y.getText();return v.some(C=>R.includes(C))})&&n.push({name:S,node:h,type:"class",...L("medium","known Data/Schema/Context class pattern")})}let B=W.filter(h=>{let S=h.getParent();return S===t||S?.getParent()===t});for(let h of B){let S=h.getName()??"Anonymous",N=h.getMembers(),b=N.filter(C=>C.getKind()===i.PropertyDeclaration);for(let C of b){let D=C.getInitializer();if(!D)continue;let P=C.getName(),V=`${S}.${P}`;n.some(j=>j.name===V)||_(D,d,o)&&n.push({name:V,node:C,type:"classProperty",...u(C)??l(D)})}let y=N.filter(C=>C.getKind()===i.MethodDeclaration);for(let C of y){let D=C.getName(),P=`${S}.${D}`;if(n.some(J=>J.name===P))continue;let V=C.getBody();if(!V)continue;let j=V.getDescendantsOfKind(i.ReturnStatement);j.some(J=>{let k=J.getExpression();return k?_(k,d,o):!1})&&n.push({name:P,node:C,type:"classMethod",...u(C)??p(j)})}let R=N.filter(C=>C.getKind()===i.GetAccessor);for(let C of R){let D=C.getName(),P=`${S}.${D}`;if(n.some(J=>J.name===P))continue;let V=C.getBody();if(!V)continue;let j=V.getDescendantsOfKind(i.ReturnStatement);j.some(J=>{let k=J.getExpression();return k?_(k,d,o):!1})&&n.push({name:P,node:C,type:"classMethod",...u(C)??p(j)})}}return n.filter(h=>{let S=e.minDiscoveryConfidence??"low",N=h.discoveryConfidence??"low";return!(nn[N]<nn[S]||e.onlyExportedPrograms&&!f(h))})},Yn=(t,e)=>t.getArguments().map(s=>s.getText()).some(s=>[...e].some(c=>s.includes(`${c}.`)));function cn(t){let{SyntaxKind:e}=x(),n=[],i=t.getProject().getTypeChecker(),s=t.getDescendantsOfKind(e.ClassDeclaration);for(let c of s){let d=c.getName();if(!d)continue;let o=c.getExtends();if(!o)continue;let r=o.getText();if(!r.includes("Context.Tag")&&!r.includes("Effect.Service"))continue;let a=o.getTypeArguments();if(a.length<2){let u=o.getExpression();u&&"getTypeArguments"in u&&typeof u.getTypeArguments=="function"&&(a=u.getTypeArguments())}if(a.length<2)continue;let l=a[1];if(l)try{let u=i.getTypeAtLocation(l),f=[],p=[];for(let w of u.getProperties()){let v=w.getName();if(v.startsWith("_")||v==="constructor")continue;i.getTypeOfSymbolAtLocation(w,l).getCallSignatures().length>0?f.push(v):p.push(v)}let g=c.getText(),m=g.includes("Equal.symbol")||g.includes("[Equal")||g.includes("equal("),T=g.includes("Hash.symbol")||g.includes("[Hash")||g.includes("hash(");n.push({tagId:d,methods:f,properties:p,...m?{hasCustomEquality:m}:{},...T?{hasCustomHash:T}:{}})}catch{}}for(let c of s){let d=c.getName();if(!d)continue;let o=c.getExtends();if(!o)continue;let r=o.getText();if(!r.includes("Data.Class")&&!r.includes("Data.TaggedClass")||n.some(f=>f.tagId===d))continue;let a=c.getText(),l=a.includes("Equal.symbol")||a.includes("[Equal")||a.includes("equal("),u=a.includes("Hash.symbol")||a.includes("[Hash")||a.includes("hash(");(l||u)&&n.push({tagId:d,methods:[],properties:[],hasCustomEquality:l,hasCustomHash:u})}return n}import{Effect as Y,Option as Re}from"effect";import{Effect as q,Option as Jn}from"effect";var ze=(t,e,n,i,s,c)=>q.gen(function*(){let{SyntaxKind:d}=x(),o=t.getArguments(),r=t.getExpression(),a=r.getKind()===d.PropertyAccessExpression&&r.getName()==="pipe",l=a?r.getExpression():o[0],u=a?o:o.slice(1);if(!l)return[];let f=ln(l),p=f.getSourceFile(),g=p.getFilePath(),m=e.getProject();if(m.getSourceFile(g)){let h=m.getSourceFile(g);h&&(p=h)}else{let h=m.addSourceFileAtPath(g);h&&(p=h)}let T=yield*A(f,p,p.getFilePath(),i,s,c),w=[];for(let h of u)if(h){let S=yield*A(h,e,n,i,s,c);w.push(S)}let v;try{let h=e.getProject().getTypeChecker(),S=[],N=ye(l,h);N&&S.push(N);for(let b of u)if(b){let y=ye(b,h);y&&S.push(y)}S.length>0&&(v=S)}catch{}let W={id:E(),type:"pipe",initial:T,transformations:w,...v?{typeFlow:v}:{}};return[{...W,displayName:O(W),semanticRole:K(W)}]}),A=(t,e,n,i,s,c,d)=>q.gen(function*(){let{SyntaxKind:o}=x();if(t.getKind()===o.ArrowFunction||t.getKind()===o.FunctionExpression){let l=t.getBody();if(!l){let f={id:E(),type:"unknown",reason:"Function has no body",sourceCode:t.getText().slice(0,100),location:I(t,n,i.includeLocations??!1)};return c.unknownCount++,f}if(l.getKind()===o.Block){let g=l.getStatements().find(m=>m.getKind()===o.ReturnStatement)?.getExpression();if(g)return yield*A(g,e,n,i,s,c,d)}else return yield*A(l,e,n,i,s,c,d);let u={id:E(),type:"unknown",reason:"Function does not return an Effect expression",sourceCode:t.getText().slice(0,100),location:I(t,n,i.includeLocations??!1)};return c.unknownCount++,u}if(t.getKind()===o.CallExpression)return yield*gt(t,e,n,i,s,c,d);if(t.getKind()===o.PropertyAccessExpression){let a=t.getText();if(a==="Fiber.roots"||a==="Fiber.getCurrentFiber"){let l=a==="Fiber.roots"?"roots":"getCurrentFiber";return{id:E(),type:"fiber",operation:l,isScoped:!1,isDaemon:!1,location:I(t,n,i.includeLocations??!1)}}if(Le(a,se(e),e)){let l={id:E(),type:"effect",callee:a,location:I(t,n,i.includeLocations??!1)};return c.totalEffects++,l}}if(t.getKind()===o.Identifier){let a={id:E(),type:"effect",callee:t.getText(),location:I(t,n,i.includeLocations??!1)};return c.totalEffects++,a}if(t.getKind()===o.ObjectLiteralExpression){let a=t,l=new Set(["onNone","onSome","onFailure","onSuccess","onLeft","onRight"]),u=a.getProperties(),f=[],p=!1;for(let g of u){if(g.getKind()!==o.PropertyAssignment)continue;let m=g,T=m.getName();if(!l.has(T))continue;p=!0;let w=m.getInitializer();if(w){let v=yield*A(w,e,n,i,s,c,d);f.push(v)}}if(p&&f.length>0)return f.length===1?f[0]:{id:E(),type:"parallel",callee:"match-handlers",mode:"sequential",children:f,location:I(t,n,i.includeLocations??!1)}}let r={id:E(),type:"unknown",reason:"Could not determine effect type",sourceCode:t.getText().slice(0,100),location:I(t,n,i.includeLocations??!1)};return c.unknownCount++,r}),gt=(t,e,n,i,s,c,d)=>q.gen(function*(){let{SyntaxKind:o}=x(),r=t.getExpression().getText(),a=ft(r,e),l=/([A-Za-z_$][\w$]*)$/.exec(a)?.[1]??a,u=I(t,n,i.includeLocations??!1);if(r==="pipe"&&t.getArguments().length>=1){let k=yield*ze(t,e,n,i,s,c);if(k.length>0&&k[0])return k[0]}if(a==="Context.pick"||a==="Context.omit"){let k={id:E(),type:"effect",callee:a,description:"context",location:u};return c.totalEffects++,{...k,displayName:O(k),semanticRole:K(k)}}if(a.startsWith("Layer."))return yield*er(t,a,e,n,i,s,c);if(a.startsWith("Stream."))return yield*tr(t,a,e,n,i,s,c);if(a.startsWith("Channel."))return yield*rr(t,a,e,n,i,s,c);if(r.startsWith("Sink."))return yield*or(t,r,e,n,i,s,c);if(r.startsWith("Queue.")||r.startsWith("PubSub.")||r.startsWith("Deferred.")||r.startsWith("Semaphore.")||r.startsWith("Mailbox.")||r.startsWith("SubscriptionRef.")||r.startsWith("RateLimiter.")||r.startsWith("PartitionedSemaphore.")||r.startsWith("FiberHandle.")||r.startsWith("FiberSet.")||r.startsWith("FiberMap.")||r.startsWith("Cache.")||r.startsWith("ScopedCache.")||r.startsWith("RcRef.")||r.includes(".RcRef.")||r.startsWith("RcMap.")||r.includes(".RcMap.")||r.startsWith("Reloadable.")||r.includes(".Reloadable.")||r.includes("makeLatch")||r.includes("Latch."))return yield*sr(t,r,e,n,i,s,c);if(Xe.some(k=>r.includes(k)||r.startsWith(k)))return yield*ar(t,r,e,n,i,s,c);if(it.some(k=>r.includes(k)))return yield*cr(t,r,e,n,i,s,c);if(r.includes(".all")||r==="all")return yield*lr(t,r,e,n,i,s,c);if(r.includes(".race")||r==="race")return yield*ur(t,r,e,n,i,s,c);if(Ye.some(k=>r.includes(k)))return yield*fr(t,r,e,n,i,s,c);if(r.includes(".retry"))return yield*pr(t,e,n,i,s,c);if(r.includes(".timeout"))return yield*yr(t,e,n,i,s,c);let p=new Set(["acquireRelease","acquireUseRelease","ensuring","addFinalizer","onExit","onError","parallelFinalizers","sequentialFinalizers","finalizersMask","using","withEarlyRelease"]),g=["acquireRelease","acquireUseRelease"],m=k=>p.has(k)||g.some(M=>k.startsWith(M));if(l==="pipe"&&t.getExpression().getKind()===o.PropertyAccessExpression){let M=t.getExpression().getExpression();if(M.getKind()===o.CallExpression){let Z=M,re=Z.getExpression().getText(),U=/([A-Za-z_$][\w$]*)$/.exec(re)?.[1]??re;if(m(U))return yield*dn(Z,U,e,n,i,s,c)}}if(m(l))return yield*dn(t,l,e,n,i,s,c);if(Je.some(k=>r.includes(k)))return yield*gr(t,r,e,n,i,s,c);if(Qe.some(k=>r.includes(k)))return yield*mr(t,r,e,n,i,s,c);if(Lt(r))return yield*Nr(t,r,e,n,i,s,c);if(Mt(r))return hr(t,r,n,i);if(Bt(r))return yield*Sr(t,r,e,n,i,s,c);if(jt(r))return Er(t,r,n,i);if(_t(r))return yield*xr(t,r,n,i);c.totalEffects++;let T,v=["Effect.sync","Effect.promise","Effect.async","Effect.asyncEffect","Effect.tryPromise","Effect.suspend"].some(k=>r.includes(k))&&t.getArguments().length>0&&t.getArguments()[0],W;if(v){let k=t.getArguments()[0],{SyntaxKind:M}=x();if(k.getKind()===M.ArrowFunction||k.getKind()===M.FunctionExpression){let re=k,U=re.getBody(),Ne=[];if(U){if(U.getKind()===M.Block){let pe=U;for(let ce of pe.getStatements())if(ce.getKind()===M.ReturnStatement){let Q=ce.getExpression();if(Q&&Le(Q.getText(),se(e),e)){let de=yield*A(Q,e,n,i,s,c,void 0);Ne.push(de)}}else if(ce.getKind()===M.ExpressionStatement){let Q=ce.getExpression();if(Q.getKind()===M.CallExpression&&he(Q,e,se(e),i.knownEffectInternalsRoot)){let de=yield*A(Q,e,n,i,s,c,void 0);Ne.push(de)}}}else if(Le(U.getText(),se(e),e)){let pe=yield*A(U,e,n,i,s,c,void 0);Ne.push(pe)}}if(Ne.length>0&&(T=Ne),r.includes("Effect.async")||r.includes("Effect.asyncEffect")){let pe=re.getParameters()[0]?.getName?.()??"resume",ce=0,Q=Te=>{if(Te.getKind()===M.CallExpression){let be=Te.getExpression();be.getKind()===M.Identifier&&be.getText()===pe&&ce++}Te.getChildren().forEach(Q)};U&&Q(U);let de=!1;if(U?.getKind()===M.Block){let Te=U;for(let _e of Te.getStatements())if(_e.getKind()===M.ReturnStatement){let be=_e.getExpression();if(be){let Et=be.getKind();if(Et===M.ArrowFunction||Et===M.FunctionExpression){de=!0;break}}}}else U&&(U.getKind()===M.ArrowFunction||U.getKind()===M.FunctionExpression)&&(de=!0);W={resumeParamName:pe,resumeCallCount:ce,returnsCanceller:de}}}}let B=le(t),h=e.getProject().getTypeChecker(),S=ye(t,h),N=ve(t,h),b=Qn(t,e),y,R=t.getExpression();if(R.getKind()===x().SyntaxKind.PropertyAccessExpression){let k=R,M=k.getExpression().getText(),Z=k.getName();if(d){let re=d.get(M);re&&(y={serviceId:re,methodName:Z})}!y&&N?.length===1&&N[0]&&(y={serviceId:N[0].serviceId,methodName:Z})}let C;if(r==="Effect.provide"||r.startsWith("Effect.")&&r.includes(".provide")&&!r.includes("provideService")){let k=t.getArguments(),M=(k.length>=2?k[1]:k[0])?.getText()??"";/Runtime\.|defaultRuntime|\.runSync|\.runPromise|\.runFork|\.runCallback/.test(M)||/^\s*runtime\s*$|^\s*rt\s*$/i.test(M.trim())?C="runtime":M.includes("Layer.")?C="layer":C="context"}let D;r.endsWith(".sync")||r.endsWith(".succeed")||r.endsWith(".fail")||r.endsWith(".try")||r.endsWith(".suspend")?D="sync":r.endsWith(".promise")?D="promise":r.endsWith(".async")||r.endsWith(".asyncEffect")?D="async":r.endsWith(".never")?D="never":r.endsWith(".void")?D="void":r.endsWith(".fromNullable")?D="fromNullable":r.endsWith(".fn")?D="fn":r.endsWith(".fnUntraced")&&(D="fnUntraced");let P,V=["currentConcurrency","currentLogLevel","currentScheduler","currentTracerEnabled","currentLogSpan","currentLogAnnotations","currentContext","currentRequestBatching","currentMaxOpsBeforeYield","currentSupervisor","currentMetricLabels","interruptedCause","unhandledLogLevel"];for(let k of V)if(r.includes(k)){P=k;break}let j;if(D==="fn"||D==="fnUntraced"){let k=t.getArguments();if(k.length>0){let M=k[0].getText(),Z=/^["'`](.+?)["'`]$/.exec(M);Z&&(j=Z[1])}}let ae={id:E(),type:"effect",callee:r,description:b?"service-call":Ut(r,se(e)),location:u,jsdocDescription:B,jsdocTags:ge(t),typeSignature:S,requiredServices:N,serviceCall:b,serviceMethod:y,callbackBody:T,...W?{asyncCallback:W}:{},...C?{provideKind:C}:{},...D?{constructorKind:D}:{},...P?{fiberRefName:P}:{},...j?{tracedName:j}:{}};return{...ae,displayName:O(ae),semanticRole:K(ae)}}),Qn=(t,e)=>{let{SyntaxKind:n}=x(),i=t.getExpression();if(i.getKind()!==n.PropertyAccessExpression)return;let s=i,c=s.getExpression(),d=s.getName(),o=c.getText(),r=o.split(".")[0]??o;if(!st.has(r))try{let a=c.getType(),l=a.getSymbol()??a.getAliasSymbol();if(!l)return;let u=l.getName();return!u||u==="__type"||u==="unknown"||u==="any"||$t.has(u)?void 0:{serviceType:u,methodName:d,objectName:o}}catch{return}};function Me(t){let e=t.getExpression().getText(),n=t.getSourceFile(),i=ft(e,n);return i.startsWith("Layer.")||i.startsWith("Effect.")||e==="pipe"||e.endsWith(".pipe")}function Xn(t,e,n){let{SyntaxKind:i}=x(),s=t.getSourceFile(),c=s.getProject(),d=s.getFilePath(),r=e.getImportDeclaration().getModuleSpecifierValue();if(!r?.startsWith("."))return;let a=me(c,d,r);if(!a){let m=lt(d,r);if(m){let T=c.addSourceFileAtPath(m);T&&(a=T)}}if(!a)return;a=c.getSourceFile(a.getFilePath())??a;let l=m=>{if(m.getKind()===i.VariableDeclaration){let w=m.getInitializer();if(w?.getKind()===i.CallExpression&&n(w))return w}if(m.getKind()===i.VariableStatement){let T=m.getDeclarationList();for(let w of T.getDeclarations()){let v=w.getInitializer();if(v?.getKind()===i.CallExpression&&n(v))return v}}},u=e.getName(),f=a.getExportedDeclarations(),p=f.get(u)??[];for(let m of p){let T=l(m);if(T)return T}let g=e.getTargetName?.();if(g&&g!==u)for(let m of f.get(g)??[]){let T=l(m);if(T)return T}for(let[,m]of f)for(let T of m){let w=l(T);if(w)return w}}function Zn(t,e,n){let{SyntaxKind:i}=x(),s=t.getSourceFile(),c=s.getProject(),d=s.getFilePath(),o=e.getModuleSpecifierValue();if(!o?.startsWith("."))return;let r=me(c,d,o);if(!r){let l=lt(d,o);if(l){let u=c.addSourceFileAtPath(l);u&&(r=u)}}if(!r)return;r=c.getSourceFile(r.getFilePath())??r;let a=l=>{if(l.getKind()===i.VariableDeclaration){let f=l.getInitializer();if(f?.getKind()===i.CallExpression&&n(f))return f}if(l.getKind()===i.VariableStatement){let u=l.getDeclarationList();for(let f of u.getDeclarations()){let p=f.getInitializer();if(p?.getKind()===i.CallExpression&&n(p))return p}}};for(let l of r.getDefaultExportSymbol()?.getDeclarations()??[]){let u=a(l);if(u)return u}for(let l of r.getExportedDeclarations().get("default")??[]){let u=a(l);if(u)return u}}function ln(t){let{SyntaxKind:e}=x();if(t.getKind()!==e.Identifier)return t;let n=t,i=n.getText(),s=n.getSymbol(),c=s?.getValueDeclaration(),d=c?.getKind()===e.ImportSpecifier?c:void 0;if(!d&&s){let o=s.getDeclarations().find(r=>r.getKind()===e.ImportSpecifier);o&&(d=o)}if(!d){let o=n.getSourceFile();for(let r of o.getImportDeclarations()){if(r.getDefaultImport()?.getText()===i){let u=Zn(n,r,Me);if(u)return u}let l=r.getNamedImports().find(u=>u.getName()===i||u.getAliasNode()?.getText()===i);if(l){d=l;break}}}if(d){let o=Xn(n,d,Me);if(o)return o;s=s?.getImmediatelyAliasedSymbol()??s?.getAliasedSymbol(),c=s?.getValueDeclaration()}if(c?.getKind()===e.ExportSpecifier&&(s=s?.getImmediatelyAliasedSymbol()??s?.getAliasedSymbol(),c=s?.getValueDeclaration()),s&&c?.getKind()!==e.VariableDeclaration){for(let o of s.getDeclarations())if(o.getKind()===e.VariableDeclaration){let a=o.getInitializer();if(a?.getKind()===e.CallExpression&&Me(a))return a}}if(c?.getKind()===e.VariableDeclaration){let r=c.getInitializer();if(r?.getKind()===e.CallExpression&&Me(r))return r}return t}var er=(t,e,n,i,s,c,d)=>q.gen(function*(){let o=t.getArguments(),r=[],{SyntaxKind:a}=x();if(o.length>0&&o[0]){let S=o[0];if(e.includes("mergeAll")&&S.getKind()===a.ArrayLiteralExpression){let b=S.getElements();for(let y of b){let R=yield*A(y,n,i,s,c,d);r.push(R)}}else for(let b of o){if(!b)continue;let y=ln(b),R=y.getSourceFile(),C=yield*A(y,R,R.getFilePath(),s,c,d);r.push(C)}}let l=e.includes("merge")||e.includes("mergeAll"),u;e.includes("fresh")?u="fresh":e.includes("memoize")?u="memoized":e.includes("scoped")?u="scoped":u="default";let f=[],p=S=>{if(S.getKind()===a.Identifier)return S.getText();if(S.getKind()===a.PropertyAccessExpression){let N=S,b=N.getExpression();return b.getKind()===a.Identifier?b.getText():N.getText().split(".")[0]}};if((e.includes("succeed")||e.includes("sync")||e.includes("effect")||e.includes("scoped")||e.includes("scopedDiscard")||e.includes("effectDiscard"))&&o.length>0&&o[0]){let S=p(o[0]);S&&f.push(S)}let g=e.includes("provide")&&!e.includes("provideService"),m=new Set;if(g&&o.length>=1&&o[0]){let S=p(o[0]);S&&m.add(S)}if(g&&o.length>=2&&o[1]){let S=p(o[1]);S&&m.add(S);let N=p(o[0]);N&&f.push(N)}if(e.includes("provideService")&&o.length>0&&o[0]){let S=p(o[0]);S&&f.push(S)}let T=S=>{if(S.type==="effect"){let b=S;for(let R of b.requiredServices??[])m.add(R.serviceId);let y=b.callee??"";(/^[A-Z][A-Za-z0-9_]*(Service|Tag)$/.test(y)||y.endsWith(".Tag"))&&m.add(y)}else if(S.type==="layer"){let b=S;for(let y of b.requires??[])m.add(y)}Jn.getOrElse(Ce(S),()=>[]).forEach(T)};if(r.forEach(T),m.size===0)try{let S=Ct(t);S?.requiredType&&S.requiredType!=="never"&&Gt(S.requiredType).forEach(b=>m.add(b))}catch{}let w=e.replace(/^Layer\./,"").replace(/^[a-zA-Z]+\./,""),W=new Set(["catchAll","catchAllCause","orDie","orElse","retry","tap","mapError","mapErrorCause","build","launch","toRuntime","passthrough","project","flatMap","flatten","annotateLogs","annotateSpans","setConfigProvider","setClock","setTracer","locally","withSpan","withLogger","withTracer","withClock","mock","suspend","unwrapEffect","unwrapScoped"]).has(w)?`Layer.${w}`:void 0,B=e.includes("MemoMap")||r.some(S=>S.type==="layer"&&S.isMemoMap===!0),h={id:E(),type:"layer",name:W,operations:r,isMerged:l,provides:f.length>0?f:void 0,requires:m.size>0?Array.from(m).sort():void 0,lifecycle:u,...B?{isMemoMap:!0}:{},location:I(t,i,s.includeLocations??!1)};return{...h,displayName:O(h),semanticRole:K(h)}});function tr(t,e,n,i,s,c,d){return q.gen(function*(){let o=t.getArguments(),r;o.length>0&&o[0]?r=yield*A(o[0],n,i,s,c,d):r={id:E(),type:"unknown",reason:"Stream source not determined"};let a=e.replace(/^Stream\./,"")||"unknown",l;e.startsWith("Stream.")&&(a==="fromIterable"||a==="fromChunk"||a==="fromChunkQueue"?l="fromIterable":a==="fromArray"?l="fromArray":a==="fromQueue"||a==="fromChunkQueue"?l="fromQueue":a==="fromPubSub"||a==="fromChunkPubSub"?l="fromPubSub":a==="fromEffect"||a==="unwrap"||a==="unwrapScoped"?l="fromEffect":a==="fromAsyncIterable"?l="fromAsyncIterable":a==="fromReadableStream"||a==="fromReadableStreamByob"?l="fromReadableStream":a==="fromEventListener"?l="fromEventListener":a==="fromSchedule"?l="fromSchedule":a==="range"?l="range":a==="tick"?l="tick":a==="iterate"||a==="iterateEffect"?l="iterate":a==="unfold"||a==="unfoldEffect"||a==="unfoldChunk"||a==="unfoldChunkEffect"?l="unfold":a==="make"?l="make":a==="empty"?l="empty":a==="never"?l="never":a==="succeed"||a==="sync"?l="succeed":(a==="fail"||a==="failSync"||a==="failCause"||a==="failCauseSync")&&(l="fail"));let u=y=>l!==void 0?"constructor":y.startsWith("run")?"sink":y==="toQueue"||y==="toPubSub"||y==="toReadableStream"||y==="toAsyncIterable"||y==="toChannel"?"conversion":y.includes("pipeThroughChannel")||y.includes("Channel")||y.includes("channel")||y.includes("duplex")?"channel":y.includes("grouped")||y.includes("sliding")||y.includes("groupBy")||y.includes("aggregate")||y.includes("window")?"windowing":y.includes("broadcast")||y==="share"?"broadcasting":y.includes("haltAfter")||y.includes("haltWhen")||y.includes("interruptAfter")?"halting":y.includes("decodeText")||y.includes("encodeText")||y.includes("splitLines")?"text":y.includes("merge")||y==="concat"||y.includes("interleave")||y.includes("zip")?"merge":y.includes("buffer")||y.includes("debounce")||y.includes("throttle")?"backpressure":y.includes("catchAll")||y.includes("catchTag")||y.includes("orElse")||y.includes("orDie")||y.includes("retry")?"error":y.includes("filter")||y.includes("take")||y.includes("drop")||y.includes("head")||y==="first"||y==="last"?"filter":y.includes("acquireRelease")||y.includes("scoped")||y.includes("ensuring")||y.includes("onDone")||y.includes("onError")?"resource":y.includes("provide")||y.includes("withSpan")||y.includes("annotate")?"context":y.includes("map")||y.includes("tap")||y.includes("flatMap")||y.includes("mapChunk")||y.includes("scan")||y.includes("transduce")?"transform":"other",f=a.includes("Effect")||a.startsWith("run")||a.includes("tap"),p=u(a),g=p==="filter"?"fewer":p==="merge"||p==="broadcasting"?"more":p==="halting"||p==="sink"||p==="windowing"?"fewer":"unknown",m,T;(a==="grouped"||a==="groupedWithin"||a.includes("sliding")||a.includes("Sliding"))&&o.length>0&&o[0]&&(m=we(o[0]),(a.includes("sliding")||a.includes("Sliding"))&&o.length>1&&o[1]&&(T=we(o[1])));let v={operation:a,isEffectful:f,estimatedCardinality:g,category:p,...m!==void 0?{windowSize:m}:{},...T!==void 0?{stride:T}:{}},W;a.startsWith("run")&&(W=a);let B;a.includes("buffer")?B="buffer":a.includes("drop")||a.includes("Drop")?B="drop":(a.includes("sliding")||a.includes("Sliding"))&&(B="sliding");let h=r,S=[v],N=l;if(r.type==="stream"){let y=r;S=[...y.pipeline,v],h=y.source,!N&&y.constructorType&&(N=y.constructorType),!W&&y.sink&&(W=y.sink),!B&&y.backpressureStrategy&&(B=y.backpressureStrategy)}let b={id:E(),type:"stream",source:h,pipeline:S,sink:W,backpressureStrategy:B,constructorType:N,location:I(t,i,s.includeLocations??!1)};return{...b,displayName:O(b),semanticRole:K(b)}})}function nr(t){return t==="fromReadableStream"||t==="fromWritableStream"||t==="fromDuplexStream"||t==="make"||t==="succeed"||t==="fail"||t==="empty"||t==="never"?"constructor":t.includes("map")||t.includes("flatMap")||t.includes("filter")||t.includes("concat")||t.includes("zip")?"transform":t.includes("pipe")||t==="pipeTo"||t==="pipeThrough"?"pipe":"other"}function rr(t,e,n,i,s,c,d){return q.gen(function*(){let o=t.getArguments(),r;o.length>0&&o[0]&&(r=yield*A(o[0],n,i,s,c,d));let a=e.replace(/^Channel\./,"")||"unknown",l=[{operation:a,category:nr(a)}];if(r?.type==="channel"){let f=r;l.unshift(...f.pipeline),r=f.source}let u={id:E(),type:"channel",source:r,pipeline:l,location:I(t,i,s.includeLocations??!1)};return{...u,displayName:O(u),semanticRole:K(u)}})}function ir(t){return t==="forEach"||t==="forEachWhile"||t==="run"||t==="runDrain"||t==="runFor"||t==="make"||t==="fromEffect"||t==="fromQueue"?"constructor":t.includes("map")||t.includes("contramap")||t.includes("filter")||t.includes("zip")?"transform":"other"}function or(t,e,n,i,s,c,d){return q.gen(function*(){let o=t.getArguments(),r;o.length>0&&o[0]&&(r=yield*A(o[0],n,i,s,c,d));let a=e.replace(/^Sink\./,"")||"unknown",l=[{operation:a,category:ir(a)}];if(r?.type==="sink"){let f=r;l.unshift(...f.pipeline),r=f.source}let u={id:E(),type:"sink",source:r,pipeline:l,location:I(t,i,s.includeLocations??!1)};return{...u,displayName:O(u),semanticRole:K(u)}})}function sr(t,e,n,i,s,c,d){let{SyntaxKind:o}=x(),r="queue",a="create",l,u,f;e.startsWith("Queue.")?(r="queue",e.includes("bounded")?l="bounded":e.includes("unbounded")?l="unbounded":e.includes("sliding")?l="sliding":e.includes("dropping")&&(l="dropping"),e.includes("offer")||e.includes("offerAll")?a="offer":e.includes("take")||e.includes("takeAll")||e.includes("poll")?a="take":a="create"):e.startsWith("PubSub.")?(r="pubsub",e.includes("bounded")?l="bounded":e.includes("unbounded")&&(l="unbounded"),e.includes("publish")?a="publish":e.includes("subscribe")?a="subscribe":a="create"):e.startsWith("Deferred.")?(r="deferred",e.includes("succeed")?a="succeed":e.includes("fail")?a="fail":e.includes("await")?a="await":a="create"):e.startsWith("Semaphore.")?(r="semaphore",e.includes("withPermit")?a="withPermit":e.includes("take")?a="take":e.includes("release")?a="release":e.includes("available")?a="available":a="create"):e.startsWith("Mailbox.")?(r="mailbox",e.includes("offer")?a="offer":e.includes("takeAll")?a="takeAll":e.includes("take")?a="take":e.includes("end")?a="end":e.includes("toStream")?a="toStream":a="create"):e.startsWith("SubscriptionRef.")?(r="subscriptionRef",e.includes("changes")?a="changes":e.includes("get")?a="get":e.includes("set")?a="set":e.includes("update")?a="update":a="create"):e.includes("makeLatch")||e.includes("Latch.")?(r="latch",e.includes("open")?a="open":e.includes("close")?a="close":e.includes("await")||e.includes("whenOpen")?a="await":a="create"):e.startsWith("FiberHandle.")?(r="fiberHandle",e.includes("run")?a="run":e.includes("await")?a="await":a="create"):e.startsWith("FiberSet.")?(r="fiberSet",e.includes("run")?a="run":e.includes("join")?a="await":a="create"):e.startsWith("FiberMap.")?(r="fiberMap",e.includes("run")?a="run":e.includes("join")?a="await":a="create"):e.startsWith("RateLimiter.")?(r="rateLimiter",e.includes("withCost")?a="withPermit":a="create"):e.startsWith("ScopedCache.")?(r="scopedCache",e.includes("make")||e.includes("Make")?a="create":e.includes("get")&&!e.includes("getOrElse")||e.includes("getOrElse")?a="get":e.includes("set")||e.includes("Set")?a="set":e.includes("invalidate")?a="invalidate":e.includes("contains")?a="contains":a="create"):e.startsWith("Cache.")?(r="cache",e.includes("make")||e.includes("Make")?a="create":e.includes("get")&&!e.includes("getOrElse")||e.includes("getOrElse")?a="get":e.includes("set")||e.includes("Set")?a="set":e.includes("invalidate")?a="invalidate":e.includes("contains")?a="contains":a="create"):e.startsWith("Reloadable.")||e.includes(".Reloadable.")?(r="reloadable",e.includes("make")||e.includes("Make")?a="create":e.includes("get")&&!e.includes("reload")?a="get":e.includes("reload")?a="reload":a="create"):e.startsWith("RcMap.")||e.includes(".RcMap.")?(r="rcMap",e.includes("make")||e.includes("Make")?a="create":e.includes("get")?a="get":e.includes("set")||e.includes("Set")?a="set":e.includes("update")?a="update":a="create"):(e.startsWith("RcRef.")||e.includes(".RcRef."))&&(r="rcRef",e.includes("make")||e.includes("Make")?a="create":e.includes("get")?a="get":e.includes("set")||e.includes("Set")?a="set":e.includes("update")?a="update":a="create");let p=t.getArguments();if(p.length>0&&l==="bounded"){let T=p[0];T?.getKind()===o.NumericLiteral&&(u=Number.parseInt(T.getText(),10))}r==="semaphore"&&(a==="take"||a==="release")&&p.length>0&&p[0]&&(f=we(p[0]));let g;if(r==="fiberHandle"&&a==="run")for(let T of p){let w=T.getText();w.includes("onlyIfMissing")&&(g={onlyIfMissing:w.includes("true")})}if(r==="mailbox"&&a==="toStream"||r==="subscriptionRef"&&a==="changes"){let T=r==="mailbox"?"fromMailbox":"fromSubscriptionRef",w={id:E(),type:"concurrency-primitive",primitive:r,operation:a,location:I(t,i,s.includeLocations??!1)},v={id:E(),type:"stream",source:{...w,displayName:O(w),semanticRole:K(w)},pipeline:[],constructorType:T,location:I(t,i,s.includeLocations??!1)};return q.succeed({...v,displayName:O(v),semanticRole:K(v)})}let m={id:E(),type:"concurrency-primitive",primitive:r,operation:a,strategy:l,capacity:u,...f!==void 0?{permitCount:f}:{},...g?{lifecycleOptions:g}:{},location:I(t,i,s.includeLocations??!1)};return q.succeed({...m,displayName:O(m),semanticRole:K(m)})}function ar(t,e,n,i,s,c,d){return q.gen(function*(){let o=t.getArguments(),r="fork",a=!1,l=!1,u;e.startsWith("Fiber.")?e.includes("awaitAll")?r="awaitAll":e.includes("join")?r="join":e.includes("await")?r="await":e.includes("interruptFork")?r="interruptFork":e.includes("interrupt")?r="interrupt":e.includes("poll")?r="poll":e.includes("status")?r="status":e.includes("all")?r="all":e.includes("children")?r="children":e.includes("dump")?r="dump":e.includes("scoped")?(r="scoped",a=!0):e.includes("inheritAll")?r="inheritAll":e.includes("mapFiber")?r="mapFiber":e.includes("mapEffect")?r="mapEffect":e.includes("map")?r="map":e.includes("roots")?r="roots":e.includes("getCurrentFiber")&&(r="getCurrentFiber"):e.includes("forkWithErrorHandler")?r="forkWithErrorHandler":e.includes("forkAll")?r="forkAll":e.includes("forkIn")?r="forkIn":e.includes("fork")&&(e.includes("forkDaemon")?(r="forkDaemon",l=!0):e.includes("forkScoped")?(r="forkScoped",a=!0):r="fork"),(r==="fork"||r==="forkScoped"||r==="forkDaemon"||r==="forkAll"||r==="forkIn"||r==="forkWithErrorHandler")&&o.length>0&&o[0]&&(u=yield*A(o[0],n,i,s,c,d));let f;if(a)f="safe";else{let g=t.getParent();for(;g;){let m=g.getText?.();if(m&&(m.includes("Effect.scoped")||m.includes("Scope.make"))){f="safe";break}if(g=g.getParent(),g&&g===n)break}}let p={id:E(),type:"fiber",operation:r,fiberSource:u,isScoped:a,isDaemon:l,...f?{scopeContext:f}:{},location:I(t,i,s.includeLocations??!1)};return{...p,displayName:O(p),semanticRole:K(p)}})}function cr(t,e,n,i,s,c,d){return q.gen(function*(){let o=t.getArguments(),{SyntaxKind:r}=x(),a;e.includes("uninterruptibleMask")?a="uninterruptibleMask":e.includes("interruptibleMask")?a="interruptibleMask":e.includes("uninterruptible")?a="uninterruptible":e.includes("interruptible")?a="interruptible":e.includes("onInterrupt")?a="onInterrupt":e.includes("disconnect")?a="disconnect":e.includes("allowInterrupt")?a="allowInterrupt":e.includes("interruptWith")?a="interruptWith":a="interrupt";let l,u,f=t.getExpression();f.getKind()===r.PropertyAccessExpression?(l=yield*A(f.getExpression(),n,i,s,c,d),o.length>0&&o[0]&&(u=yield*A(o[0],n,i,s,c,d))):o.length>0&&o[0]&&(l=yield*A(o[0],n,i,s,c,d),o.length>1&&o[1]&&(u=yield*A(o[1],n,i,s,c,d))),d.interruptionCount++;let p={id:E(),type:"interruption",interruptionType:a,source:l,handler:u,location:I(t,i,s.includeLocations??!1)};return{...p,displayName:O(p),semanticRole:K(p)}})}function dr(t){let{SyntaxKind:e}=x(),n,i,s;for(let c of t.getProperties()){if(c.getKind()!==e.PropertyAssignment)continue;let d=c.getNameNode().getText(),o=c.getInitializer();if(!o)continue;let r=o.getText();if(d==="concurrency")if(r==='"unbounded"'||r==="'unbounded'")n="unbounded";else if(r==='"sequential"'||r==="'sequential'")n="sequential";else if(r==='"inherit"'||r==="'inherit'")n="sequential";else{let a=Number.parseInt(r,10);!Number.isNaN(a)&&a>=0&&(n=a)}else d==="batching"&&(r==="true"||r==="false")?i=r==="true":d==="discard"&&(r==="true"||r==="false")&&(s=r==="true")}return{concurrency:n,batching:i,discard:s}}var lr=(t,e,n,i,s,c,d)=>q.gen(function*(){let o=t.getArguments(),r=[],{SyntaxKind:a}=x();if(o.length>0&&o[0]){let T=o[0];if(T.getKind()===a.ArrayLiteralExpression){let w=T.getElements();for(let v of w){let W=yield*A(v,n,i,s,c,d);r.push(W)}}else if(T.getKind()===a.ObjectLiteralExpression){let w=T.getProperties();for(let v of w)if(v.getKind()===a.PropertyAssignment){let W=v.getInitializer();if(W){let B=yield*A(W,n,i,s,c,d);r.push(B)}}}}let l,u,f;if(o.length>1&&o[1]?.getKind()===a.ObjectLiteralExpression){let T=dr(o[1]);l=T.concurrency,u=T.batching,f=T.discard}let p=e.includes("Par")?"parallel":"sequential";l===void 0&&(l=p==="parallel"?"unbounded":"sequential"),d.parallelCount++;let g=r.map(T=>O(T)),m={id:E(),type:"parallel",callee:e,mode:p,children:r,concurrency:l,batching:u,discard:f,branchLabels:g,location:I(t,i,s.includeLocations??!1)};return{...m,displayName:O(m),semanticRole:K(m)}}),ur=(t,e,n,i,s,c,d)=>q.gen(function*(){let o=t.getArguments(),r=[];for(let u of o)if(u){let f=yield*A(u,n,i,s,c,d);r.push(f)}d.raceCount++;let a=r.map(u=>O(u)),l={id:E(),type:"race",callee:e,children:r,raceLabels:a,location:I(t,i,s.includeLocations??!1)};return{...l,displayName:O(l),semanticRole:K(l)}}),fr=(t,e,n,i,s,c,d)=>q.gen(function*(){let o=t.getArguments(),r;e.includes("catchAllCause")?r="catchAllCause":e.includes("catchSomeCause")?r="catchSomeCause":e.includes("catchSomeDefect")?r="catchSomeDefect":e.includes("catchAllDefect")?r="catchAllDefect":e.includes("catchTags")?r="catchTags":e.includes("catchIf")?r="catchIf":e.includes("catchSome")?r="catchSome":e.includes("catchTag")?r="catchTag":e.includes("catchAll")?r="catchAll":e.includes("orElseFail")?r="orElseFail":e.includes("orElseSucceed")?r="orElseSucceed":e.includes("orElse")?r="orElse":e.includes("orDieWith")?r="orDieWith":e.includes("orDie")?r="orDie":e.includes("flip")?r="flip":e.includes("mapErrorCause")?r="mapErrorCause":e.includes("mapBoth")?r="mapBoth":e.includes("mapError")?r="mapError":e.includes("unsandbox")?r="unsandbox":e.includes("sandbox")?r="sandbox":e.includes("parallelErrors")?r="parallelErrors":e.includes("filterOrDieMessage")?r="filterOrDieMessage":e.includes("filterOrDie")?r="filterOrDie":e.includes("filterOrElse")?r="filterOrElse":e.includes("filterOrFail")?r="filterOrFail":e.includes("matchCauseEffect")?r="matchCauseEffect":e.includes("matchCause")?r="matchCause":e.includes("matchEffect")?r="matchEffect":e.includes("match")?r="match":e.includes("firstSuccessOf")?r="firstSuccessOf":e.includes("ignoreLogged")?r="ignoreLogged":e.includes("ignore")?r="ignore":e.includes("eventually")?r="eventually":r="catchAll";let a,l,u=t.getExpression();if(u.getKind()===x().SyntaxKind.PropertyAccessExpression){let T=u.getExpression();a=yield*A(T,n,i,s,c,d),o.length>0&&o[0]&&(l=yield*A(o[0],n,i,s,c,d))}else o.length>0&&o[0]?a=yield*A(o[0],n,i,s,c,d):a={id:E(),type:"unknown",reason:"Could not determine source effect"},o.length>1&&o[1]&&(l=yield*A(o[1],n,i,s,c,d));d.errorHandlerCount++;let f,p;if(r==="catchTag"){let m=o[0];m?.getKind()===x().SyntaxKind.StringLiteral&&(f=m.getLiteralValue())}else if(r==="catchTags"){let m=[...o].find(T=>T?.getKind()===x().SyntaxKind.ObjectLiteralExpression);m&&(p=m.getProperties().filter(w=>w.getKind()===x().SyntaxKind.PropertyAssignment||w.getKind()===x().SyntaxKind.MethodDeclaration).map(w=>(w.getKind()===x().SyntaxKind.PropertyAssignment,w.getName())))}let g={id:E(),type:"error-handler",handlerType:r,source:a,handler:l,errorTag:f,errorTags:p,errorEdgeLabel:f?`on ${f}`:p&&p.length>0?`on ${p.join(" | ")}`:"on error",location:I(t,i,s.includeLocations??!1)};return{...g,displayName:O(g),semanticRole:K(g)}}),pr=(t,e,n,i,s,c)=>q.gen(function*(){let d=t.getArguments(),o,r,a,l,u=t.getExpression();if(u.getKind()===x().SyntaxKind.PropertyAccessExpression){let m=u.getExpression();o=yield*A(m,e,n,i,s,c),d.length>0&&d[0]&&(r=d[0].getText(),a=yield*A(d[0],e,n,i,s,c)),l=u.getText().includes("retryOrElse")}else d.length>0&&d[0]?o=yield*A(d[0],e,n,i,s,c):o={id:E(),type:"unknown",reason:"Could not determine source effect"},d.length>1&&d[1]&&(r=d[1].getText(),a=yield*A(d[1],e,n,i,s,c)),l=d.length>2;c.retryCount++;let f=r?un(r):void 0,p={id:E(),type:"retry",source:o,schedule:r,...a!==void 0?{scheduleNode:a}:{},hasFallback:l,scheduleInfo:f,retryEdgeLabel:r?`retry: ${r}`:"retry",location:I(t,n,i.includeLocations??!1)};return{...p,displayName:O(p),semanticRole:K(p)}});function un(t){let e=t.replace(/\s+/g," "),n="custom";e.includes("Schedule.exponential")||e.includes("exponential(")?n="exponential":e.includes("Schedule.fibonacci")||e.includes("fibonacci(")?n="fibonacci":e.includes("Schedule.spaced")||e.includes("spaced(")?n="spaced":e.includes("Schedule.fixed")||e.includes("fixed(")?n="fixed":e.includes("Schedule.linear")||e.includes("linear(")?n="linear":e.includes("Schedule.cron")||e.includes("cron(")?n="cron":e.includes("Schedule.windowed")||e.includes("windowed(")?n="windowed":e.includes("Schedule.duration")||e.includes("duration(")?n="duration":e.includes("Schedule.elapsed")||e.includes("elapsed(")?n="elapsed":e.includes("Schedule.delays")||e.includes("delays(")?n="delays":e.includes("Schedule.once")||e.includes("once(")?n="once":e.includes("Schedule.stop")||e.includes("stop(")?n="stop":(e.includes("Schedule.count")||e.includes("count("))&&(n="count");let i,s=/recurs\s*\(\s*(\d+)\s*\)/.exec(e);s&&(i=Number.parseInt(s[1],10));let c=/recurUpTo\s*\(\s*(\d+)\s*\)/.exec(e);c?i=Number.parseInt(c[1],10):(e.includes("forever")||e.includes("Schedule.forever"))&&(i="unlimited");let d=e.includes("jittered")||e.includes("Schedule.jittered"),o=[];return e.includes("whileInput")&&o.push("whileInput"),e.includes("whileOutput")&&o.push("whileOutput"),e.includes("untilInput")&&o.push("untilInput"),e.includes("untilOutput")&&o.push("untilOutput"),e.includes("recurUntil")&&o.push("recurUntil"),e.includes("recurWhile")&&o.push("recurWhile"),e.includes("andThen")&&o.push("andThen"),e.includes("intersect")&&o.push("intersect"),e.includes("union")&&o.push("union"),e.includes("compose")&&o.push("compose"),e.includes("zipWith")&&o.push("zipWith"),e.includes("addDelay")&&o.push("addDelay"),e.includes("modifyDelay")&&o.push("modifyDelay"),e.includes("check")&&o.push("check"),e.includes("resetAfter")&&o.push("resetAfter"),e.includes("resetWhen")&&o.push("resetWhen"),e.includes("ensure")&&o.push("ensure"),e.includes("driver")&&o.push("driver"),e.includes("mapInput")&&o.push("mapInput"),{baseStrategy:n,maxRetries:i,jittered:d,conditions:o}}var yr=(t,e,n,i,s,c)=>q.gen(function*(){let d=t.getArguments(),o,r,a,l=t.getExpression();if(l.getKind()===x().SyntaxKind.PropertyAccessExpression){let p=l.getExpression();o=yield*A(p,e,n,i,s,c),d.length>0&&d[0]&&(r=We(d[0]));let g=We(l);a=g.includes("timeoutFail")||g.includes("timeoutTo")}else d.length>0&&d[0]?o=yield*A(d[0],e,n,i,s,c):o={id:E(),type:"unknown",reason:"Could not determine source effect"},d.length>1&&d[1]&&(r=We(d[1])),a=d.length>2;c.timeoutCount++;let u={id:E(),type:"timeout",source:o,duration:r,hasFallback:a,location:I(t,n,i.includeLocations??!1)};return{...u,displayName:O(u),semanticRole:K(u)}}),dn=(t,e,n,i,s,c,d)=>q.gen(function*(){let o=t.getArguments(),r=/([A-Za-z_$][\w$]*)$/.exec(e)?.[1]??e,a,l,u;if(r.startsWith("acquireUseRelease"))o.length>=3&&o[0]&&o[2]?(a=yield*A(o[0],n,i,s,c,d),l=yield*A(o[2],n,i,s,c,d),o[1]&&(u=yield*A(o[1],n,i,s,c,d))):(a={id:E(),type:"unknown",reason:"Missing acquire"},l={id:E(),type:"unknown",reason:"Missing release"});else if(r.startsWith("acquireRelease"))o.length>=2&&o[0]&&o[1]?(a=yield*A(o[0],n,i,s,c,d),l=yield*A(o[1],n,i,s,c,d)):(a={id:E(),type:"unknown",reason:"Missing acquire"},l={id:E(),type:"unknown",reason:"Missing release"});else if(r==="addFinalizer"||r==="onExit"||r==="onError"||r==="parallelFinalizers"||r==="sequentialFinalizers"||r==="finalizersMask"||r==="using"||r==="withEarlyRelease"){let p=t.getExpression();p.getKind()===x().SyntaxKind.PropertyAccessExpression?a=yield*A(p.getExpression(),n,i,s,c,d):a={id:E(),type:"unknown",reason:"Scoped acquire"},l=o.length>0&&o[0]?yield*A(o[0],n,i,s,c,d):{id:E(),type:"unknown",reason:"Missing finalizer"}}else if(r==="ensuring"){let p=t.getExpression();if(p.getKind()===x().SyntaxKind.PropertyAccessExpression){let m=p.getExpression();a=yield*A(m,n,i,s,c,d),l=o.length>0&&o[0]?yield*A(o[0],n,i,s,c,d):{id:E(),type:"unknown",reason:"Missing cleanup"}}else a=o.length>0&&o[0]?yield*A(o[0],n,i,s,c,d):{id:E(),type:"unknown",reason:"Missing effect"},l=o.length>1&&o[1]?yield*A(o[1],n,i,s,c,d):{id:E(),type:"unknown",reason:"Missing cleanup"}}else a={id:E(),type:"unknown",reason:"Unknown resource pattern"},l={id:E(),type:"unknown",reason:"Unknown resource pattern"};d.resourceCount++;let f={id:E(),type:"resource",acquire:a,release:l,use:u,location:I(t,i,s.includeLocations??!1)};return{...f,displayName:O(f),semanticRole:K(f)}}),gr=(t,e,n,i,s,c,d)=>q.gen(function*(){let o=t.getArguments(),r;e.includes(".if")||e==="if"?r="if":e.includes("whenEffect")?r="whenEffect":e.includes("whenFiberRef")?r="whenFiberRef":e.includes("whenRef")?r="whenRef":e.includes(".when")||e==="when"?r="when":e.includes("unlessEffect")?r="unlessEffect":e.includes(".unless")||e==="unless"?r="unless":e.includes(".option")||e==="option"?r="option":e.includes(".either")||e==="either"?r="either":e.includes(".exit")||e==="exit"?r="exit":e.includes("liftPredicate")?r="liftPredicate":r="unless";let a="<dynamic>",l,u;if(r==="if"){if(o.length>0&&o[0]&&(a=o[0].getText()),o.length>1&&o[1]){let g=o[1],{SyntaxKind:m}=x();if(g.getKind()===m.ObjectLiteralExpression){let T=g.getProperties();for(let w of T)if(w.getKind()===m.PropertyAssignment){let v=w,W=v.getName(),B=v.getInitializer();B&&(W==="onTrue"?l=yield*A(B,n,i,s,c,d):W==="onFalse"&&(u=yield*A(B,n,i,s,c,d)))}}}}else{let g=t.getExpression();if(g.getKind()===x().SyntaxKind.PropertyAccessExpression){let T=g.getExpression();l||(l=yield*A(T,n,i,s,c,d))}o.length>0&&o[0]&&(a=o[0].getText())}l||(l={id:E(),type:"unknown",reason:"Could not determine true branch"}),d.conditionalCount++;let f=a.length<=30?a:`${a.slice(0,30)}\u2026`,p={id:E(),type:"conditional",conditionalType:r,condition:a,onTrue:l,onFalse:u,conditionLabel:f,trueEdgeLabel:"true",falseEdgeLabel:"false",location:I(t,i,s.includeLocations??!1)};return{...p,displayName:O(p),semanticRole:K(p)}}),mr=(t,e,n,i,s,c,d)=>q.gen(function*(){let o=t.getArguments(),r=e.includes("forEach")?"forEach":e.includes("filterMap")?"filterMap":e.includes("filter")?"filter":e.includes("partition")?"partition":e.includes("reduce")?"reduce":e.includes("validateAll")||e.includes("validateFirst")||e.includes("validateWith")?"validate":e.includes("replicate")?"replicate":e.includes("dropUntil")?"dropUntil":e.includes("dropWhile")?"dropWhile":e.includes("takeUntil")?"takeUntil":e.includes("takeWhile")?"takeWhile":e.includes("every")?"every":e.includes("exists")?"exists":e.includes("findFirst")?"findFirst":e.includes("head")?"head":e.includes("mergeAll")?"mergeAll":"loop",a=r==="reduce"||e.includes("reduceRight")||e.includes("reduceWhile")||e.includes("reduceEffect")?2:1,l,u;o.length>0&&o[0]&&(l=o[0].getText()),o.length>a&&o[a]?u=yield*A(o[a],n,i,s,c,d):u={id:E(),type:"unknown",reason:"Could not determine loop body"},d.loopCount++;let f={id:E(),type:"loop",loopType:r,iterSource:l,body:u,location:I(t,i,s.includeLocations??!1)};return{...f,displayName:O(f),semanticRole:K(f)}}),hr=(t,e,n,i)=>{let s=et[e]??"other",c=Kt.has(s),d=t.getArguments(),o=[];if((s==="when"||s==="tag")&&d[0]){let a=d[0].getText().replace(/["'`]/g,"").trim();/^[A-Za-z_][A-Za-z0-9_]*$/.test(a)&&o.push(a)}if(s==="tags"||s==="tagsExhaustive"){let{SyntaxKind:a}=x();for(let l of d)if(l.getKind()===a.ObjectLiteralExpression){let u=l;for(let f of u.getProperties()){let p=f.getKind()===a.PropertyAssignment?f.getName():void 0;p&&o.push(p.replace(/["'`]/g,""))}}}let r={id:E(),type:"match",matchOp:s,isExhaustive:c,...o.length>0?{matchedTags:o}:{},location:I(t,n,i.includeLocations??!1)};return{...r,displayName:O(r),semanticRole:K(r)}},Sr=(t,e,n,i,s,c,d)=>q.gen(function*(){let o=tt[e]??"other",r=zt.has(o),a;if(o==="parallel"||o==="sequential"){let f=t.getArguments(),p=[];for(let g of f)if(g){let m=yield*A(g,n,i,s,c,d);p.push(m)}p.length>0&&(a=p)}let l;if(o==="fail")l="fail";else if(o==="die")l="die";else if(o==="interrupt")l="interrupt";else if((o==="parallel"||o==="sequential")&&a&&a.length>0){let f=a.filter(p=>p.type==="cause").map(p=>p.causeKind).filter(p=>p!==void 0);f.length>0&&(l=f.every(p=>p===f[0])?f[0]:"mixed")}let u={id:E(),type:"cause",causeOp:o,isConstructor:r,...a?{children:a}:{},...l?{causeKind:l}:{},location:I(t,i,s.includeLocations??!1)};return{...u,displayName:O(u),semanticRole:K(u)}}),Er=(t,e,n,i)=>{let s=nt[e]??"other",c=qt.has(s),d={id:E(),type:"exit",exitOp:s,isConstructor:c,location:I(t,n,i.includeLocations??!1)};return{...d,displayName:O(d),semanticRole:K(d)}},xr=(t,e,n,i)=>q.sync(()=>{let s=rt[e]??"other",c=t.getText(),d=un(c),o={id:E(),type:"schedule",scheduleOp:s,...d?{scheduleInfo:d}:{},location:I(t,n,i.includeLocations??!1)};return{...o,displayName:O(o),semanticRole:K(o)}}),Nr=(t,e,n,i,s,c,d)=>q.gen(function*(){let o=t.getArguments(),r=Ze[e]??"other",a=Ot.has(r),l,u;if(o.length>=2&&o[0]){if(l=yield*A(o[0],n,i,s,c,d),o[1]){let p=o[1].getText();u=p.length<=120?p:p.slice(0,120)+"\u2026"}}else if(o.length===1&&o[0]){let p=o[0].getText();u=p.length<=120?p:p.slice(0,120)+"\u2026"}d.totalEffects++;let f={id:E(),type:"transform",transformType:r,isEffectful:a,...l!==void 0?{source:l}:{},...u!==void 0?{fn:u}:{},location:I(t,i,s.includeLocations??!1)};return{...f,displayName:O(f),semanticRole:K(f)}});var mt=(t,e,n,i,s)=>Y.gen(function*(){let c=[],d=Wt(),o=yield*Tr(t.node,t.type,e,n,i,c,d),r=Ft(t.node),a=e.getProject().getTypeChecker(),l=ye(t.node,a),u=ve(t.node,a),f={id:E(),type:"program",programName:t.name,source:t.type,...t.discoveryConfidence?{discoveryConfidence:t.discoveryConfidence}:{},...t.discoveryReason?{discoveryReason:t.discoveryReason}:{},children:o,dependencies:Dt(o),errorTypes:Rt(o),typeSignature:l,requiredServices:u,location:I(t.node,n,i.includeLocations??!1),jsdocDescription:r,jsdocTags:ge(t.node)},p=cn(e);return{root:f,metadata:{analyzedAt:Date.now(),filePath:n,tsVersion:s,warnings:c,stats:d,...p.length>0?{serviceDefinitions:p}:{}},references:new Map}}),Tr=(t,e,n,i,s,c,d)=>Y.gen(function*(){switch(e){case"generator":{let o=t.getArguments();if(o.length>0&&o[0]){let r=o[0];return yield*Rr(r,n,i,s,c,d)}return[]}case"pipe":return yield*ze(t,n,i,s,c,d);case"run":{let o=t,{SyntaxKind:r}=x(),a=yield*Dr(o,n,i,s,c,d);if(Re.isSome(a))return a.value;let l=o.getArguments(),u=l.find(g=>g.getKind()===r.ArrowFunction||g.getKind()===r.FunctionExpression),f=s.enableEffectWorkflow&&u===void 0&&l.length===1?an(o,n):null,p=u??f??l[0];return p?[yield*A(p,n,i,s,c,d)]:[]}case"workflow-execute":{let o=t,r=o.getExpression().getText();return[{id:E(),type:"effect",callee:r,name:r,semanticRole:"side-effect",location:I(o,i,s.includeLocations??!1)}]}case"direct":{let o=t.getInitializer();return o?[yield*A(o,n,i,s,c,d)]:[]}case"class":{let o=t,r="Data.Class";for(let u of o.getHeritageClauses()){let f=u.getText();if(f.includes("Data.TaggedError")){r="Data.TaggedError";break}if(f.includes("Data.TaggedClass")){r="Data.TaggedClass";break}if(f.includes("Data.Error")){r="Data.Error";break}if(f.includes("Schema.TaggedRequest")){r="Schema.TaggedRequest";break}if(f.includes("Schema.TaggedError")){r="Schema.TaggedError";break}if(f.includes("Schema.TaggedClass")){r="Schema.TaggedClass";break}if(f.includes("Schema.Class")){r="Schema.Class";break}if(f.includes("Context.Tag")){r="Context.Tag";break}if(f.includes("Context.Reference")){r="Context.Reference";break}if(f.includes("Effect.Service")){r="Effect.Service";break}}let a=r.includes("Error")?"error-type":r.includes("Schema")?"schema":r==="Context.Tag"||r==="Context.Reference"||r==="Effect.Service"?"service-tag":"data",l={id:E(),type:"effect",callee:r,description:a,location:I(t,i,s.includeLocations??!1),jsdocDescription:le(o),jsdocTags:ge(o)};return d.totalEffects++,[l]}case"classProperty":{let r=t.getInitializer();return r?[yield*A(r,n,i,s,c,d)]:[]}case"classMethod":{let r=t.getBody();if(!r)return[];let{SyntaxKind:a}=x(),l=r.getDescendantsOfKind(a.ReturnStatement),u=[];for(let f of l){let p=f.getExpression();if(p){let g=yield*A(p,n,i,s,c,d);u.push(g)}}return u}default:return[]}});function ht(t){let{SyntaxKind:e}=x(),n=t.getKind();return n===e.FunctionDeclaration||n===e.FunctionExpression||n===e.ArrowFunction||n===e.MethodDeclaration||n===e.ClassDeclaration||n===e.ClassExpression||n===e.Constructor}function $(t){let{SyntaxKind:e}=x();if(t.getKind()===e.YieldExpression)return!0;let n=!1;return t.forEachChild(i=>{if(!n&&!ht(i)){if(i.getKind()===e.YieldExpression){n=!0;return}if($(i)){n=!0;return}}}),n}function br(t){let{SyntaxKind:e}=x();switch(t.getKind()){case e.StringLiteral:return t.getLiteralValue();case e.NumericLiteral:return t.getLiteralValue().toString();case e.TrueKeyword:return"true";case e.FalseKeyword:return"false";case e.NullKeyword:return"null";case e.NoSubstitutionTemplateLiteral:return t.getText().replace(/^`|`$/g,"");default:return}}function Ee(t,e){if(e.size===0)return t;let n=t;for(let[i,s]of e){let c=new RegExp(`\\b${i}\\b`,"g"),d=/^\d/.test(s)||s==="true"||s==="false"||s==="null"?s:`'${s}'`;n=n.replace(c,d)}return n}function De(t){let e=t;return e=e.replace(/\btrue\b\s*&&\s*/g,""),e=e.replace(/\s*&&\s*\btrue\b/g,""),e=e.replace(/\bfalse\b\s*\|\|\s*/g,""),e=e.replace(/\s*\|\|\s*\bfalse\b/g,""),e=e.replace(/\bfalse\b\s*&&\s*[^|&]+/g,"false"),e=e.replace(/\btrue\b\s*\|\|\s*[^|&]+/g,"true"),e.trim()}function St(t){let{SyntaxKind:e}=x();switch(t.getKind()){case e.ParenthesizedExpression:case e.AsExpression:case e.TypeAssertionExpression:case e.NonNullExpression:case e.SatisfiesExpression:{let i=t.getExpression();return St(i)}default:return t}}function fn(t){let{SyntaxKind:e}=x();if(t.length===0)return!1;let n=t[t.length-1];if(!n)return!1;let i=n.getKind();return i===e.ReturnStatement||i===e.ThrowStatement||i===e.BreakStatement||i===e.ContinueStatement}function yn(t){let{SyntaxKind:e}=x(),n=[];return t.forEachChild(i=>{ht(i)||(i.getKind()===e.YieldExpression?n.push(i):n.push(...yn(i)))}),n}var Cr=new Set(["Step.run","Step.decide","Step.branch","Step.all","Step.forEach","Step.retry","Step.race","Step.sleep"]);function Ar(t){let{SyntaxKind:e}=x();if(t.getKind()!==e.CallExpression)return!1;let n=t.getExpression().getText();return Cr.has(n)}function te(t){if(!t)return;let{SyntaxKind:e}=x();if(t.getKind()===e.StringLiteral)return t.getLiteralText()}function wr(t){if(!t)return[];let{SyntaxKind:e}=x();if(t.getKind()!==e.ObjectLiteralExpression)return[];let n=[],i=t;for(let s of i.getProperties())if(s.getKind()===e.PropertyAssignment){let c=s.getName();n.push({labels:[c],isDefault:c==="default",body:[]})}return n}function kr(t,e){return Y.gen(function*(){let{SyntaxKind:n}=x(),i=t.getExpression().getText(),s=t.getArguments();switch(i){case"Step.run":{let c=te(s[0]),d=s[1];if(!d){let r={id:E(),type:"effect",callee:"Step.run",name:c,displayName:c};return e.stats.totalEffects++,r}let o=yield*A(d,e.sourceFile,e.filePath,e.opts,e.warnings,e.stats,e.serviceScope);return{...o,displayName:c??o.displayName,name:c??o.name}}case"Step.decide":{let c=te(s[0]),d=te(s[1]);return e.stats.decisionCount++,{id:E(),type:"decision",decisionId:c??E(),label:d??c??"decision",condition:s[2]?.getText()??"unknown",source:"effect-flow",onTrue:[],onFalse:void 0}}case"Step.branch":{let c=te(s[0]),d=s[1]?.getText()??"unknown",o=s[2],r=wr(o);return e.stats.switchCount++,{id:E(),type:"switch",switchId:c,expression:d,cases:r,source:"effect-flow",hasDefault:r.some(l=>l.isDefault),hasFallthrough:!1}}case"Step.all":{let c=te(s[0]),d=s[1],o=[];if(d?.getKind()===n.ArrayLiteralExpression){let a=d;for(let l of a.getElements()){let u=yield*A(l,e.sourceFile,e.filePath,e.opts,e.warnings,e.stats,e.serviceScope);o.push(u)}}return e.stats.parallelCount++,{id:E(),type:"parallel",name:c,displayName:c,children:o,mode:"parallel",callee:"Step.all"}}case"Step.forEach":{let c=te(s[0]),d=s[1]?.getText(),o=s[2],r={id:E(),type:"effect",callee:"unknown"};return o&&(r=yield*A(o,e.sourceFile,e.filePath,e.opts,e.warnings,e.stats,e.serviceScope)),e.stats.loopCount++,{id:E(),type:"loop",name:c,displayName:c,loopType:"forEach",iterSource:d,body:r}}case"Step.retry":{let c=te(s[0]),d=s[1];if(!d){let a={id:E(),type:"effect",callee:"Step.retry",name:c,displayName:c};return e.stats.totalEffects++,a}let o=yield*A(d,e.sourceFile,e.filePath,e.opts,e.warnings,e.stats,e.serviceScope);return e.stats.retryCount++,{id:E(),type:"retry",name:c,displayName:c,source:o,hasFallback:!1}}case"Step.race":{let c=te(s[0]),d=s[1],o=[];if(d?.getKind()===n.ArrayLiteralExpression){let a=d;for(let l of a.getElements()){let u=yield*A(l,e.sourceFile,e.filePath,e.opts,e.warnings,e.stats,e.serviceScope);o.push(u)}}return e.stats.raceCount++,{id:E(),type:"race",name:c,displayName:c,children:o,callee:"Step.race"}}case"Step.sleep":{let c=te(s[0]),d={id:E(),type:"effect",callee:"Step.sleep",name:c,displayName:c,semanticRole:"scheduling"};return e.stats.totalEffects++,d}default:{let c={id:E(),type:"effect",callee:i,name:i,displayName:i};return e.stats.totalEffects++,c}}})}function pn(t,e){return Y.gen(function*(){let n=t,i=n.getText().startsWith("yield*"),s=n.getExpression();if(!i){let a={id:E(),type:"opaque",reason:"plain-yield",sourceText:t.getText().slice(0,80)};return e.stats.opaqueCount++,e.warnings.push({code:"PLAIN_YIELD",message:`Plain yield (not yield*) detected; this is unusual in Effect generators: ${t.getText().slice(0,60)}`,location:I(t,e.filePath,e.opts.includeLocations??!1)}),{variableName:Pe(t),effect:a}}if(!s){let a={id:E(),type:"opaque",reason:"yield-no-expression",sourceText:t.getText().slice(0,80)};return e.stats.opaqueCount++,{variableName:void 0,effect:a}}let c=St(s);if(e.opts.enableEffectFlow&&Ar(c)){let a=yield*kr(c,e),l=Pe(t),u={...a,displayName:a.displayName??O(a,l),semanticRole:a.semanticRole??K(a)};return{variableName:l,effect:u}}let d=yield*A(s,e.sourceFile,e.filePath,e.opts,e.warnings,e.stats,e.serviceScope),o=Pe(t);o&&d.type==="effect"&&Vt(d.callee)&&e.serviceScope.set(o,d.callee);let r={...d,displayName:O(d,o),semanticRole:d.semanticRole??K(d)};return{variableName:o,effect:r}})}function xe(t,e){return Y.gen(function*(){let n=t.getStatements(),i=[];for(let s of n){let c=yield*Be(s,e);i.push(...c)}return i})}function Be(t,e){return Y.gen(function*(){let{SyntaxKind:n}=x();switch(t.getKind()){case n.ExpressionStatement:{let c=t.getExpression();return yield*H(c,e)}case n.VariableStatement:{let s=t,c=[],{VariableDeclarationKind:d}=x(),o=s.getDeclarationKind()===d.Const;for(let r of s.getDeclarations()){let a=r.getInitializer();if(o&&a){let l=br(a);l!==void 0&&e.constValues.set(r.getName(),l)}if(a&&!$(a)&&a.getKind()===n.CallExpression){let l=a,u=l.getExpression().getText();if(u==="Context.pick"||u==="Context.omit"){let f=yield*A(l,e.sourceFile,e.filePath,e.opts,e.warnings,e.stats,e.serviceScope);f.type==="effect"&&f.description==="context"&&c.push({variableName:r.getName(),effect:f});continue}}if(a&&$(a)){let l=yield*H(a,e);if(l.length>0){let u=r.getName(),f=l[l.length-1];f&&(l[l.length-1]={...f,variableName:f.variableName??u})}c.push(...l)}}return c}case n.IfStatement:{if(!$(t))return[];let s=t,c=s.getExpression().getText(),d=yield*H(s.getExpression(),e),o=s.getThenStatement(),r=s.getElseStatement(),a=yield*fe(o,e),l=r?yield*fe(r,e):void 0,u=De(Ee(c,e.constValues)),f=u.length>40?u.slice(0,40)+"...":u,p={id:E(),type:"decision",decisionId:E(),label:f,condition:c,source:"raw-if",onTrue:a.map(g=>g.effect),onFalse:l&&l.length>0?l.map(g=>g.effect):void 0};return e.stats.decisionCount++,[...d,{effect:p}]}case n.SwitchStatement:{if(!$(t))return[];let s=t,c=s.getExpression().getText(),d=s.getClauses(),o=[],r=!1,a=!1,l=[],u=[],f=!1;for(let m of d){if(m.getKind()===n.DefaultClause)a=!0,f=!0,l.push("default");else{let W=m;l.push(W.getExpression().getText())}let w=m.getStatements();if(w.length===0){r=!0;continue}for(let W of w){let B=yield*Be(W,e);u.push(...B)}fn(w)||(r=!0),o.push({labels:l,isDefault:f,body:u.map(W=>W.effect)}),l=[],u=[],f=!1}l.length>0&&o.push({labels:l,isDefault:f,body:u.map(m=>m.effect)});let p=Ee(c,e.constValues),g={id:E(),type:"switch",switchId:E(),expression:p,cases:o,source:"raw-js",hasDefault:a,hasFallthrough:r};return e.stats.switchCount++,[{effect:g}]}case n.ForStatement:{if(!$(t))return[];let s=t,c=[],d=s.getInitializer();if(d&&$(d)){let m=yield*H(d,e);c.push(...m.map(T=>T.effect))}let o=s.getIncrementor();if(o&&$(o)){let m=yield*H(o,e);c.push(...m.map(T=>T.effect))}let r=s.getStatement(),a=yield*fe(r,e),l=Se(r),u=s.getCondition(),f=u?u.getText():void 0,p=a.length===1&&a[0]?a[0].effect:{id:E(),type:"generator",yields:a},g={id:E(),type:"loop",loopType:"for",iterSource:f,body:p,...l?{hasEarlyExit:l}:{},...c.length>0?{headerYields:c}:{}};return e.stats.loopCount++,[{effect:g}]}case n.ForOfStatement:{if(!$(t))return[];let s=t,c=s.getExpression(),d=c.getText(),o=[];if($(c)){let g=yield*H(c,e);o.push(...g.map(m=>m.effect))}let r=s.getInitializer().getText(),a=s.getStatement(),l=yield*fe(a,e),u=Se(a),f=l.length===1&&l[0]?l[0].effect:{id:E(),type:"generator",yields:l},p={id:E(),type:"loop",loopType:"forOf",iterSource:d,body:f,...u?{hasEarlyExit:u}:{},...o.length>0?{headerYields:o}:{},iterVariable:r};return e.stats.loopCount++,[{effect:p}]}case n.ForInStatement:{if(!$(t))return[];let s=t,c=s.getExpression().getText(),d=s.getInitializer().getText(),o=s.getStatement(),r=yield*fe(o,e),a=Se(o),l=r.length===1&&r[0]?r[0].effect:{id:E(),type:"generator",yields:r},u={id:E(),type:"loop",loopType:"forIn",iterSource:c,body:l,...a?{hasEarlyExit:a}:{},iterVariable:d};return e.stats.loopCount++,[{effect:u}]}case n.WhileStatement:{if(!$(t))return[];let s=t,c=s.getExpression().getText(),d=s.getStatement(),o=yield*fe(d,e),r=Se(d),a=o.length===1&&o[0]?o[0].effect:{id:E(),type:"generator",yields:o},l={id:E(),type:"loop",loopType:"while",iterSource:c,body:a,...r?{hasEarlyExit:r}:{}};return e.stats.loopCount++,[{effect:l}]}case n.DoStatement:{if(!$(t))return[];let s=t,c=s.getExpression().getText(),d=s.getStatement(),o=yield*fe(d,e),r=Se(d),a=o.length===1&&o[0]?o[0].effect:{id:E(),type:"generator",yields:o},l={id:E(),type:"loop",loopType:"doWhile",iterSource:c,body:a,...r?{hasEarlyExit:r}:{}};return e.stats.loopCount++,[{effect:l}]}case n.TryStatement:{if(!$(t))return[];let s=t,c=s.getTryBlock(),d=yield*xe(c,e),o=s.getCatchClause(),r,a;if(o){r=o.getVariableDeclaration()?.getName();let m=o.getBlock();a=yield*xe(m,e)}let l=s.getFinallyBlock(),u;l&&(u=yield*xe(l,e));let f=fn(c.getStatements()),p={id:E(),type:"try-catch",tryBody:d.map(g=>g.effect),...r?{catchVariable:r}:{},...a&&a.length>0?{catchBody:a.map(g=>g.effect)}:{},...u&&u.length>0?{finallyBody:u.map(g=>g.effect)}:{},hasTerminalInTry:f};return e.stats.tryCatchCount++,[{effect:p}]}case n.ReturnStatement:{let c=t.getExpression();if(!c||!$(c))return[];let d=yield*H(c,e),o={id:E(),type:"terminal",terminalKind:"return",value:d.map(r=>r.effect)};return e.stats.terminalCount++,[{effect:o}]}case n.ThrowStatement:{let c=t.getExpression();if(!$(c))return[];let d=yield*H(c,e),o={id:E(),type:"terminal",terminalKind:"throw",...d.length>0?{value:d.map(r=>r.effect)}:{}};return e.stats.terminalCount++,[{effect:o}]}case n.BreakStatement:return[];case n.ContinueStatement:return[];case n.LabeledStatement:return yield*Be(t.getStatement(),e);case n.Block:return yield*xe(t,e);default:return[]}})}function fe(t,e){let{SyntaxKind:n}=x();return t.getKind()===n.Block?xe(t,e):Be(t,e)}function Se(t){let{SyntaxKind:e}=x(),n=!1;return t.forEachChild(i=>{if(n||ht(i))return;let s=i.getKind();if(s===e.BreakStatement||s===e.ReturnStatement){n=!0;return}if(Se(i)){n=!0;return}}),n}function H(t,e){return Y.gen(function*(){let{SyntaxKind:n}=x();if(!$(t))return[];let i=St(t),s=i.getKind();if(s===n.YieldExpression)return[yield*pn(i,e)];if(s===n.ConditionalExpression){let o=i,r=o.getCondition().getText(),a=o.getWhenTrue(),l=o.getWhenFalse(),u=yield*H(a,e),f=yield*H(l,e);if(u.length>0||f.length>0){let p=De(Ee(r,e.constValues)),g={id:E(),type:"decision",decisionId:E(),label:p.length>40?p.slice(0,40)+"...":p,condition:r,source:"raw-ternary",onTrue:u.map(m=>m.effect),onFalse:f.length>0?f.map(m=>m.effect):void 0};return e.stats.decisionCount++,[{effect:g}]}}if(s===n.BinaryExpression){let o=i,r=o.getOperatorToken().getKind(),a=o.getLeft(),l=o.getRight();if(r===n.AmpersandAmpersandToken){let u=yield*H(l,e);if(u.length>0){let f=a.getText(),p=De(Ee(f,e.constValues)),g={id:E(),type:"decision",decisionId:E(),label:p.length>40?p.slice(0,40)+"...":p,condition:f,source:"raw-short-circuit",onTrue:u.map(m=>m.effect),onFalse:[]};return e.stats.decisionCount++,[{effect:g}]}}if(r===n.BarBarToken){let u=yield*H(l,e);if(u.length>0){let f=a.getText(),p=De(Ee(f,e.constValues)),g={id:E(),type:"decision",decisionId:E(),label:p.length>40?p.slice(0,40)+"...":p,condition:f,source:"raw-short-circuit",onTrue:[],onFalse:u.map(m=>m.effect)};return e.stats.decisionCount++,[{effect:g}]}}if(r===n.QuestionQuestionToken){let u=yield*H(l,e);if(u.length>0){let f=`${a.getText()} != null`,p=De(Ee(f,e.constValues)),g={id:E(),type:"decision",decisionId:E(),label:p.length>40?p.slice(0,40)+"...":p,condition:f,source:"raw-short-circuit",onTrue:[],onFalse:u.map(m=>m.effect)};return e.stats.decisionCount++,[{effect:g}]}}}let c=yn(t),d=[];for(let o of c){let r=yield*pn(o,e);d.push(r)}return d})}var Rr=(t,e,n,i,s,c)=>Y.gen(function*(){let{SyntaxKind:d}=x(),o;if((t.getKind()===d.ArrowFunction||t.getKind()===d.FunctionExpression||t.getKind()===d.FunctionDeclaration)&&(o=t.getBody()),!o)return[];let r=new Map,l={sourceFile:e,filePath:n,opts:i,warnings:s,stats:c,serviceScope:r,constValues:new Map},u;o.getKind()===d.Block?u=yield*xe(o,l):u=yield*H(o,l);let f=o.getDescendantsOfKind(d.CallExpression);for(let T of f){let w=se(e);if(he(T,e,w,i.knownEffectInternalsRoot)){let v=yield*gt(T,e,n,i,s,c,r);u.push({effect:v})}}let p=le(t),g={id:E(),type:"generator",yields:u,jsdocDescription:p,jsdocTags:ge(t)};return[{...g,displayName:O(g),semanticRole:K(g)}]});function Dr(t,e,n,i,s,c){let o=t.getExpression().getText();if(!(o.endsWith(".pipe")||o==="pipe"))return Y.succeed(Re.none());let a=t.getArguments(),l=a[a.length-1];if(!l)return Y.succeed(Re.none());let u=l.getText();return u.includes(".runMain")||u.includes(".runPromise")||u.includes(".runSync")||u.includes(".runFork")?Y.map(ze(t,e,n,i,s,c),p=>Re.some(p)):Y.succeed(Re.none())}var gn=(t,e)=>ne.gen(function*(){let n={...Ge,...e},{ts:i,Project:s}=x(),c=yield*ne.try({try:()=>vt(t)?new s({skipAddingFilesFromTsConfig:!0,compilerOptions:{allowJs:!0}}):Nt(n.tsConfigPath),catch:a=>new G("PROJECT_CREATION_FAILED",`Failed to create project: ${String(a)}`)}),d=c.getSourceFile(t);d&&c.removeSourceFile(d);let o=yield*ne.try({try:()=>c.addSourceFileAtPath(t),catch:a=>new G("FILE_NOT_FOUND",`Failed to load file ${t}: ${String(a)}`)}),r=yt(o,n);return r.length===0?yield*ne.fail(new G("NO_EFFECTS_FOUND",`No Effect programs found in ${t}`)):yield*ne.forEach(r,a=>mt(a,o,t,n,i.version),{concurrency:"unbounded"})}),mn=(t,e="temp.ts",n)=>ne.gen(function*(){let i={...Ge,...n},{ts:s}=x(),c=yield*ne.try({try:()=>Tt(t,e),catch:o=>new G("SOURCE_PARSE_FAILED",`Failed to parse source: ${String(o)}`)}),d=yt(c,i);return d.length===0?yield*ne.fail(new G("NO_EFFECTS_FOUND","No Effect programs found in source")):yield*ne.forEach(d,o=>mt(o,c,e,i,s.version),{concurrency:"unbounded"})});var X=t=>({single:()=>z.gen(function*(){if(t.length===1){let e=t[0];if(e)return e}return yield*z.fail(new G("NOT_SINGLE_PROGRAM",`Expected exactly 1 program, found ${String(t.length)}`))}),singleOption:()=>z.gen(function*(){if(t.length===1){let e=t[0];if(e)return qe.some(e)}return qe.none()}),all:()=>z.succeed(t),named:e=>z.gen(function*(){let n=t.find(i=>i.root.programName===e);if(!n){let i=t.map(s=>s.root.programName).join(", ");return yield*z.fail(new G("PROGRAM_NOT_FOUND",`Program "${e}" not found. Available: ${i||"(none)"}`))}return n}),first:()=>z.gen(function*(){let e=t[0];return e||(yield*z.fail(new G("NO_PROGRAMS","No programs found")))}),firstOption:()=>z.gen(function*(){let e=t[0];return e?qe.some(e):qe.none()})}),je=(t,e)=>{Ie();let n=gn(t,e);return{single:()=>z.gen(function*(){let i=yield*n;return yield*X(i).single()}),singleOption:()=>z.gen(function*(){let i=yield*n;return yield*X(i).singleOption()}).pipe(z.orDie),all:()=>n,named:i=>z.gen(function*(){let s=yield*n;return yield*X(s).named(i)}),first:()=>z.gen(function*(){let i=yield*n;return yield*X(i).first()}),firstOption:()=>z.gen(function*(){let i=yield*n;return yield*X(i).firstOption()}).pipe(z.orDie)}};je.source=(t,e)=>{Ie();let n=mn(t,"temp.ts",e);return{single:()=>z.gen(function*(){let i=yield*n;return yield*X(i).single()}),singleOption:()=>z.gen(function*(){let i=yield*n;return yield*X(i).singleOption()}).pipe(z.orDie),all:()=>n,named:i=>z.gen(function*(){let s=yield*n;return yield*X(s).named(i)}),first:()=>z.gen(function*(){let i=yield*n;return yield*X(i).first()}),firstOption:()=>z.gen(function*(){let i=yield*n;return yield*X(i).firstOption()}).pipe(z.orDie)}};var hn={enableEffectWorkflow:!0},Fr=(t,e)=>je(t,{...hn,...e});Fr.source=(t,e)=>je.source(t,{...hn,...e});export{Fr as analyze};
|
|
5
|
+
//# sourceMappingURL=effect-workflow.js.map
|