@visulima/task-runner 1.0.0-alpha.14 → 1.0.0-alpha.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/index.d.ts +191 -3
  3. package/dist/index.js +1 -1
  4. package/dist/packem_chunks/index.js +30 -10
  5. package/dist/packem_shared/{FileAccessTracker-DSNf03JW.js → FileAccessTracker-IG-Z0Ijw.js} +4 -4
  6. package/dist/packem_shared/HttpRemoteCache-D3Z6b_FO.js +1 -0
  7. package/dist/packem_shared/TaskOrchestrator-F_NrcUYn.js +2 -0
  8. package/dist/packem_shared/TrackedTaskExecutor-BiK0Coso.js +2 -0
  9. package/dist/packem_shared/collectNodeModulesBinDirs-JaeFLP9l.js +1 -0
  10. package/dist/packem_shared/createTaskGraph-D6nPDd4s.js +1 -0
  11. package/dist/packem_shared/defaultTaskRunner-CjaCnt_W.js +2 -0
  12. package/dist/packem_shared/{expandArguments-4mab7-Ds.js → expandArguments-D7qvc6Rp.js} +1 -1
  13. package/dist/packem_shared/{expandTokensInString-Cyx0qSFA.js → expandTokensInString-DVSFEdWu.js} +1 -1
  14. package/dist/packem_shared/{parseCommands-b1K2vIxj.js → parseCommands-BHsXoUCd.js} +1 -1
  15. package/dist/packem_shared/{resolveCacheMode-DXe7i-tj.js → resolveCacheMode-DEDFC-kM.js} +1 -1
  16. package/dist/packem_shared/runConcurrentFallback-SvS4ElEX.js +3 -0
  17. package/dist/packem_shared/runConcurrently-ebFf3uYs.js +1 -0
  18. package/dist/packem_shared/runTeardown-CiJJeWVf.js +1 -0
  19. package/dist/packem_shared/shell-quote-BhmqDUL1.js +1 -0
  20. package/index.js +556 -729
  21. package/package.json +12 -14
  22. package/dist/packem_shared/HttpRemoteCache-Ch-_9ejF.js +0 -1
  23. package/dist/packem_shared/TaskOrchestrator-CXeojk7n.js +0 -2
  24. package/dist/packem_shared/TrackedTaskExecutor-D3-LNT_d.js +0 -2
  25. package/dist/packem_shared/createTaskGraph-CEYYI-DL.js +0 -1
  26. package/dist/packem_shared/defaultTaskRunner-Byi0zsgh.js +0 -2
  27. package/dist/packem_shared/runConcurrentFallback-Dpqxuyv-.js +0 -3
  28. package/dist/packem_shared/runConcurrently-DYbMGyGv.js +0 -1
  29. package/dist/packem_shared/runTeardown-DBBpBAyb.js +0 -1
  30. package/dist/packem_shared/shell-quote-CksLqyXK.js +0 -1
@@ -1,7 +1,7 @@
1
- var _=Object.defineProperty;var d=(a,t)=>_(a,"name",{value:t,configurable:!0});import{createRequire as v}from"node:module";import{resolve as m,join as S}from"@visulima/path";import{O as x}from"./utils-BH2W5Wml.js";import __cjs_mod__ from "node:module"; // -- packem CommonJS require shim --
1
+ var v=Object.defineProperty;var d=(a,t)=>v(a,"name",{value:t,configurable:!0});import{createRequire as F}from"node:module";import{resolve as m,join as k}from"@visulima/path";import{withEnhancedPath as S}from"./collectNodeModulesBinDirs-JaeFLP9l.js";import{O as P}from"./utils-BH2W5Wml.js";import __cjs_mod__ from "node:module"; // -- packem CommonJS require shim --
2
2
  const require = __cjs_mod__.createRequire(import.meta.url);
3
- const F=v(import.meta.url),p=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,g=d(a=>{if(typeof p<"u"&&p.versions&&p.versions.node){const[t,e]=p.versions.node.split(".").map(Number);if(t>22||t===22&&e>=3||t===20&&e>=16)return p.getBuiltinModule(a)}return F(a)},"__cjs_getBuiltinModule"),{exec:y,execFileSync:T}=g("node:child_process"),{mkdir:b,readFile:O,rm:W}=g("node:fs/promises"),{platform:j}=g("node:os");var A=Object.defineProperty,f=d((a,t)=>A(a,"name",{value:t,configurable:!0}),"d");let l;const P=f(()=>{if(l===void 0)try{T("strace",["-V"],{stdio:"ignore"}),l=!0}catch{l=!1}return l},"isStraceAvailable"),R=[{kind:"open",pattern:/openat\(AT_FDCWD,\s*"([^"]+)"/},{kind:"open",pattern:/^(?:\d+\s+)?open\("([^"]+)"/},{kind:"creat",pattern:/(?:^|\s)creat\("([^"]+)"/},{kind:"stat",pattern:/(?:stat|lstat|newfstatat)\((?:AT_FDCWD,\s*)?"([^"]+)"/},{kind:"stat",pattern:/access\("([^"]+)"/},{kind:"getdents",pattern:/getdents(?:64)?\(\d+/}],D=f(a=>/O_WRONLY|O_RDWR|O_CREAT|O_TRUNC|O_APPEND/.test(a)?"write":"read","parseOpenAccessType");class E{static{d(this,"FileAccessTracker")}static{f(this,"FileAccessTracker")}#t;#s;#e=new Set;constructor(t,e){this.#t=m(t),this.#s=e??[/\/proc\//,/\/sys\//,/\/dev\//,/\/tmp\//,/\/etc\//,/\.so(\.\d+)*$/,/node_modules\/.package-lock\.json$/]}isSupported(){return j()==="linux"&&P()}async track(t,e={}){return this.isSupported()?this.#a(t,e):this.#c(t,e)}async#a(t,e){const c=S(this.#t,"node_modules",".cache","task-runner");await b(c,{recursive:!0});const r=S(c,`strace-${x()}.log`),s=`strace -f -qq -e trace=open,openat,creat,stat,lstat,newfstatat,access,getdents,getdents64,unlink,unlinkat,rename,renameat,renameat2 -o ${r} -- ${t}`;return new Promise(i=>{const n=y(s,{cwd:e.cwd??this.#t,env:{...process.env,...e.env},maxBuffer:52428800},async(h,o,u)=>{this.#e.delete(n);let w=[];try{const k=await O(r,"utf8");w=this.#n(k,e.cwd??this.#t)}catch{}await W(r,{force:!0}).catch(()=>{}),i({accesses:w,code:n.exitCode??1,output:o+u})});this.#e.add(n)})}#n(t,e){const c=[],r=new Set;for(const s of t.split(`
4
- `)){const i=this.#i(s,e);if(!i)continue;const n=`${i.type}:${i.path}`;r.has(n)||(r.add(n),c.push(i))}return c}#i(t,e){const c=t.includes("ENOENT");for(const{kind:s,pattern:i}of R){const n=i.exec(t);if(!n)continue;if(s==="getdents")return;const h=n[1];if(!h)continue;let o=h;if(o.startsWith("/")||(o=m(e,o)),this.#r(o)||!o.startsWith(this.#t))return;if(c)return{path:o,type:"missing"};const u=s==="open"?D(t):s==="creat"?"write":"stat";return{path:o,type:u}}const r=/(?:^|\s)(?:unlink|unlinkat|rename|renameat|renameat2)\((?:AT_FDCWD,\s*)?"([^"]+)"/.exec(t);if(r?.[1]){let s=r[1];return s.startsWith("/")||(s=m(e,s)),this.#r(s)||!s.startsWith(this.#t)?void 0:{path:s,type:"write"}}}#r(t){return this.#s.some(e=>e.test(t))}killAll(){for(const t of this.#e)try{t.kill("SIGTERM")}catch{}this.#e.clear()}async#c(t,e){return new Promise(c=>{const r=y(t,{cwd:e.cwd??this.#t,env:{...process.env,...e.env},maxBuffer:52428800},(s,i,n)=>{this.#e.delete(r),c({accesses:[],code:r.exitCode??1,output:i+n})});this.#e.add(r)})}}const B=f(a=>String.raw`
3
+ const T=F(import.meta.url),p=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,g=d(a=>{if(typeof p<"u"&&p.versions&&p.versions.node){const[t,e]=p.versions.node.split(".").map(Number);if(t>22||t===22&&e>=3||t===20&&e>=16)return p.getBuiltinModule(a)}return T(a)},"__cjs_getBuiltinModule"),{exec:y,execFileSync:b}=g("node:child_process"),{mkdir:O,readFile:W,rm:j}=g("node:fs/promises"),{platform:x}=g("node:os");var A=Object.defineProperty,l=d((a,t)=>A(a,"name",{value:t,configurable:!0}),"d");let h;const R=l(()=>{if(h===void 0)try{b("strace",["-V"],{stdio:"ignore"}),h=!0}catch{h=!1}return h},"isStraceAvailable"),D=[{kind:"open",pattern:/openat\(AT_FDCWD,\s*"([^"]+)"/},{kind:"open",pattern:/^(?:\d+\s+)?open\("([^"]+)"/},{kind:"creat",pattern:/(?:^|\s)creat\("([^"]+)"/},{kind:"stat",pattern:/(?:stat|lstat|newfstatat)\((?:AT_FDCWD,\s*)?"([^"]+)"/},{kind:"stat",pattern:/access\("([^"]+)"/},{kind:"getdents",pattern:/getdents(?:64)?\(\d+/}],N=l(a=>/O_WRONLY|O_RDWR|O_CREAT|O_TRUNC|O_APPEND/.test(a)?"write":"read","parseOpenAccessType");class M{static{d(this,"FileAccessTracker")}static{l(this,"FileAccessTracker")}#t;#s;#e=new Set;constructor(t,e){this.#t=m(t),this.#s=e??[/\/proc\//,/\/sys\//,/\/dev\//,/\/tmp\//,/\/etc\//,/\.so(\.\d+)*$/,/node_modules\/.package-lock\.json$/]}isSupported(){return x()==="linux"&&R()}async track(t,e={}){return this.isSupported()?this.#a(t,e):this.#c(t,e)}async#a(t,e){const c=k(this.#t,"node_modules",".cache","task-runner");await O(c,{recursive:!0});const r=k(c,`strace-${P()}.log`),s=`strace -f -qq -e trace=open,openat,creat,stat,lstat,newfstatat,access,getdents,getdents64,unlink,unlinkat,rename,renameat,renameat2 -o ${r} -- ${t}`;return new Promise(i=>{const n=y(s,{cwd:e.cwd??this.#t,env:S({...process.env,...e.env},e.cwd??this.#t),maxBuffer:52428800},async(f,o,u)=>{this.#e.delete(n);let w=[];try{const _=await W(r,"utf8");w=this.#n(_,e.cwd??this.#t)}catch{}await j(r,{force:!0}).catch(()=>{}),i({accesses:w,code:n.exitCode??1,output:o+u})});this.#e.add(n)})}#n(t,e){const c=[],r=new Set;for(const s of t.split(`
4
+ `)){const i=this.#i(s,e);if(!i)continue;const n=`${i.type}:${i.path}`;r.has(n)||(r.add(n),c.push(i))}return c}#i(t,e){const c=t.includes("ENOENT");for(const{kind:s,pattern:i}of D){const n=i.exec(t);if(!n)continue;if(s==="getdents")return;const f=n[1];if(!f)continue;let o=f;if(o.startsWith("/")||(o=m(e,o)),this.#r(o)||!o.startsWith(this.#t))return;if(c)return{path:o,type:"missing"};const u=s==="open"?N(t):s==="creat"?"write":"stat";return{path:o,type:u}}const r=/(?:^|\s)(?:unlink|unlinkat|rename|renameat|renameat2)\((?:AT_FDCWD,\s*)?"([^"]+)"/.exec(t);if(r?.[1]){let s=r[1];return s.startsWith("/")||(s=m(e,s)),this.#r(s)||!s.startsWith(this.#t)?void 0:{path:s,type:"write"}}}#r(t){return this.#s.some(e=>e.test(t))}killAll(){for(const t of this.#e)try{t.kill("SIGTERM")}catch{}this.#e.clear()}async#c(t,e){return new Promise(c=>{const r=y(t,{cwd:e.cwd??this.#t,env:S({...process.env,...e.env},e.cwd??this.#t),maxBuffer:52428800},(s,i,n)=>{this.#e.delete(r),c({accesses:[],code:r.exitCode??1,output:i+n})});this.#e.add(r)})}}const J=l(a=>String.raw`
5
5
  import { createWriteStream } from "node:fs";
6
6
 
7
7
  const fs = require("node:fs");
@@ -44,4 +44,4 @@ patch(fsp, "unlink", "write");
44
44
  patch(fsp, "rename", "write");
45
45
 
46
46
  process.on("beforeExit", () => { logStream.end(); });
47
- `,"generatePreloadScript");export{E as FileAccessTracker,B as generatePreloadScript};
47
+ `,"generatePreloadScript");export{M as FileAccessTracker,J as generatePreloadScript};
@@ -0,0 +1 @@
1
+ var S=Object.defineProperty;var f=(r,t)=>S(r,"name",{value:t,configurable:!0});import{createRequire as j}from"node:module";import{join as l}from"@visulima/path";import{fetchBlobToFile as E,putBlobFromFile as H}from"./containsBlob-DBWgvkM_.js";import{O as A}from"./utils-BH2W5Wml.js";const x=j(import.meta.url),c=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,u=f(r=>{if(typeof c<"u"&&c.versions&&c.versions.node){const[t,e]=c.versions.node.split(".").map(Number);if(t>22||t===22&&e>=3||t===20&&e>=16)return c.getBuiltinModule(r)}return x(r)},"__cjs_getBuiltinModule"),{createHmac:B,timingSafeEqual:C,createHash:F}=u("node:crypto"),{createWriteStream:w,createReadStream:g}=u("node:fs"),{mkdir:y,rm:v,stat:T}=u("node:fs/promises"),{tmpdir:k}=u("node:os"),{pipeline:b}=u("node:stream/promises");var q=Object.defineProperty,d=f((r,t)=>q(r,"name",{value:t,configurable:!0}),"l");const m="X-Artifact-Signature",$="X-Artifact-Attestation",_=16,z="vis-entry.tar.gz",P=d(async r=>{const t=F("sha256");let e=0;for await(const s of g(r)){const i=s;t.update(i),e+=i.byteLength}return{hash:t.digest("hex"),sizeBytes:e}},"digestFile"),R=d(async(r,t,e)=>{const s=B("sha256",r);s.update(t);const i=g(e);for await(const a of i)s.update(a);return s.digest("hex")},"computeArtifactSignatureStream"),D=d((r,t)=>{if(r.length!==t.length)return!1;try{return C(Buffer.from(r,"hex"),Buffer.from(t,"hex"))}catch{return!1}},"signaturesMatch");class X{static{f(this,"I")}static{d(this,"HttpRemoteCache")}#u;#a;#r;#i;#n;#f;#d;#m;#t;#o;#s;#g;#e;#h=new Map;constructor(t){this.#u=t.url.replace(/\/$/,""),this.#a=t.token,this.#r=t.teamId,this.#i=t.timeout??3e4;const e=t.mode??"readwrite";if(this.#n=e==="read"||e==="readwrite",this.#f=e==="write"||e==="readwrite",this.#d=t.onUploadError,this.#m=t.compression??"gzip",this.#e=t.localCasRoot,t.signing){if(t.signing.secret.length<_)throw new Error(`Remote cache signing secret must be at least ${String(_)} characters.`);this.#t=t.signing.secret,this.#o=t.signing.verifyOnDownload??!1}else this.#t=void 0,this.#o=!1;this.#s=t.attestation,this.#g=t.attestation?.requireOnDownload??!1}async close(){}async containsAction(t){if(!this.#n)return!1;try{const e=this.#c(`/v8/artifacts/${t.hash}`);return(await fetch(e,{headers:this.#l(),method:"HEAD",signal:AbortSignal.timeout(this.#i)})).ok}catch{return!1}}async fetchBlob(t,e){return this.#e?E(this.#e,t,e):!1}async retrieveAction(t){if(!this.#n||!this.#e)return null;const e=l(this.#e,"v2","tmp"),s=l(e,`.remote-${t.hash}-${A()}`);try{await y(e,{recursive:!0});const i=this.#c(`/v8/artifacts/${t.hash}`),a=await fetch(i,{headers:this.#l(),method:"GET",signal:AbortSignal.timeout(this.#i)});if(!a.ok||!a.body)return null;const o=this.#t?a.headers.get(m.toLowerCase())??a.headers.get(m):null;if(this.#t&&!o&&this.#o)return null;if(await b(a.body,w(s)),this.#t&&o){const n=await R(this.#t,t.hash,s);if(!D(o,n))return null}if(this.#s?.verifyArtifact){const n=a.headers.get($);if(n){if(!await this.#s.verifyArtifact({archivePath:s,attestation:n,hash:t.hash}))return this.#s.onReject?.(t.hash,"invalid"),null}else if(this.#g)return this.#s.onReject?.(t.hash,"missing"),null}const h=await P(s);return await H(this.#e,h,s),{exitCode:0,outputDirectories:[],outputFiles:[{digest:h,isExecutable:!1,path:z}]}}catch{return null}finally{await v(s,{force:!0}).catch(()=>{})}}async storeAction(t,e,s){if(!this.#f||e.outputFiles.length!==1||s.length===0)return!1;const i=e.outputFiles[0];if(!i)return!1;const a=s.find(n=>n.digest.hash===i.digest.hash);if(!a)return!1;const o=this.#h.get(t.hash);if(o)return o;const h=this.#p(t,a).finally(()=>{this.#h.delete(t.hash)});return this.#h.set(t.hash,h),h}async#p(t,e){const s=this.#e?l(this.#e,"v2","tmp"):l(k(),"visulima-task-runner-uploads"),i=l(s,`.upload-${t.hash}-${A()}`);try{await y(s,{recursive:!0});const a=await e.open();await b(a,w(i));const o=this.#c(`/v8/artifacts/${t.hash}`),{size:h}=await T(i),n={...this.#l(),"Content-Length":String(h),"Content-Type":"application/octet-stream","X-Artifact-Compression":this.#m};if(this.#t&&(n[m]=await R(this.#t,t.hash,i)),this.#s?.signArtifact){const p=await this.#s.signArtifact({archivePath:i,hash:t.hash});p!==null&&(n[$]=p)}return(await fetch(o,{body:g(i),duplex:"half",headers:n,method:"PUT",signal:AbortSignal.timeout(this.#i)})).ok}catch(a){return this.#d?.(t.hash,a),!1}finally{await v(i,{force:!0}).catch(()=>{})}}#c(t){const e=`${this.#u}${t}`;return this.#r?`${e}?teamId=${encodeURIComponent(this.#r)}`:e}#l(){const t={};return this.#a&&(t.Authorization=`Bearer ${this.#a}`),t}}export{X as HttpRemoteCache};
@@ -0,0 +1,2 @@
1
+ var M=Object.defineProperty;var k=(r,t)=>M(r,"name",{value:t,configurable:!0});import{j as w,v as O,f as j}from"./utils-BH2W5Wml.js";import{resolve as F,join as E}from"@visulima/path";import{retrieveByTaskHash as H,storeByTaskHash as W}from"./actionDigestForTaskHash-BOL4fZ9v.js";import{FingerprintManager as x}from"./FingerprintManager-CYW2EwLc.js";import{generateRunSummary as I,writeLastRunSummary as P,writeRunSummary as $}from"./generateRunSummary-beN13GH4.js";import{computeTaskHash as A}from"./computeTaskHash-Xxd8v-X3.js";import{TrackedTaskExecutor as L}from"./TrackedTaskExecutor-BiK0Coso.js";import{getCurrentBranch as N,evaluateWhen as B,explainWhen as G}from"./getCurrentBranch-D-qoZByx.js";var z=Object.defineProperty,p=k((r,t)=>z(r,"name",{value:t,configurable:!0}),"l");const U=p(r=>{const t=j();t.update(r.commandHash);for(const s of Object.keys(r.fileHashes).toSorted())t.update(s),t.update(r.fileHashes[s]);for(const s of r.missingFiles)t.update(`missing:${s}`);for(const s of Object.keys(r.directoryListings).toSorted())t.update(`dir:${s}`),t.update(JSON.stringify(r.directoryListings[s]));for(const s of Object.keys(r.envHashes).toSorted())t.update(s),t.update(r.envHashes[s]);return t.digest()},"hashFingerprint"),b=p((r,t)=>{if(!r||r.length===0||!t)return!1;for(const s of r)try{if(new RegExp(s).test(t))return!0}catch{}return!1},"detectWarnings"),D=p(r=>r!==void 0&&r.length>0&&r.every(t=>typeof t!="string"&&t.auto),"isAutoOnlyOutputs"),S="Outputs are `{ auto: true }` only, but no file writes were captured (write tracking unavailable for this task) — not caching, so a later hit can't restore a missing build artifact.",y=p(()=>{let r;return{promise:new Promise(t=>{r=t}),resolve:r}},"createDeferred");class tt{static{k(this,"N")}static{p(this,"TaskOrchestrator")}#r;#e;#n;#t;#m;#a;#g;#d;#w;#s;#h;#k;#y;#l;#C;#c;#R;#v;#M;#T;#u;#i=new Map;#j;#O;#b;#o=new Map;#p=y();#f=!1;constructor(t){this.#r=t.taskHasher,this.#e=t.cache,this.#n=t.scheduler,this.#t=t.lifeCycle,this.#m=t.taskExecutor,this.#a=t.workspaceRoot,this.#g=t.skipCache??!1,this.#d=t.captureOutput??!0,this.#w=t.autoFingerprint??!1,this.#k=t.fingerprintEnvPatterns??[],this.#y=t.untrackedEnvVars??[],this.#l=t.cacheDiagnostics??!1,this.#C=t.resolveCommand??void 0,this.#c=t.remoteCache??void 0,this.#R=t.onRemoteUploadError??void 0,this.#v=t.dryRun??!1,this.#M=t.summarize??!1,this.#T=t.dataDirectory,this.#u=t.taskGraph??void 0,this.#j=Date.now(),this.#O=t.alwaysTasks??[],this.#b=t.whenContext??{branch:N(t.workspaceRoot)};const s=this.#u?Object.values(this.#u.tasks).some(e=>e.hashMode==="trace"):!1;this.#w||s?(this.#s=new x(t.workspaceRoot),this.#h=new L(t.workspaceRoot)):(this.#s=void 0,this.#h=void 0)}async run(){this.#t.startCommand?.();const t=p(()=>{this.#f=!0,this.#h?.killAll()},"signalHandler");process.on("SIGINT",t),process.on("SIGTERM",t);try{await this.#x(),this.#O.length>0&&!this.#f&&await this.#W()}finally{process.removeListener("SIGINT",t),process.removeListener("SIGTERM",t),this.#t.endCommand?.()}if(this.#u&&!this.#f){const s=I(this.#i,this.#u,this.#j);await P(s,this.#a,{dataDirectory:this.#T}),this.#M&&await $(s,this.#a,{dataDirectory:this.#T})}return this.#i}async#W(){for(const t of this.#O){this.#t.scheduleTask?.(t),this.#t.startTasks?.([t]);let s;if(this.#E(t))s=this.#H(t);else{const e=Date.now();try{s=await this.#S(t,e)}catch(i){s=w(t,i,e),this.#i.set(t.id,s)}}this.#t.endTasks?.([s]),s.terminalOutput&&this.#t.printTaskTerminalOutput?.(s.task,s.status,s.terminalOutput)}}async#x(){for(;!this.#n.isComplete()&&!this.#f;){const t=this.#n.getNextBatch();if(t.length===0){if(this.#o.size>0){await this.#p.promise,this.#p=y();continue}if(this.#n.remainingCount>0)throw new Error("Deadlock detected: tasks remain but none can be scheduled. This may indicate a circular dependency.");break}for(const s of t)this.#t.scheduleTask?.(s),this.#n.startTask(s.id);this.#t.startTasks?.(t);for(const s of t){const e=(this.#E(s)?Promise.resolve(this.#H(s)):this.#I(s)?this.#$(s):this.#P(s)).catch(i=>{const a=w(s,i,Date.now());return this.#i.set(s.id,a),a}).then(i=>(this.#o.delete(s.id),this.#n.completeTask(s.id),this.#t.endTasks?.([i]),i.terminalOutput&&this.#t.printTaskTerminalOutput?.(i.task,i.status,i.terminalOutput),this.#p.resolve(),i));this.#o.set(s.id,e)}this.#o.size>0&&(await this.#p.promise,this.#p=y())}this.#o.size>0&&await Promise.all(this.#o.values())}#I(t){return this.#w?!0:t.hashMode==="trace"&&this.#s!==void 0}async#P(t){const s=Date.now(),e=await this.#r.hashTask(t),i=A(e);if(Object.assign(t,{hash:i,hashDetails:e}),this.#v)return this.#F(t,s);if(!this.#g&&t.cache!==!1){const n=await this.#e.get(i);if(n)return this.#D(t,n,s);if(this.#c&&await H(this.#c,i,this.#e.cacheDirectory)){const h=await this.#e.get(i);if(h){const c=await this.#D(t,h,s);return c.status="remote-cache",c}}}const a=await this.#S(t,s);return a.code===0&&t.cache!==!1&&t.hash&&this.#c&&W(this.#c,t.hash,this.#e.cacheDirectory,this.#R).catch(()=>{}),a}async#$(t){const s=Date.now();if(this.#v)return this.#F(t,s);if(!this.#g&&t.cache!==!1){const e=await this.#e.getByTaskId(t.id);if(e?.fingerprint&&this.#s){const i=this.#s.validateCommand(e.fingerprint,`${t.target.project}:${t.target.target}`,t.overrides);if(i)this.#l&&this.#t.printCacheMiss?.(t,this.#s.formatMissReasons([i]));else{const a=await this.#s.validate(e.fingerprint);if(!a)return this.#D(t,e,s);this.#l&&this.#t.printCacheMiss?.(t,this.#s.formatMissReasons(a))}}else this.#l&&!e&&this.#t.printCacheMiss?.(t,`Cache miss reasons:
2
+ - No previous fingerprint found (first run)`)}return this.#L(t,s)}async#D(t,s,e){const i=await this.#e.restoreOutputs(s.hash,t.outputs,t.cacheRestore)?"local-cache":"local-cache-kept-existing",a={code:s.code,endTime:Date.now(),startTime:e,status:i,task:t,terminalOutput:s.terminalOutput};return this.#i.set(t.id,a),a}async#S(t,s){try{const{code:e,retryAttempts:i,terminalOutput:a}=await this.#m(t,{captureOutput:this.#d,cwd:O(this.#a,t)}),n=e===0&&b(t.warningPattern,a),h={code:e,endTime:Date.now(),hadWarnings:n||void 0,retryAttempts:i&&i>0?i:void 0,startTime:s,status:e===0?"success":"failure",task:t,terminalOutput:a};this.#i.set(t.id,h);const c=n&&t.cacheOnWarning===!1;if(e===0&&t.cache!==!1&&t.hash&&!c){const d=await this.#A(t);d.length>0?(h.selfModified=!0,this.#t.printSelfModifyingSkip?.(t,d)):D(t.outputs)?this.#t.printEmptyFingerprintWarning?.(t,S):await this.#e.put(t.hash,a,t.outputs,e)}return h}catch(e){const i=w(t,e,s);return this.#i.set(t.id,i),i}}async#A(t){const s=t.hashDetails?.nodes;if(!s||typeof this.#r.rehashFile!="function")return[];const e=this.#r.rehashFile.bind(this.#r),i=Object.entries(s);return(await Promise.all(i.map(async([a,n])=>{const h=F(this.#a,a),c=await e(h);return c!==void 0&&c!==n?a:void 0}))).filter(a=>a!==void 0)}async#L(t,s){if(!this.#s)return this.#S(t,s);const e=`${t.target.project}:${t.target.target}`,i=O(this.#a,t);try{let a,n,h,c=0,d=!1,f,m;const v=this.#C?.(t);if(v&&this.#h?.isTrackingSupported&&this.#h){const o=await this.#h.execute(t,{captureOutput:this.#d,cwd:i},v);a=o.code,n=o.terminalOutput,c=o.accesses.length,d=!0,m=o.accesses.filter(u=>u.type==="write").map(u=>u.path),h=await this.#s.createFingerprint(o.accesses,e,t.overrides,process.env,this.#k,this.#y)}else{const o=await this.#m(t,{captureOutput:this.#d,cwd:i});a=o.code,n=o.terminalOutput,f=o.retryAttempts;const u=await this.#r.hashTask(t),l=Object.keys(u.nodes).map(R=>({path:E(this.#a,R),type:"read"}));h=await this.#s.createFingerprint(l,e,t.overrides,process.env,this.#k,this.#y)}const T=a===0&&b(t.warningPattern,n),g={code:a,endTime:Date.now(),hadWarnings:T||void 0,retryAttempts:f&&f>0?f:void 0,startTime:s,status:a===0?"success":"failure",task:t,terminalOutput:n};this.#i.set(t.id,g);const C=T&&t.cacheOnWarning===!1;if(a===0&&t.cache!==!1&&h&&!C){const o=this.#N(h),u=this.#B(h,d,c);if(o.length>0)g.selfModified=!0,this.#t.printSelfModifyingSkip?.(t,o);else if(u)g.emptyFingerprint=!0,this.#t.printEmptyFingerprintWarning?.(t,u);else if(D(t.outputs)&&(!m||m.length===0))this.#t.printEmptyFingerprintWarning?.(t,S);else{const l=U(h);Object.assign(t,{hash:l}),await this.#e.put(l,n,t.outputs,a,h,m),await this.#e.setTaskIndex(t.id,l)}}return g}catch(a){const n=w(t,a,s);return this.#i.set(t.id,n),n}}#N(t){return t.modifiedInputs??[]}#B(t,s,e){return!s||Object.keys(t.fileHashes).length>0||Object.keys(t.directoryListings).length>0||t.missingFiles.length>0?void 0:e===0?"Tracker observed no workspace file accesses — likely a static binary on a platform without strace. Caching skipped.":"Tracker returned accesses but none fell inside the workspace. Caching skipped to avoid false cache hits."}#F(t,s){const e=t.hash?`[hash: ${t.hash.slice(0,12)}...]`:"[no hash]",i={code:0,endTime:Date.now(),startTime:s,status:"skipped",task:t,terminalOutput:`DRY RUN ${e}`};return this.#i.set(t.id,i),i}#E(t){return t.when?!B(t.when,this.#b):!1}#H(t){const s=G(t.when,this.#b),e=Date.now();this.#t.printWhenSkip?.(t,s);const i={code:0,endTime:e,startTime:e,status:"skipped",task:t,terminalOutput:s?`Skipped: ${s}`:"Skipped by when clause"};return this.#i.set(t.id,i),i}}export{tt as TaskOrchestrator};
@@ -0,0 +1,2 @@
1
+ var y=Object.defineProperty;var a=(o,t)=>y(o,"name",{value:t,configurable:!0});import{createRequire as g}from"node:module";import{join as n}from"@visulima/path";import{FileAccessTracker as E,generatePreloadScript as P}from"./FileAccessTracker-IG-Z0Ijw.js";import{withEnhancedPath as b}from"./collectNodeModulesBinDirs-JaeFLP9l.js";import{O as N}from"./utils-BH2W5Wml.js";const S=g(import.meta.url),i=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,m=a(o=>{if(typeof i<"u"&&i.versions&&i.versions.node){const[t,r]=i.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return i.getBuiltinModule(o)}return S(o)},"__cjs_getBuiltinModule"),{exec:T}=m("node:child_process"),{mkdir:O,writeFile:j,readFile:x,rm:l}=m("node:fs/promises");var R=Object.defineProperty,$=a((o,t)=>R(o,"name",{value:t,configurable:!0}),"u");class C{static{a(this,"TrackedTaskExecutor")}static{$(this,"TrackedTaskExecutor")}#t;#e;#r=new Set;constructor(t){this.#e=t,this.#t=new E(t)}get isTrackingSupported(){return!0}get isStraceSupported(){return this.#t.isSupported()}async execute(t,r,c){const s=r.cwd??(t.projectRoot?n(this.#e,t.projectRoot):this.#e);if(this.#t.isSupported()){const e=await this.#t.track(c,{cwd:s,env:r.env});return{accesses:e.accesses,code:e.code,terminalOutput:e.output}}return this.#s(c,s,r.env)}async#s(t,r,c){const s=n(this.#e,"node_modules",".cache","task-runner");await O(s,{recursive:!0});const e=N(),p=n(s,`preload-${e}.log`),u=n(s,`preload-${e}.mjs`),f=P(p);return await j(u,f),new Promise(_=>{const h=T(t,{cwd:r,env:b({...process.env,...c,NODE_OPTIONS:`${process.env.NODE_OPTIONS??""} --import ${u}`.trim()},r),maxBuffer:52428800},async(q,w,k)=>{this.#r.delete(h);let d=[];try{const v=await x(p,"utf8");d=this.#o(v)}catch{}await l(p,{force:!0}).catch(()=>{}),await l(u,{force:!0}).catch(()=>{}),_({accesses:d,code:h.exitCode??1,terminalOutput:w+k})});this.#r.add(h)})}killAll(){this.#t.killAll();for(const t of this.#r)try{t.kill("SIGTERM")}catch{}this.#r.clear()}#o(t){const r=[],c=new Set;for(const s of t.split(`
2
+ `))if(s.trim())try{const e=JSON.parse(s);e.path&&!c.has(e.path)&&(c.add(e.path),e.path.startsWith(this.#e)&&r.push({path:e.path,type:e.type}))}catch{}return r}}export{C as TrackedTaskExecutor};
@@ -0,0 +1 @@
1
+ var d=Object.defineProperty;var c=(n,e)=>d(n,"name",{value:e,configurable:!0});import{delimiter as a,isAbsolute as h,resolve as l,join as u,dirname as P}from"@visulima/path";var f=Object.defineProperty,i=c((n,e)=>f(n,"name",{value:e,configurable:!0}),"i");const v=64,b=i(n=>{const e=h(n)?n:l(process.cwd(),n),t=[];let o=e,r=0;for(;r<v;){t.push(u(o,"node_modules",".bin"));const s=P(o);if(s===o)break;o=s,r+=1}return t},"collectNodeModulesBinDirs"),p=i(n=>{if(n){const e=n.PATH;if(e!==void 0)return e;const t=n.Path;if(t!==void 0)return t}return process.env.PATH??process.env.Path??""},"readPath"),m=i((n,e)=>{const t=b(n),o=p(e);if(t.length===0)return o;const r=t.join(a);return o.length>0?`${r}${a}${o}`:r},"buildEnhancedPath"),H=i((n,e)=>{const t={...n};return t.PATH=m(e,n),"Path"in t&&t.Path!==void 0&&(t.Path=t.PATH),t},"withEnhancedPath");export{m as buildEnhancedPath,b as collectNodeModulesBinDirs,H as withEnhancedPath};
@@ -0,0 +1 @@
1
+ var m=Object.defineProperty;var h=(t,e)=>m(t,"name",{value:e,configurable:!0});var v=Object.defineProperty,p=h((t,e)=>v(t,"name",{value:e,configurable:!0}),"p");const l=p(t=>{const e=[t.project,t.target];return t.configuration&&e.push(t.configuration),e.join(":")},"getTaskId"),R=p(t=>{const e=t.split(":");if(e.length<2)throw new Error(`Invalid task ID: ${t}`);return{configuration:e[2],project:e[0],target:e[1]}},"parseTaskId"),f=p(t=>{if(t===void 0)return;const e=typeof t=="string"?[t]:t;return e.length===0?void 0:e},"normalizeWarningPattern"),j=p((t,e,s,o)=>{const a=s.projects[t],r=a?.targets?.[e],i=o?.[e];return(r?.outputs??i?.outputs??[]).map(g=>typeof g=="string"?g.replace("{projectRoot}",a?.root??"").replace("{projectName}",t):g)},"getTaskOutputs"),d=p((t,e,s,o,a)=>{const r=o.projects[t];if(!r)return[];if(!(r.targets?.[e]!==void 0||a?.[e]!==void 0))return[];const i={project:t,target:e};return[{always:r.targets?.[e]?.always??a?.[e]?.always,cache:r.targets?.[e]?.cache??a?.[e]?.cache,cacheOnWarning:r.targets?.[e]?.cacheOnWarning??a?.[e]?.cacheOnWarning,cacheRestore:r.targets?.[e]?.cacheRestore??a?.[e]?.cacheRestore,concurrencyGroup:r.targets?.[e]?.concurrencyGroup??a?.[e]?.concurrencyGroup,hashMode:r.targets?.[e]?.hashMode??a?.[e]?.hashMode,id:l(i),maxConcurrent:r.targets?.[e]?.maxConcurrent??a?.[e]?.maxConcurrent,outputs:j(t,e,o,a),overrides:s,parallelism:r.targets?.[e]?.parallelism??a?.[e]?.parallelism,projectRoot:r.root,target:i,warningPattern:f(r.targets?.[e]?.warningPattern??a?.[e]?.warningPattern),when:r.targets?.[e]?.when??a?.[e]?.when}]},"getSameProjectTask"),w=p((t,e,s,o,a,r)=>{const i=[],g=a.dependencies[t]??[];for(const n of g){const c=o.projects[n.target];if(c&&(c.targets?.[e]!==void 0||r?.[e]!==void 0)){const u={project:n.target,target:e};i.push({always:c.targets?.[e]?.always??r?.[e]?.always,cache:c.targets?.[e]?.cache??r?.[e]?.cache,cacheOnWarning:c.targets?.[e]?.cacheOnWarning??r?.[e]?.cacheOnWarning,cacheRestore:c.targets?.[e]?.cacheRestore??r?.[e]?.cacheRestore,concurrencyGroup:c.targets?.[e]?.concurrencyGroup??r?.[e]?.concurrencyGroup,hashMode:c.targets?.[e]?.hashMode??r?.[e]?.hashMode,id:l(u),maxConcurrent:c.targets?.[e]?.maxConcurrent??r?.[e]?.maxConcurrent,outputs:j(n.target,e,o,r),overrides:s,parallelism:c.targets?.[e]?.parallelism??r?.[e]?.parallelism,projectRoot:c.root,target:u,warningPattern:f(c.targets?.[e]?.warningPattern??r?.[e]?.warningPattern),when:c.targets?.[e]?.when??r?.[e]?.when})}}return i},"getDependencyProjectTasks"),k=p((t,e,s,o,a)=>{if(e.startsWith("^")){const r=e.slice(1);return w(t.target.project,r,{},s,o,a)}return d(t.target.project,e,{},s,a)},"resolveStringDependency"),O=p((t,e,s,o,a)=>{const r=[];if(e.dependencies)r.push(...w(t.target.project,e.target,e.params==="forward"?t.overrides:{},s,o,a));else if(e.projects){const i=Array.isArray(e.projects)?e.projects:[e.projects];for(const g of i)r.push(...d(g,e.target,e.params==="forward"?t.overrides:{},s,a))}else r.push(...d(t.target.project,e.target,e.params==="forward"?t.overrides:{},s,a));return r},"resolveConfigDependency"),P=p((t,e,s,o,a)=>typeof e=="string"?k(t,e,s,o,a):O(t,e,s,o,a),"resolveDependency"),T=p((t,e)=>{const{projectGraph:s,targetDefaults:o,workspace:a}=e,r=a.projects[t.target.project];if(!r)return[];const i=r.targets?.[t.target.target],g=o?.[t.target.target],n=i?.dependsOn??g?.dependsOn??[],c=[];for(const u of n){const y=P(t,u,a,s,o);c.push(...y)}return c},"resolveTaskDependencies"),C=p((t,e)=>{const s={},o={},a=new Set,r=[...t];for(;r.length>0;){const n=r.shift();if(!n)break;if(a.has(n.id))continue;a.add(n.id),s[n.id]=n,o[n.id]=[];const c=T(n,e);for(const u of c)o[n.id]?.push(u.id),a.has(u.id)||r.push(u)}const i=new Set;for(const n of Object.values(o))for(const c of n)i.add(c);const g=Object.keys(s).filter(n=>!i.has(n));return{dependencies:o,roots:g,tasks:s}},"createTaskGraph");export{C as createTaskGraph,l as getTaskId,R as parseTaskId};
@@ -0,0 +1,2 @@
1
+ var x=Object.defineProperty;var g=(e,a)=>x(e,"name",{value:a,configurable:!0});import{X as D}from"./utils-BH2W5Wml.js";import{createRemoteCacheBackend as I}from"./resolveCacheMode-DEDFC-kM.js";import{Cache as F}from"./Cache-C540ZPYk.js";import{inferFrameworkEnvPatterns as O}from"./detectFrameworks-WVZJOPgN.js";import{IncrementalFileHasher as H}from"./IncrementalFileHasher-CdLXVB5F.js";import{InProcessTaskHasher as G}from"./computeTaskHash-Xxd8v-X3.js";import{TaskOrchestrator as P}from"./TaskOrchestrator-F_NrcUYn.js";import{TaskScheduler as S}from"./parsePartition-uzPNgtPp.js";var V=Object.defineProperty,m=g((e,a)=>V(e,"name",{value:a,configurable:!0}),"i");const z=m(e=>{const a=[],o={};for(const[t,s]of Object.entries(e.tasks))s.always?a.push(s):o[t]=s;if(a.length===0)return{alwaysTasks:[],graph:e};const i=new Set(a.map(t=>t.id)),c={};for(const[t,s]of Object.entries(e.dependencies))i.has(t)||(c[t]=s.filter(n=>!i.has(n)));return{alwaysTasks:a,graph:{dependencies:c,roots:e.roots.filter(t=>!i.has(t)),tasks:o}}},"partitionAlwaysTasks"),A=m(e=>{if(!e||e.length===0)return;const a=[...e].sort().map(o=>`${o}=${process.env[o]??""}`).join(`
2
+ `);return D(Buffer.from(a)).slice(0,16)},"computeGlobalEnvNamespace"),B=m(e=>typeof e=="number"?Math.max(1,e):e===!1?1:3,"resolveParallel"),Q=m(async(e,a,o)=>{const{lifeCycle:i,projectGraph:c,taskExecutor:t,taskGraph:s,workspaceRoot:n}=o,v=a.namespaceByGlobalEnv?A(a.globalEnv):void 0,k=new F({cacheDirectory:a.cacheDirectory,cacheNamespace:v,maxCacheAge:a.maxCacheAge,maxCacheSize:a.maxCacheSize,workspaceRoot:n});k.removeOldEntries().catch(()=>{});const p={};for(const[r,d]of Object.entries(c.nodes))p[r]=d.data;const l=a.incrementalFileHashing?new H({workspaceRoot:n}):void 0;l&&await l.load();const w=new G({autoEnvVars:a.autoEnvVars,envVars:a.envVars,frameworkInference:a.frameworkInference,globalEnv:a.globalEnv,globalInputs:a.globalInputs,incrementalHasher:l,namedInputs:a.namedInputs,onFingerprint:a.onFingerprint,projects:p,smartLockfileHashing:a.smartLockfileHashing,targetDefaults:a.targetDefaults,workspaceRoot:n}),{alwaysTasks:y,graph:u}=z(s),E=B(a.parallel),C=new S(u,c,E,a.concurrencyGroups),b=Object.values(u.tasks).some(r=>r.hashMode==="trace"),R=m(r=>{const d=c.nodes[r.target.project]?.data.targets?.[r.target.target],j=a.targetDefaults?.[r.target.target];return d?.command??j?.command},"resolveCommand"),h=a.remoteCache?I(a.remoteCache):void 0;let f=a.fingerprintEnvPatterns??[];if(a.frameworkInference&&(a.autoFingerprint||b)){const r=await O(n,p);f=[...new Set([...f,...r])]}const T=new P({alwaysTasks:y,autoFingerprint:a.autoFingerprint,cache:k,cacheDiagnostics:a.cacheDiagnostics,captureOutput:!0,dataDirectory:a.dataDirectory,dryRun:a.dryRun,fingerprintEnvPatterns:f,lifeCycle:i,onRemoteUploadError:a.remoteCache?.onUploadError,remoteCache:h,resolveCommand:R,scheduler:C,skipCache:a.skipNxCache,summarize:a.summarize,taskExecutor:t,taskGraph:u,taskHasher:w,untrackedEnvVars:a.untrackedEnvVars,workspaceRoot:n});try{const r=await T.run();return l&&await l.save().catch(()=>{}),r}finally{h&&await h.close().catch(()=>{})}},"defaultTaskRunner");export{Q as defaultTaskRunner};
@@ -1 +1 @@
1
- var c=Object.defineProperty;var s=(t,e)=>c(t,"name",{value:e,configurable:!0});import{s as o}from"./shell-quote-CksLqyXK.js";var m=Object.defineProperty,i=s((t,e)=>m(t,"name",{value:e,configurable:!0}),"u");const l=/\\?\{([@*]|[1-9]\d*)\}/g,g=i((t,e)=>{if(e.length===0)return t;const u=t.command.replaceAll(l,(a,n)=>{if(a.startsWith("\\"))return a.slice(1);const r=Number(n);return!Number.isNaN(r)&&r<=e.length?o(e[r-1]):n==="@"?e.map(o).join(" "):n==="*"?o(e.join(" ")):""});return{...t,command:u}},"expandArguments");export{g as expandArguments};
1
+ var c=Object.defineProperty;var s=(t,e)=>c(t,"name",{value:e,configurable:!0});import{s as o}from"./shell-quote-BhmqDUL1.js";var m=Object.defineProperty,i=s((t,e)=>m(t,"name",{value:e,configurable:!0}),"u");const l=/\\?\{([@*]|[1-9]\d*)\}/g,g=i((t,e)=>{if(e.length===0)return t;const u=t.command.replaceAll(l,(a,n)=>{if(a.startsWith("\\"))return a.slice(1);const r=Number(n);return!Number.isNaN(r)&&r<=e.length?o(e[r-1]):n==="@"?e.map(o).join(" "):n==="*"?o(e.join(" ")):""});return{...t,command:u}},"expandArguments");export{g as expandArguments};
@@ -1 +1 @@
1
- var m=Object.defineProperty;var l=(e,t)=>m(e,"name",{value:t,configurable:!0});import{s as f}from"./shell-quote-CksLqyXK.js";var p=Object.defineProperty,a=l((e,t)=>p(e,"name",{value:t,configurable:!0}),"s");const u={"affected.files":"affectedFiles",changed_files:"affectedFiles"},g=/\\?\$\{\s*([\w.]+)\s*(?:\|\s*flag\s+(["'])(.*?)\2\s*)?\}/g,h=a((e,t)=>{if(e===t)return".";const n=`${t}/`;if(e.startsWith(n))return e.slice(n.length)},"rewriteForProjectRoot"),j=a((e,t)=>e.replaceAll(g,(n,d,v,o)=>{if(n.startsWith("\\"))return n.slice(1);const i=u[d];if(!i)return n;const c=t[i]??[],s=t.projectRoot?c.map(r=>h(r,t.projectRoot)).filter(r=>r!==void 0):c;return s.length===0?"":o!==void 0&&o.length>0?s.map(r=>`${o} ${f(r)}`).join(" "):s.map(f).join(" ")}),"expandTokensInString"),k=a((e,t)=>{if(!e.command.includes("${"))return e;const n=j(e.command,t);return n===e.command?e:{...e,command:n}},"expandTokens");export{k as expandTokens,j as expandTokensInString};
1
+ var m=Object.defineProperty;var l=(e,t)=>m(e,"name",{value:t,configurable:!0});import{s as f}from"./shell-quote-BhmqDUL1.js";var p=Object.defineProperty,a=l((e,t)=>p(e,"name",{value:t,configurable:!0}),"s");const u={"affected.files":"affectedFiles",changed_files:"affectedFiles"},g=/\\?\$\{\s*([\w.]+)\s*(?:\|\s*flag\s+(["'])(.*?)\2\s*)?\}/g,h=a((e,t)=>{if(e===t)return".";const n=`${t}/`;if(e.startsWith(n))return e.slice(n.length)},"rewriteForProjectRoot"),j=a((e,t)=>e.replaceAll(g,(n,d,v,o)=>{if(n.startsWith("\\"))return n.slice(1);const i=u[d];if(!i)return n;const c=t[i]??[],s=t.projectRoot?c.map(r=>h(r,t.projectRoot)).filter(r=>r!==void 0):c;return s.length===0?"":o!==void 0&&o.length>0?s.map(r=>`${o} ${f(r)}`).join(" "):s.map(f).join(" ")}),"expandTokensInString"),k=a((e,t)=>{if(!e.command.includes("${"))return e;const n=j(e.command,t);return n===e.command?e:{...e,command:n}},"expandTokens");export{k as expandTokens,j as expandTokensInString};
@@ -1 +1 @@
1
- var s=Object.defineProperty;var p=(o,t)=>s(o,"name",{value:t,configurable:!0});import{expandArguments as i}from"./expandArguments-4mab7-Ds.js";import{expandShortcut as d}from"./expandShortcut-BErNHNXZ.js";import{expandTokens as f}from"./expandTokensInString-Cyx0qSFA.js";import{expandTokensInString as T}from"./expandTokensInString-Cyx0qSFA.js";import{expandWildcard as u}from"./expandWildcard-DE0dOOZF.js";import{stripQuotes as c}from"./stripQuotes-jkZb0CL9.js";var l=Object.defineProperty,x=p((o,t)=>l(o,"name",{value:t,configurable:!0}),"a");const h=x((o,t={})=>{const{additionalArguments:m=[],tokens:n}=t;let r=o.map(e=>typeof e=="string"?{command:e}:{...e});return r=r.map(c),r=r.map(d),r=r.flatMap(e=>{const a=u(e);return Array.isArray(a)?a:[a]}),n&&(r=r.map(e=>f(e,n))),m.length>0&&(r=r.map(e=>i(e,m))),r},"parseCommands");export{i as expandArguments,d as expandShortcut,f as expandTokens,T as expandTokensInString,u as expandWildcard,h as parseCommands,c as stripQuotes};
1
+ var s=Object.defineProperty;var p=(o,t)=>s(o,"name",{value:t,configurable:!0});import{expandArguments as i}from"./expandArguments-D7qvc6Rp.js";import{expandShortcut as d}from"./expandShortcut-BErNHNXZ.js";import{expandTokens as f}from"./expandTokensInString-DVSFEdWu.js";import{expandTokensInString as T}from"./expandTokensInString-DVSFEdWu.js";import{expandWildcard as u}from"./expandWildcard-DE0dOOZF.js";import{stripQuotes as c}from"./stripQuotes-jkZb0CL9.js";var l=Object.defineProperty,x=p((o,t)=>l(o,"name",{value:t,configurable:!0}),"a");const h=x((o,t={})=>{const{additionalArguments:m=[],tokens:n}=t;let r=o.map(e=>typeof e=="string"?{command:e}:{...e});return r=r.map(c),r=r.map(d),r=r.flatMap(e=>{const a=u(e);return Array.isArray(a)?a:[a]}),n&&(r=r.map(e=>f(e,n))),m.length>0&&(r=r.map(e=>i(e,m))),r},"parseCommands");export{i as expandArguments,d as expandShortcut,f as expandTokens,T as expandTokensInString,u as expandWildcard,h as parseCommands,c as stripQuotes};
@@ -1 +1 @@
1
- var c=Object.defineProperty;var a=(e,t)=>c(e,"name",{value:t,configurable:!0});import{HttpRemoteCache as n}from"./HttpRemoteCache-Ch-_9ejF.js";import{ReapiRemoteCache as m}from"./ReapiRemoteCache-B3uQuVqP.js";var d=Object.defineProperty,o=a((e,t)=>d(e,"name",{value:t,configurable:!0}),"a");const p=o(e=>e.mode??"readwrite","resolveCacheMode"),i=o((e,t=process.env)=>{if((e?.backend??"http")!=="http")return e?.url?e:void 0;const r=e?.url??t.TURBO_API;if(r)return{...e,teamId:e?.teamId??t.TURBO_TEAM,token:e?.token??t.TURBO_TOKEN,url:r}},"resolveTurboEnvCompat"),v=o(e=>{const t=p(e),r={...e,mode:t};switch(e.backend??"http"){case"http":return new n(r);case"reapi":return new m(r);default:return new n(r)}},"createRemoteCacheBackend");export{v as createRemoteCacheBackend,p as resolveCacheMode,i as resolveTurboEnvCompat};
1
+ var c=Object.defineProperty;var a=(e,t)=>c(e,"name",{value:t,configurable:!0});import{HttpRemoteCache as n}from"./HttpRemoteCache-D3Z6b_FO.js";import{ReapiRemoteCache as m}from"./ReapiRemoteCache-B3uQuVqP.js";var d=Object.defineProperty,o=a((e,t)=>d(e,"name",{value:t,configurable:!0}),"a");const p=o(e=>e.mode??"readwrite","resolveCacheMode"),i=o((e,t=process.env)=>{if((e?.backend??"http")!=="http")return e?.url?e:void 0;const r=e?.url??t.TURBO_API;if(r)return{...e,teamId:e?.teamId??t.TURBO_TEAM,token:e?.token??t.TURBO_TOKEN,url:r}},"resolveTurboEnvCompat"),v=o(e=>{const t=p(e),r={...e,mode:t};switch(e.backend??"http"){case"http":return new n(r);case"reapi":return new m(r);default:return new n(r)}},"createRemoteCacheBackend");export{v as createRemoteCacheBackend,p as resolveCacheMode,i as resolveTurboEnvCompat};
@@ -0,0 +1,3 @@
1
+ var b=Object.defineProperty;var _=(s,e)=>b(s,"name",{value:e,configurable:!0});import{createRequire as I}from"node:module";import{spawn as L}from"@lydell/node-pty";const M=I(import.meta.url),T=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,P=_(s=>{if(typeof T<"u"&&T.versions&&T.versions.node){const[e,l]=T.versions.node.split(".").map(Number);if(e>22||e===22&&l>=3||e===20&&l>=16)return T.getBuiltinModule(s)}return M(s)},"__cjs_getBuiltinModule"),{spawn:S}=P("node:child_process");var F=Object.defineProperty,a=_((s,e)=>F(s,"name",{value:e,configurable:!0}),"d");const j=a((s,e)=>{if(s.length===0)return!0;const l=e.trim().toLowerCase();if(l==="first")return s[0].exitCode===0;if(l==="last")return s.at(-1).exitCode===0;const m=/^(!?)command-(.+)$/.exec(l);if(m){const[,v,C]=m,g=v==="!",f=s.filter(t=>t.name===C||String(t.index)===C);return g?s.filter(t=>!f.includes(t)).every(t=>t.exitCode===0):f.length>0&&f.every(t=>t.exitCode===0)}return s.every(v=>v.exitCode===0)},"evaluateSuccess"),E=a((s,e)=>{try{process.platform==="win32"?S("taskkill",["/F","/T","/PID",String(s)],{stdio:"ignore"}):process.kill(-s,e)}catch{}},"killTree"),$=a((s,e,l,m,v)=>{const C=process.hrtime(),g=e.shell!==!1,f=e.stdin??"null",t=f==="inherit"?"inherit":f==="pipe"?"pipe":"ignore";let o;if(g){let i,d,p=!1;l?(i=l,d=["-c",e.command]):process.platform==="win32"?(i="cmd.exe",d=["/s","/c",`"${e.command}"`],p=!0):(i="/bin/sh",d=["-c",e.command]),o=S(i,d,{cwd:e.cwd,detached:process.platform!=="win32",env:{...process.env,...e.env,FORCE_COLOR:process.env.FORCE_COLOR??"1"},stdio:[t,"pipe","pipe"],windowsVerbatimArguments:p})}else{const i=e.command.split(/\s+/),d=i[0],p=i.slice(1);o=S(d,p,{cwd:e.cwd,detached:process.platform!=="win32",env:{...process.env,...e.env,FORCE_COLOR:process.env.FORCE_COLOR??"1"},stdio:[t,"pipe","pipe"]})}m({index:s,kill:o.pid?i=>{E(o.pid,i??"SIGTERM")}:void 0,kind:"started",pid:o.pid,write:o.stdin?i=>o.stdin.write(i):void 0});let c="",n;const k=a(()=>{c&&(m({index:s,kind:"stdout",text:c.replace(/\r$/,"")}),c="")},"flushStdoutBuffer");o.stdout?.on("data",i=>{n&&(clearTimeout(n),n=void 0),c+=i.toString();const d=c.split(`
2
+ `);c=d.pop()??"";for(const p of d)m({index:s,kind:"stdout",text:p.replace(/\r$/,"")});c&&(n=setTimeout(k,100))}),o.stdout?.on("end",()=>{n&&(clearTimeout(n),n=void 0),k()});let x="",h;const O=a(()=>{x&&(m({index:s,kind:"stderr",text:x.replace(/\r$/,"")}),x="")},"flushStderrBuffer");return o.stderr?.on("data",i=>{h&&(clearTimeout(h),h=void 0),x+=i.toString();const d=x.split(`
3
+ `);x=d.pop()??"";for(const p of d)m({index:s,kind:"stderr",text:p.replace(/\r$/,"")});x&&(h=setTimeout(O,100))}),o.stderr?.on("end",()=>{h&&(clearTimeout(h),h=void 0),O()}),o.on("error",i=>{m({index:s,kind:"error",message:i.message})}),o.on("close",(i,d)=>{n&&(clearTimeout(n),n=void 0),h&&(clearTimeout(h),h=void 0),k(),O();const p=process.hrtime(C),y=p[0]*1e3+p[1]/1e6,r=i??(d?1:-1),u={command:e.command,durationMs:y,exitCode:r,index:s,killed:d!==null,name:e.name};m({commandName:e.name,durationMs:y,exitCode:r,index:s,killed:d!==null,kind:"close"}),v(u)}),{child:o,index:s,startTime:C}},"spawnCommand"),G=a((s,e,l,m,v)=>{const C=process.hrtime();let g,f;l?(g=l,f=["-c",e.command]):process.platform==="win32"?(g="cmd.exe",f=["/s","/c",e.command]):(g="/bin/sh",f=["-c",e.command]);const t=L(g,f,{cols:e.ptySize?.cols??80,cwd:e.cwd??process.cwd(),env:Object.fromEntries(Object.entries({...process.env,...e.env,FORCE_COLOR:process.env.FORCE_COLOR??"1",TERM:"xterm-256color"}).filter(o=>typeof o[1]=="string")),name:"xterm-256color",rows:e.ptySize?.rows??24});return m({index:s,kill:a(o=>{t.kill(o)},"kill"),kind:"started",pid:t.pid,resize:a((o,c)=>{t.resize(o,c)},"resize"),write:a(o=>{t.write(o)},"write")}),t.onData(o=>{m({index:s,kind:"stdout",text:o})}),t.onExit(({exitCode:o,signal:c})=>{const n=process.hrtime(C),k=n[0]*1e3+n[1]/1e6,x=o??(c?1:-1),h={command:e.command,durationMs:k,exitCode:x,index:s,killed:c!==void 0&&c!==0,name:e.name};m({commandName:e.name,durationMs:k,exitCode:x,index:s,killed:c!==void 0&&c!==0,kind:"close"}),v(h)}),{index:s,pty:t,startTime:C}},"spawnCommandPty"),q=a((s,e)=>new Promise(l=>{if(s.length===0){l({closeEvents:[],success:!0});return}const m=e.maxProcesses&&e.maxProcesses>0?e.maxProcesses:s.length,v=e.killSignal??"SIGTERM",C=e.killOthers??[],g=e.successCondition??"all",f=e.onEvent??(()=>{}),t=[],o=[],c=s.map((r,u)=>u);let n=!1,k=!1;const x=a(()=>{for(const r of t)r.pty?r.pty.kill(v):r.child?.pid&&E(r.child.pid,v)},"killAll"),h=a(r=>{for(const u of C)if(u==="failure"&&r.exitCode!==0||u==="success"&&r.exitCode===0)return!0;return!1},"shouldKillOthers"),O=a((r,u)=>{const R=t.findIndex(w=>w.index===r);if(R!==-1&&t.splice(R,1),n&&(u.killed=!0,k&&(u.exitCode=0)),o.push(u),!n&&h(u)&&(n=!0,x()),n||i(),t.length===0&&c.length===0){const w=j(o,g);l({closeEvents:o,success:w})}},"handleClose"),i=a(()=>{for(;t.length<m&&c.length>0;){const r=c.shift(),u=s[r],R=u.stdin==="pty"?G(r,u,e.shellPath,f,w=>{O(r,w)}):$(r,u,e.shellPath,f,w=>{O(r,w)});t.push(R)}},"maybeSpawnMore"),d=a(()=>{n||(n=!0,k=!0,x())},"handleSigint"),p=a(()=>{n||(n=!0,x())},"handleNonInteractiveAbort");process.on("SIGINT",d),process.on("SIGTERM",p),process.on("exit",p);const y=l;l=a((r=>{process.removeListener("SIGINT",d),process.removeListener("SIGTERM",p),process.removeListener("exit",p),y(r)}),"resolve"),i()}),"runConcurrentFallback");export{q as runConcurrentFallback};
@@ -0,0 +1 @@
1
+ var k=Object.defineProperty;var p=(t,e)=>k(t,"name",{value:e,configurable:!0});import{createRequire as v}from"node:module";import{runConcurrentFallback as S}from"./runConcurrentFallback-SvS4ElEX.js";import{detectScriptShell as b}from"./detectScriptShell-CaTDk5cW.js";import{logTimings as x}from"./formatTimingTable-CP3rsDwf.js";import{withRestart as C}from"./withRestart-DKtEGsQA.js";import{runTeardown as E}from"./runTeardown-CiJJeWVf.js";import{loadNativeBindings as I}from"./isNativeAvailable-BOavFPX1.js";import{buildEnhancedPath as R}from"./collectNodeModulesBinDirs-JaeFLP9l.js";const T=v(import.meta.url),a=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,P=p(t=>{if(typeof a<"u"&&a.versions&&a.versions.node){const[e,s]=a.versions.node.split(".").map(Number);if(e>22||e===22&&s>=3||e===20&&s>=16)return a.getBuiltinModule(t)}return T(t)},"__cjs_getBuiltinModule"),{spawn:_}=P("node:child_process");var M=Object.defineProperty,i=p((t,e)=>M(t,"name",{value:e,configurable:!0}),"o");const d=new Set;let h=!1;const j=i((t,e)=>{try{process.platform==="win32"?_("taskkill",["/F","/T","/PID",String(t)],{stdio:"ignore"}):process.kill(-t,e)}catch{}},"killTrackedTree"),u=i(t=>{for(const e of d)j(e,t)},"killAllTracked"),G=i(()=>{h||(h=!0,process.setMaxListeners(process.getMaxListeners()+3),process.on("SIGINT",()=>{u("SIGINT")}),process.on("SIGTERM",()=>{u("SIGTERM")}),process.on("exit",()=>{u("SIGTERM")}))},"installSignalHandlersOnce"),B=i(t=>t.map(e=>typeof e=="string"?{command:e}:e),"normalizeCommands"),N=i(t=>t.map(e=>{const s=e.cwd??process.cwd(),o=R(s,e.env),n={...e.env??{}};return n.PATH=o,"Path"in n&&(n.Path=o),{...e,env:n}}),"withEnhancedPathConfigs"),g=i(async(t,e)=>{const s=e.shellPath??b(),o=N(t),n=I(),m=o.some(l=>l.stdin==="pipe"||l.stdin==="pty")||!!e.onEvent;if(n&&!m){const l={killOthers:e.killOthers,killSignal:e.killSignal,killTimeout:e.killTimeout,maxProcesses:e.maxProcesses,shellPath:s,successCondition:e.successCondition},w=o.map(r=>({command:r.command,cwd:r.cwd,env:r.env,name:r.name,shell:r.shell,stdin:r.stdin}));G();const c=new Map,y=i(r=>{if(r!=null){if(r.kind==="started"&&typeof r.pid=="number"){d.add(r.pid),c.set(r.index,r.pid);return}if(r.kind==="close"||r.kind==="error"){const f=c.get(r.index);f!==void 0&&(d.delete(f),c.delete(r.index))}}},"onLifecycle");try{return await n.runConcurrentBatch(w,l,y)}finally{for(const r of c.values())d.delete(r)}}return S(o,{...e,shellPath:s})},"coreRun"),K=i(async(t,e={})=>{const s=B(t);if(s.length===0)return{closeEvents:[],success:!0};let o;return e.restart&&e.restart.tries!==0?o=await C((n,m)=>g(n,m),s,e,{delay:e.restart.delay??0,onRetry:e.restart.onRetry,tries:e.restart.tries}):o=await g(s,e),e.timings&&x(o.closeEvents),e.teardown&&e.teardown.length>0&&await E({commands:e.teardown,cwd:e.teardownCwd}),o},"runConcurrently");export{K as runConcurrently};
@@ -0,0 +1 @@
1
+ var p=Object.defineProperty;var i=(o,e)=>p(o,"name",{value:e,configurable:!0});import{createRequire as m}from"node:module";import{withEnhancedPath as w}from"./collectNodeModulesBinDirs-JaeFLP9l.js";const u=m(import.meta.url),r=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,l=i(o=>{if(typeof r<"u"&&r.versions&&r.versions.node){const[e,s]=r.versions.node.split(".").map(Number);if(e>22||e===22&&s>=3||e===20&&s>=16)return r.getBuiltinModule(o)}return u(o)},"__cjs_getBuiltinModule"),{spawn:f}=l("node:child_process");var _=Object.defineProperty,a=i((o,e)=>_(o,"name",{value:e,configurable:!0}),"c");const j=a(async o=>{const{commands:e,cwd:s}=o,n=[];for(const c of e){const t=await h(c,s);n.push(t)}return n},"runTeardown"),h=a((o,e)=>new Promise(s=>{const n=process.platform==="win32"?"cmd.exe":"/bin/sh",c=process.platform==="win32"?["/s","/c",`"${o}"`]:["-c",o],t=f(n,c,{cwd:e,env:w(process.env,e??process.cwd()),stdio:"inherit",windowsVerbatimArguments:process.platform==="win32"});t.on("close",d=>{s(d??1)}),t.on("error",()=>{s(1)})}),"runTeardownCommand");export{j as runTeardown};
@@ -0,0 +1 @@
1
+ var a=Object.defineProperty;var t=(e,l)=>a(e,"name",{value:l,configurable:!0});var r=Object.defineProperty,c=t((e,l)=>r(e,"name",{value:l,configurable:!0}),"t");const n=/^[\w./:@+,=-]+$/,s=c(e=>e!==""&&n.test(e)?e:process.platform==="win32"?`"${e.replaceAll("\\","\\\\").replaceAll('"',String.raw`\"`).replaceAll(/[\^&|<>]/g,"^$&")}"`:`'${e.replaceAll("'",String.raw`'\''`)}'`,"shellQuote");export{s};