🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@exercode/problem-utils

Package Overview
Dependencies
Maintainers
1
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@exercode/problem-utils - npm Package Compare versions

Comparing version
1.16.2
to
1.16.3
+1
-1
dist/helpers/runCommandInTemporaryPackageManagerProject.cjs

@@ -1,2 +0,2 @@

"use strict";var e,t,n=require("../_virtual/_rollupPluginBabelHelpers.cjs"),r=require("node:child_process"),o=require("node:fs/promises"),i=require("node:os"),s=require("node:path"),a={bun:["package.json","bun.lock","bun.lockb"],cargo:["Cargo.toml","Cargo.lock"],go:["go.mod","go.sum"],gradle:["build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","gradle","gradlew","gradlew.bat"],maven:["pom.xml",".mvn","mvnw","mvnw.cmd"],npm:["package.json","package-lock.json"],pnpm:["package.json","pnpm-lock.yaml","pnpm-workspace.yaml"],ruby:["Gemfile","Gemfile.lock",".ruby-version"],uv:["pyproject.toml","uv.lock"],yarn:["package.json","yarn.lock",".yarnrc.yml",".yarn"]},u={bun:["bun","install","--silent"],npm:["npm","install","--silent"],pnpm:["pnpm","install","--silent"],yarn:["yarn","install","--silent"]},c=(e="darwin"===i.platform()?"gtime":"/usr/bin/time",(t=r.spawnSync(e,["--version"],{stdio:"ignore"})).error||0!==t.status?void 0:[e,"--format","%e %M"]);function l(){return l=n.asyncToGenerator(n.regenerator().m(function e(t){var r,a,u,c,l,y,g,v,k,S,w,h,L,j,B,T,E,x,P,G,I;return n.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.n=1,o.mkdtemp(s.join(i.tmpdir(),null!=(r=t.tempDirPrefix)?r:"exercode-"));case 1:return a=e.v,e.p=2,e.n=3,o.cp(t.cwd,a,{recursive:!0});case 3:return e.n=4,f({packageManager:t.packageManager,projectDir:t.projectDir,runDir:a,projectFilePaths:t.projectFilePaths});case 4:if(l=t.env?n.objectSpread2(n.objectSpread2({},process.env),t.env):process.env,y=m(t.packageManager),g="function"==typeof t.command?t.command({runDir:a}):t.command,v=Date.now(),k=null!=(u=t.outputLimitBytes)?u:52428800,!y){e.n=6;break}return e.n=5,b(y,{cwd:a,env:l,outputLimitBytes:k,stdin:"",timeLimitSeconds:t.timeLimitSeconds});case 5:if(!p(S=e.v)){e.n=6;break}return e.a(2,d({elapsedTimeSeconds:(Date.now()-v)/1e3,options:t,result:S}));case 6:if(!((w=t.timeLimitSeconds-(Date.now()-v)/1e3)<=0)){e.n=7;break}return e.a(2,{stdin:null!=(h=t.stdin)?h:"",stdout:null!=(L=null==(j=S)?void 0:j.stdout)?L:"",stderr:null!=(B=null==(T=S)?void 0:T.stderr)?B:"",status:0,timeSeconds:t.timeLimitSeconds+.001,memoryBytes:null!=(E=null==(x=S)?void 0:x.memoryBytes)?E:0,timedOut:!0,signal:null==(P=S)?void 0:P.signal,outputLimitExceeded:!1});case 7:return e.n=8,b(g,{cwd:a,env:l,outputLimitBytes:k,stdin:null!=(c=t.stdin)?c:"",timeLimitSeconds:w});case 8:if(G=e.v,I=(Date.now()-v)/1e3,!S){e.n=9;break}return e.a(2,d({elapsedTimeSeconds:I,options:t,result:n.objectSpread2(n.objectSpread2({},G),{},{timeSeconds:S.timeSeconds+G.timeSeconds,memoryBytes:Math.max(S.memoryBytes,G.memoryBytes)})}));case 9:return e.a(2,d({elapsedTimeSeconds:I,options:t,result:G}));case 10:return e.p=10,e.n=11,o.rm(a,{force:!0,recursive:!0});case 11:return e.f(10);case 12:return e.a(2)}},e,null,[[2,,10,12]])})),l.apply(this,arguments)}function d(e){var t;return{stdin:null!=(t=e.options.stdin)?t:"",stdout:e.result.stdout,stderr:e.result.stderr,status:e.result.timedOut||e.result.outputLimitExceeded?0:e.result.status,timeSeconds:e.result.timedOut?e.options.timeLimitSeconds+.001:e.result.timeSeconds||e.elapsedTimeSeconds,memoryBytes:e.result.memoryBytes,timedOut:e.result.timedOut,signal:e.result.signal,outputLimitExceeded:e.result.outputLimitExceeded}}function m(e){return u[e]}function p(e){return 0!==e.status||e.timedOut||e.outputLimitExceeded}function f(e){return y.apply(this,arguments)}function y(){return(y=n.asyncToGenerator(n.regenerator().m(function e(t){var r,o,i,u,c;return n.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:o=n.createForOfIteratorHelper(null!=(r=t.projectFilePaths)?r:a[t.packageManager]),e.p=1,o.s();case 2:if((i=o.n()).done){e.n=4;break}return u=i.value,e.n=3,g(s.join(t.projectDir,u),s.join(t.runDir,u));case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,c=e.v,o.e(c);case 6:return e.p=6,o.f(),e.f(6);case 7:return e.a(2)}},e,null,[[1,5,6,7]])}))).apply(this,arguments)}function g(e,t){return v.apply(this,arguments)}function v(){return(v=n.asyncToGenerator(n.regenerator().m(function e(t,r){var i;return n.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,o.cp(t,r,{recursive:!0});case 1:e.n=3;break;case 2:if(e.p=2,i=e.v,"ENOENT"===("object"===n.typeof(i)&&null!==i&&"code"in i?i.code:void 0)){e.n=3;break}throw i;case 3:return e.a(2)}},e,null,[[0,2]])}))).apply(this,arguments)}function b(e,t){return k.apply(this,arguments)}function k(){return k=n.asyncToGenerator(n.regenerator().m(function e(t,o){var i,a,u,l,d,m,p,f,y,g,v,b,k,h,L,j,B,T;return n.regenerator().w(function(e){for(;;)switch(e.n){case 0:return i=void 0===c?void 0:s.join(o.cwd,".exercode-time-result"),a=void 0===c?t:[].concat(n.toConsumableArray(c),["--output=".concat(i)],n.toConsumableArray(t)),u=r.spawn(a[0],a.slice(1),{cwd:o.cwd,detached:"win32"!==process.platform,env:o.env,stdio:["pipe","pipe","pipe"]}),l=[],d=[],m=0,p=!1,f=!1,y=function(e,t){if(m>=o.outputLimitBytes)t.byteLength>0&&(f=!0,S(u,"SIGKILL"));else{var n=o.outputLimitBytes-m,r=t.byteLength>n?t.subarray(0,n):t;e.push(r),m+=r.byteLength,t.byteLength>n&&(f=!0,S(u,"SIGKILL"))}},u.stdout.on("data",function(e){return y(l,e)}),u.stderr.on("data",function(e){return y(d,e)}),g=setTimeout(function(){p=!0,S(u,"SIGTERM")},1e3*o.timeLimitSeconds),(v=setTimeout(function(){p&&S(u,"SIGKILL")},1e3*o.timeLimitSeconds+1e3)).unref(),e.n=1,new Promise(function(e,t){var n,r=!1,i=function(e){r||(n=e,S(u,"SIGKILL"),void 0===u.pid&&(r=!0,t(e)))};u.on("error",i),u.stdin.on("error",function(e){"EPIPE"!==e.code&&i(e)}),u.on("close",function(o,i){r||(r=!0,n?t(n):e({status:null!=o?o:void 0,signal:null!=i?i:void 0}))}),u.stdin.end(o.stdin)}).finally(function(){clearTimeout(g),clearTimeout(v)});case 1:if(b=e.v,k=b.status,h=b.signal,void 0!==i){e.n=2;break}T={timeSeconds:0,memoryBytes:0},e.n=4;break;case 2:return e.n=3,w(i);case 3:T=e.v;case 4:return j=(L=T).timeSeconds,B=L.memoryBytes,e.a(2,{stdout:Buffer.concat(l).toString(),stderr:Buffer.concat(d).toString(),status:k,timeSeconds:j,memoryBytes:B,timedOut:p,signal:h,outputLimitExceeded:f})}},e)})),k.apply(this,arguments)}function S(e,t){if(void 0!==e.pid)try{if("win32"===process.platform)return void e.kill(t);process.kill(-e.pid,t)}catch(e){var r="object"===n.typeof(e)&&null!==e&&"code"in e?e.code:void 0;if("ESRCH"!==r&&"EPERM"!==r)throw e}}function w(e){return h.apply(this,arguments)}function h(){return(h=n.asyncToGenerator(n.regenerator().m(function e(t){var r,i,s;return n.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,o.readFile(t,"utf8");case 1:r=e.v,e.n=4;break;case 2:if(e.p=2,s=e.v,"ENOENT"===("object"===n.typeof(s)&&null!==s&&"code"in s?s.code:void 0)){e.n=3;break}throw s;case 3:return e.a(2,{timeSeconds:0,memoryBytes:0});case 4:if(i=/(\d+(?:[.,]\d+)?) (\d+)\s*$/.exec(r)){e.n=5;break}return e.a(2,{timeSeconds:0,memoryBytes:0});case 5:return e.a(2,{timeSeconds:Number(i[1].replace(",",".")),memoryBytes:1024*Number(i[2])})}},e,null,[[0,2]])}))).apply(this,arguments)}exports.copyPackageManagerProjectFiles=f,exports.runCommandInTemporaryPackageManagerProject=function(e){return l.apply(this,arguments)};
"use strict";var e,n,r=require("../_virtual/_rollupPluginBabelHelpers.cjs"),t=require("node:child_process"),a=require("node:fs/promises"),o=require("node:os"),i=require("node:path"),c={bun:["package.json","bun.lock","bun.lockb"],cargo:["Cargo.toml","Cargo.lock"],go:["go.mod","go.sum"],gradle:["build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","gradle.lockfile","buildscript-gradle.lockfile","gradle","gradlew","gradlew.bat"],maven:["pom.xml",".mvn","mvnw","mvnw.cmd"],npm:["package.json","package-lock.json"],pnpm:["package.json","pnpm-lock.yaml","pnpm-workspace.yaml"],ruby:["Gemfile","Gemfile.lock",".ruby-version"],uv:["pyproject.toml","uv.lock"],yarn:["package.json","yarn.lock",".yarnrc",".yarnrc.yml",".yarn"]},s={bun:function(e){return m.apply(this,arguments)},cargo:function(e){return y.apply(this,arguments)},go:function(e){return g.apply(this,arguments)},gradle:function(e){return v.apply(this,arguments)},maven:function(e){return k.apply(this,arguments)},npm:function(e){return b.apply(this,arguments)},pnpm:function(e){return h.apply(this,arguments)},ruby:function(e){return w.apply(this,arguments)},uv:function(){return j.apply(this,arguments)},yarn:function(e){return S.apply(this,arguments)}},u=(e="darwin"===o.platform()?"gtime":"/usr/bin/time",(n=t.spawnSync(e,["--version"],{stdio:"ignore"})).error||0!==n.status?void 0:[e,"--format","%e %M"]);function l(){return l=r.asyncToGenerator(r.regenerator().m(function e(n){var t,c,s,u,l,m,y,g,v,k,b,h,w,j,S,T,L,G,B,E,x;return r.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.n=1,a.mkdtemp(i.join(o.tmpdir(),null!=(t=n.tempDirPrefix)?t:"exercode-"));case 1:return c=e.v,e.p=2,e.n=3,a.cp(n.cwd,c,{recursive:!0});case 3:return e.n=4,P({packageManager:n.packageManager,projectDir:n.projectDir,runDir:c,projectFilePaths:n.projectFilePaths});case 4:return l=n.env?r.objectSpread2(r.objectSpread2({},process.env),n.env):process.env,e.n=5,d(n.packageManager,c);case 5:if(m=e.v,y="function"==typeof n.command?n.command({runDir:c}):n.command,g=Date.now(),v=null!=(s=n.outputLimitBytes)?s:52428800,!m){e.n=7;break}return e.n=6,q(m,{cwd:c,env:l,outputLimitBytes:v,stdin:"",timeLimitSeconds:n.timeLimitSeconds});case 6:if(!f(k=e.v)){e.n=7;break}return e.a(2,p({elapsedTimeSeconds:(Date.now()-g)/1e3,options:n,result:k}));case 7:if(!((b=n.timeLimitSeconds-(Date.now()-g)/1e3)<=0)){e.n=8;break}return e.a(2,{stdin:null!=(h=n.stdin)?h:"",stdout:null!=(w=null==(j=k)?void 0:j.stdout)?w:"",stderr:null!=(S=null==(T=k)?void 0:T.stderr)?S:"",status:0,timeSeconds:n.timeLimitSeconds+.001,memoryBytes:null!=(L=null==(G=k)?void 0:G.memoryBytes)?L:0,timedOut:!0,signal:null==(B=k)?void 0:B.signal,outputLimitExceeded:!1});case 8:return e.n=9,q(y,{cwd:c,env:l,outputLimitBytes:v,stdin:null!=(u=n.stdin)?u:"",timeLimitSeconds:b});case 9:if(E=e.v,x=(Date.now()-g)/1e3,!k){e.n=10;break}return e.a(2,p({elapsedTimeSeconds:x,options:n,result:r.objectSpread2(r.objectSpread2({},E),{},{timeSeconds:k.timeSeconds+E.timeSeconds,memoryBytes:Math.max(k.memoryBytes,E.memoryBytes)})}));case 10:return e.a(2,p({elapsedTimeSeconds:x,options:n,result:E}));case 11:return e.p=11,e.n=12,a.rm(c,{force:!0,recursive:!0});case 12:return e.f(11);case 13:return e.a(2)}},e,null,[[2,,11,13]])})),l.apply(this,arguments)}function p(e){var n;return{stdin:null!=(n=e.options.stdin)?n:"",stdout:e.result.stdout,stderr:e.result.stderr,status:e.result.timedOut||e.result.outputLimitExceeded?0:e.result.status,timeSeconds:e.result.timedOut?e.options.timeLimitSeconds+.001:e.result.timeSeconds||e.elapsedTimeSeconds,memoryBytes:e.result.memoryBytes,timedOut:e.result.timedOut,signal:e.result.signal,outputLimitExceeded:e.result.outputLimitExceeded}}function d(e,n){return s[e](n)}function f(e){return 0!==e.status||e.timedOut||e.outputLimitExceeded}function m(){return(m=r.asyncToGenerator(r.regenerator().m(function e(n){var t;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,E(i.join(n,"package.json"));case 1:if(e.v){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,G(n,["bun.lock","bun.lockb"]);case 3:if(!e.v){e.n=4;break}t=["bun","install","--frozen-lockfile","--silent"],e.n=5;break;case 4:t=["bun","install","--silent"];case 5:return e.a(2,t)}},e)}))).apply(this,arguments)}function y(){return(y=r.asyncToGenerator(r.regenerator().m(function e(n){var t;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,E(i.join(n,"Cargo.toml"));case 1:if(e.v){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,E(i.join(n,"Cargo.lock"));case 3:if(!e.v){e.n=4;break}t=["cargo","fetch","--locked"],e.n=5;break;case 4:t=["cargo","fetch"];case 5:return e.a(2,t)}},e)}))).apply(this,arguments)}function g(){return(g=r.asyncToGenerator(r.regenerator().m(function e(n){return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,E(i.join(n,"go.mod"));case 1:if(e.v){e.n=2;break}return e.a(2,void 0);case 2:return e.a(2,["go","mod","download"])}},e)}))).apply(this,arguments)}function v(){return(v=r.asyncToGenerator(r.regenerator().m(function e(n){var t,a,o;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,G(n,["build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradlew","gradlew.bat"]);case 1:if(e.v){e.n=2;break}return e.a(2,void 0);case 2:if(t=["--no-daemon","--quiet","dependencies"],"win32"!==process.platform){e.n=6;break}return e.n=3,E(i.join(n,"gradlew.bat"));case 3:if(!e.v){e.n=4;break}a=["cmd.exe","/c","gradlew.bat"].concat(t),e.n=5;break;case 4:a=["gradle"].concat(t);case 5:return e.a(2,a);case 6:return e.n=7,E(i.join(n,"gradlew"));case 7:if(!e.v){e.n=8;break}o=["sh","./gradlew"].concat(t),e.n=9;break;case 8:o=["gradle"].concat(t);case 9:return e.a(2,o)}},e)}))).apply(this,arguments)}function k(){return(k=r.asyncToGenerator(r.regenerator().m(function e(n){var t,a,o;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,E(i.join(n,"pom.xml"));case 1:if(e.v){e.n=2;break}return e.a(2,void 0);case 2:if(t=["-q","dependency:go-offline"],"win32"!==process.platform){e.n=6;break}return e.n=3,E(i.join(n,"mvnw.cmd"));case 3:if(!e.v){e.n=4;break}a=["cmd.exe","/c","mvnw.cmd"].concat(t),e.n=5;break;case 4:a=["mvn"].concat(t);case 5:return e.a(2,a);case 6:return e.n=7,E(i.join(n,"mvnw"));case 7:if(!e.v){e.n=8;break}o=["sh","./mvnw"].concat(t),e.n=9;break;case 8:o=["mvn"].concat(t);case 9:return e.a(2,o)}},e)}))).apply(this,arguments)}function b(){return(b=r.asyncToGenerator(r.regenerator().m(function e(n){var t;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,E(i.join(n,"package.json"));case 1:if(e.v){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,E(i.join(n,"package-lock.json"));case 3:if(!e.v){e.n=4;break}t=["npm","ci","--silent"],e.n=5;break;case 4:t=["npm","install","--silent"];case 5:return e.a(2,t)}},e)}))).apply(this,arguments)}function h(){return(h=r.asyncToGenerator(r.regenerator().m(function e(n){var t;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,E(i.join(n,"package.json"));case 1:if(e.v){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,E(i.join(n,"pnpm-lock.yaml"));case 3:if(!e.v){e.n=4;break}t=["pnpm","install","--frozen-lockfile","--silent"],e.n=5;break;case 4:t=["pnpm","install","--silent"];case 5:return e.a(2,t)}},e)}))).apply(this,arguments)}function w(){return(w=r.asyncToGenerator(r.regenerator().m(function e(n){var t;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,E(i.join(n,"Gemfile"));case 1:if(e.v){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,E(i.join(n,"Gemfile.lock"));case 3:if(!e.v){e.n=4;break}t=["bundle","install","--frozen","--quiet"],e.n=5;break;case 4:t=["bundle","install","--quiet"];case 5:return e.a(2,t)}},e)}))).apply(this,arguments)}function j(){return(j=r.asyncToGenerator(r.regenerator().m(function e(){return r.regenerator().w(function(e){for(;;)if(0===e.n)return e.a(2,void 0)},e)}))).apply(this,arguments)}function S(){return(S=r.asyncToGenerator(r.regenerator().m(function e(n){var t,a;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,E(i.join(n,"package.json"));case 1:if(e.v){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,T(n);case 3:return t=e.v,e.n=4,E(i.join(n,"yarn.lock"));case 4:if(a=e.v,!t){e.n=5;break}return e.a(2,a?["yarn","install","--immutable"]:["yarn","install"]);case 5:return e.a(2,a?["yarn","install","--frozen-lockfile","--silent"]:["yarn","install","--silent"])}},e)}))).apply(this,arguments)}function T(e){return L.apply(this,arguments)}function L(){return(L=r.asyncToGenerator(r.regenerator().m(function e(n){var t,a,o,c;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,E(i.join(n,".yarnrc.yml"));case 1:if(!e.v){e.n=2;break}return e.a(2,!0);case 2:return e.n=3,O(i.join(n,"package.json"));case 3:return a=e.v,o="string"==typeof a.packageManager?a.packageManager:void 0,c=null==(t=/^yarn@(\d+)/.exec(null!=o?o:""))?void 0:t[1],e.a(2,void 0!==c&&Number(c)>=2)}},e)}))).apply(this,arguments)}function G(e,n){return B.apply(this,arguments)}function B(){return(B=r.asyncToGenerator(r.regenerator().m(function e(n,t){var a,o,c,s;return r.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:a=r.createForOfIteratorHelper(t),e.p=1,a.s();case 2:if((o=a.n()).done){e.n=5;break}return c=o.value,e.n=3,E(i.join(n,c));case 3:if(!e.v){e.n=4;break}return e.a(2,!0);case 4:e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,s=e.v,a.e(s);case 7:return e.p=7,a.f(),e.f(7);case 8:return e.a(2,!1)}},e,null,[[1,6,7,8]])}))).apply(this,arguments)}function E(e){return x.apply(this,arguments)}function x(){return(x=r.asyncToGenerator(r.regenerator().m(function e(n){var t;return r.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,a.access(n);case 1:return e.a(2,!0);case 2:if(e.p=2,t=e.v,"ENOENT"===("object"===r.typeof(t)&&null!==t&&"code"in t?t.code:void 0)){e.n=3;break}throw t;case 3:return e.a(2,!1)}},e,null,[[0,2]])}))).apply(this,arguments)}function O(e){return I.apply(this,arguments)}function I(){return(I=r.asyncToGenerator(r.regenerator().m(function e(n){var t,o,i;return r.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,o=JSON,e.n=1,a.readFile(n,"utf8");case 1:return t=o.parse.call(o,e.v),e.a(2,"object"!==r.typeof(t)||null===t||Array.isArray(t)?{}:t);case 2:if(e.p=2,!((i=e.v)instanceof SyntaxError)){e.n=3;break}return e.a(2,{});case 3:if("ENOENT"!==("object"===r.typeof(i)&&null!==i&&"code"in i?i.code:void 0)){e.n=4;break}return e.a(2,{});case 4:throw i;case 5:return e.a(2)}},e,null,[[0,2]])}))).apply(this,arguments)}function P(e){return M.apply(this,arguments)}function M(){return(M=r.asyncToGenerator(r.regenerator().m(function e(n){var t,a,o,s,u;return r.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:a=r.createForOfIteratorHelper(null!=(t=n.projectFilePaths)?t:c[n.packageManager]),e.p=1,a.s();case 2:if((o=a.n()).done){e.n=4;break}return s=o.value,e.n=3,N(i.join(n.projectDir,s),i.join(n.runDir,s));case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,u=e.v,a.e(u);case 6:return e.p=6,a.f(),e.f(6);case 7:return e.a(2)}},e,null,[[1,5,6,7]])}))).apply(this,arguments)}function N(e,n){return D.apply(this,arguments)}function D(){return(D=r.asyncToGenerator(r.regenerator().m(function e(n,t){var o;return r.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,a.cp(n,t,{recursive:!0});case 1:e.n=3;break;case 2:if(e.p=2,o=e.v,"ENOENT"===("object"===r.typeof(o)&&null!==o&&"code"in o?o.code:void 0)){e.n=3;break}throw o;case 3:return e.a(2)}},e,null,[[0,2]])}))).apply(this,arguments)}function q(e,n){return C.apply(this,arguments)}function C(){return C=r.asyncToGenerator(r.regenerator().m(function e(n,a){var o,c,s,l,p,d,f,m,y,g,v,k,b,h,w,j,S,T;return r.regenerator().w(function(e){for(;;)switch(e.n){case 0:return o=void 0===u?void 0:i.join(a.cwd,".exercode-time-result"),c=void 0===u?n:[].concat(r.toConsumableArray(u),["--output=".concat(o)],r.toConsumableArray(n)),s=t.spawn(c[0],c.slice(1),{cwd:a.cwd,detached:"win32"!==process.platform,env:a.env,stdio:["pipe","pipe","pipe"]}),l=[],p=[],d=0,f=!1,m=!1,y=function(e,n){if(d>=a.outputLimitBytes)n.byteLength>0&&(m=!0,F(s,"SIGKILL"));else{var r=a.outputLimitBytes-d,t=n.byteLength>r?n.subarray(0,r):n;e.push(t),d+=t.byteLength,n.byteLength>r&&(m=!0,F(s,"SIGKILL"))}},s.stdout.on("data",function(e){return y(l,e)}),s.stderr.on("data",function(e){return y(p,e)}),g=setTimeout(function(){f=!0,F(s,"SIGTERM")},1e3*a.timeLimitSeconds),(v=setTimeout(function(){f&&F(s,"SIGKILL")},1e3*a.timeLimitSeconds+1e3)).unref(),e.n=1,new Promise(function(e,n){var r,t=!1,o=function(e){t||(r=e,F(s,"SIGKILL"),void 0===s.pid&&(t=!0,n(e)))};s.on("error",o),s.stdin.on("error",function(e){"EPIPE"!==e.code&&o(e)}),s.on("close",function(a,o){t||(t=!0,r?n(r):e({status:null!=a?a:void 0,signal:null!=o?o:void 0}))}),s.stdin.end(a.stdin)}).finally(function(){clearTimeout(g),clearTimeout(v)});case 1:if(k=e.v,b=k.status,h=k.signal,void 0!==o){e.n=2;break}T={timeSeconds:0,memoryBytes:0},e.n=4;break;case 2:return e.n=3,z(o);case 3:T=e.v;case 4:return j=(w=T).timeSeconds,S=w.memoryBytes,e.a(2,{stdout:Buffer.concat(l).toString(),stderr:Buffer.concat(p).toString(),status:b,timeSeconds:j,memoryBytes:S,timedOut:f,signal:h,outputLimitExceeded:m})}},e)})),C.apply(this,arguments)}function F(e,n){if(void 0!==e.pid)try{if("win32"===process.platform)return void e.kill(n);process.kill(-e.pid,n)}catch(e){var t="object"===r.typeof(e)&&null!==e&&"code"in e?e.code:void 0;if("ESRCH"!==t&&"EPERM"!==t)throw e}}function z(e){return A.apply(this,arguments)}function A(){return(A=r.asyncToGenerator(r.regenerator().m(function e(n){var t,o,i;return r.regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,a.readFile(n,"utf8");case 1:t=e.v,e.n=4;break;case 2:if(e.p=2,i=e.v,"ENOENT"===("object"===r.typeof(i)&&null!==i&&"code"in i?i.code:void 0)){e.n=3;break}throw i;case 3:return e.a(2,{timeSeconds:0,memoryBytes:0});case 4:if(o=/(\d+(?:[.,]\d+)?) (\d+)\s*$/.exec(t)){e.n=5;break}return e.a(2,{timeSeconds:0,memoryBytes:0});case 5:return e.a(2,{timeSeconds:Number(o[1].replace(",",".")),memoryBytes:1024*Number(o[2])})}},e,null,[[0,2]])}))).apply(this,arguments)}exports.copyPackageManagerProjectFiles=P,exports.runCommandInTemporaryPackageManagerProject=function(e){return l.apply(this,arguments)};
//# sourceMappingURL=runCommandInTemporaryPackageManagerProject.cjs.map

@@ -1,1 +0,1 @@

{"version":3,"file":"runCommandInTemporaryPackageManagerProject.cjs","sources":["../../src/helpers/runCommandInTemporaryPackageManagerProject.ts"],"sourcesContent":["import childProcess from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\n\nexport type PackageManager = 'bun' | 'cargo' | 'go' | 'gradle' | 'maven' | 'npm' | 'pnpm' | 'ruby' | 'uv' | 'yarn';\n\nexport interface PackageManagerCommandRunResult {\n stdin: string;\n stdout: string;\n stderr: string;\n status: number | undefined;\n timeSeconds: number;\n memoryBytes: number;\n timedOut: boolean;\n signal: NodeJS.Signals | undefined;\n outputLimitExceeded: boolean;\n}\n\nexport interface RunCommandInTemporaryPackageManagerProjectOptions {\n cwd: string;\n projectDir: string;\n packageManager: PackageManager;\n command: readonly [string, ...string[]] | ((context: { runDir: string }) => readonly [string, ...string[]]);\n stdin?: string;\n env?: NodeJS.ProcessEnv;\n timeLimitSeconds: number;\n outputLimitBytes?: number;\n tempDirPrefix?: string;\n projectFilePaths?: readonly string[];\n}\n\nconst packageManagerProjectFilePaths = {\n bun: ['package.json', 'bun.lock', 'bun.lockb'],\n cargo: ['Cargo.toml', 'Cargo.lock'],\n go: ['go.mod', 'go.sum'],\n gradle: [\n 'build.gradle',\n 'build.gradle.kts',\n 'settings.gradle',\n 'settings.gradle.kts',\n 'gradle.properties',\n 'gradle',\n 'gradlew',\n 'gradlew.bat',\n ],\n maven: ['pom.xml', '.mvn', 'mvnw', 'mvnw.cmd'],\n npm: ['package.json', 'package-lock.json'],\n pnpm: ['package.json', 'pnpm-lock.yaml', 'pnpm-workspace.yaml'],\n ruby: ['Gemfile', 'Gemfile.lock', '.ruby-version'],\n uv: ['pyproject.toml', 'uv.lock'],\n yarn: ['package.json', 'yarn.lock', '.yarnrc.yml', '.yarn'],\n} as const satisfies Record<PackageManager, readonly string[]>;\n\nconst packageManagerInstallCommands: Partial<Record<PackageManager, readonly [string, ...string[]]>> = {\n bun: ['bun', 'install', '--silent'],\n npm: ['npm', 'install', '--silent'],\n pnpm: ['pnpm', 'install', '--silent'],\n yarn: ['yarn', 'install', '--silent'],\n};\n\nconst defaultOutputLimitBytes = 50 * 1024 * 1024;\nconst killGracePeriodMilliseconds = 1000;\nconst timeCommand = resolveTimeCommand();\n\n/**\n * Copies a submission directory to a temporary directory, overlays package\n * manager project files from the problem directory, prepares dependencies,\n * runs a command, and then removes the temporary directory.\n */\nexport async function runCommandInTemporaryPackageManagerProject(\n options: RunCommandInTemporaryPackageManagerProjectOptions\n): Promise<PackageManagerCommandRunResult> {\n const runDir = await fs.mkdtemp(path.join(os.tmpdir(), options.tempDirPrefix ?? 'exercode-'));\n try {\n await fs.cp(options.cwd, runDir, { recursive: true });\n await copyPackageManagerProjectFiles({\n packageManager: options.packageManager,\n projectDir: options.projectDir,\n runDir,\n projectFilePaths: options.projectFilePaths,\n });\n\n const env = options.env ? { ...process.env, ...options.env } : process.env;\n const installCommand = resolveInstallCommand(options.packageManager);\n const command = typeof options.command === 'function' ? options.command({ runDir }) : options.command;\n const startedAt = Date.now();\n const outputLimitBytes = options.outputLimitBytes ?? defaultOutputLimitBytes;\n let installResult: Awaited<ReturnType<typeof spawnWithInput>> | undefined;\n\n if (installCommand) {\n installResult = await spawnWithInput(installCommand, {\n cwd: runDir,\n env,\n outputLimitBytes,\n stdin: '',\n timeLimitSeconds: options.timeLimitSeconds,\n });\n if (isFailedSpawnResult(installResult)) {\n return toPackageManagerCommandRunResult({\n elapsedTimeSeconds: (Date.now() - startedAt) / 1000,\n options,\n result: installResult,\n });\n }\n }\n\n const remainingTimeLimitSeconds = options.timeLimitSeconds - (Date.now() - startedAt) / 1000;\n if (remainingTimeLimitSeconds <= 0) {\n return {\n stdin: options.stdin ?? '',\n stdout: installResult?.stdout ?? '',\n stderr: installResult?.stderr ?? '',\n status: 0,\n timeSeconds: options.timeLimitSeconds + 1e-3,\n memoryBytes: installResult?.memoryBytes ?? 0,\n timedOut: true,\n signal: installResult?.signal,\n outputLimitExceeded: false,\n };\n }\n\n const result = await spawnWithInput(command, {\n cwd: runDir,\n env,\n outputLimitBytes,\n stdin: options.stdin ?? '',\n timeLimitSeconds: remainingTimeLimitSeconds,\n });\n const elapsedTimeSeconds = (Date.now() - startedAt) / 1000;\n\n if (installResult) {\n return toPackageManagerCommandRunResult({\n elapsedTimeSeconds,\n options,\n result: {\n ...result,\n timeSeconds: installResult.timeSeconds + result.timeSeconds,\n memoryBytes: Math.max(installResult.memoryBytes, result.memoryBytes),\n },\n });\n }\n\n return toPackageManagerCommandRunResult({ elapsedTimeSeconds, options, result });\n } finally {\n await fs.rm(runDir, { force: true, recursive: true });\n }\n}\n\nfunction toPackageManagerCommandRunResult(context: {\n elapsedTimeSeconds: number;\n options: RunCommandInTemporaryPackageManagerProjectOptions;\n result: Awaited<ReturnType<typeof spawnWithInput>>;\n}): PackageManagerCommandRunResult {\n return {\n stdin: context.options.stdin ?? '',\n stdout: context.result.stdout,\n stderr: context.result.stderr,\n status: context.result.timedOut || context.result.outputLimitExceeded ? 0 : context.result.status,\n timeSeconds: context.result.timedOut\n ? context.options.timeLimitSeconds + 1e-3\n : context.result.timeSeconds || context.elapsedTimeSeconds,\n memoryBytes: context.result.memoryBytes,\n timedOut: context.result.timedOut,\n signal: context.result.signal,\n outputLimitExceeded: context.result.outputLimitExceeded,\n };\n}\n\nfunction resolveInstallCommand(packageManager: PackageManager): readonly [string, ...string[]] | undefined {\n return packageManagerInstallCommands[packageManager];\n}\n\nfunction isFailedSpawnResult(result: Awaited<ReturnType<typeof spawnWithInput>>): boolean {\n return result.status !== 0 || result.timedOut || result.outputLimitExceeded;\n}\n\nexport async function copyPackageManagerProjectFiles(options: {\n packageManager: PackageManager;\n projectDir: string;\n runDir: string;\n projectFilePaths?: readonly string[];\n}): Promise<void> {\n for (const projectFilePath of options.projectFilePaths ?? packageManagerProjectFilePaths[options.packageManager]) {\n await copyPathIfExists(path.join(options.projectDir, projectFilePath), path.join(options.runDir, projectFilePath));\n }\n}\n\nasync function copyPathIfExists(sourcePath: string, destinationPath: string): Promise<void> {\n try {\n await fs.cp(sourcePath, destinationPath, { recursive: true });\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n }\n}\n\nasync function spawnWithInput(\n command: readonly [string, ...string[]],\n context: {\n cwd: string;\n env: NodeJS.ProcessEnv;\n outputLimitBytes: number;\n stdin: string;\n timeLimitSeconds: number;\n }\n): Promise<{\n stdout: string;\n stderr: string;\n status: number | undefined;\n timeSeconds: number;\n memoryBytes: number;\n timedOut: boolean;\n signal: NodeJS.Signals | undefined;\n outputLimitExceeded: boolean;\n}> {\n const timeOutputPath = timeCommand === undefined ? undefined : path.join(context.cwd, '.exercode-time-result');\n const spawnedCommand =\n timeCommand === undefined ? command : ([...timeCommand, `--output=${timeOutputPath}`, ...command] as const);\n const subprocess = childProcess.spawn(spawnedCommand[0], spawnedCommand.slice(1), {\n cwd: context.cwd,\n detached: process.platform !== 'win32',\n env: context.env,\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n const stdoutChunks: Buffer[] = [];\n const stderrChunks: Buffer[] = [];\n let outputBytes = 0;\n let timedOut = false;\n let outputLimitExceeded = false;\n\n const appendOutputChunk = (chunks: Buffer[], chunk: Buffer): void => {\n if (outputBytes >= context.outputLimitBytes) {\n if (chunk.byteLength > 0) {\n outputLimitExceeded = true;\n killSubprocessGroup(subprocess, 'SIGKILL');\n }\n return;\n }\n\n const remainingBytes = context.outputLimitBytes - outputBytes;\n const appendedChunk = chunk.byteLength > remainingBytes ? chunk.subarray(0, remainingBytes) : chunk;\n chunks.push(appendedChunk);\n outputBytes += appendedChunk.byteLength;\n\n if (chunk.byteLength > remainingBytes) {\n outputLimitExceeded = true;\n killSubprocessGroup(subprocess, 'SIGKILL');\n }\n };\n\n subprocess.stdout.on('data', (chunk: Buffer) => appendOutputChunk(stdoutChunks, chunk));\n subprocess.stderr.on('data', (chunk: Buffer) => appendOutputChunk(stderrChunks, chunk));\n\n const timeout = setTimeout(() => {\n timedOut = true;\n killSubprocessGroup(subprocess, 'SIGTERM');\n }, context.timeLimitSeconds * 1000);\n const killTimeout = setTimeout(\n () => {\n if (timedOut) killSubprocessGroup(subprocess, 'SIGKILL');\n },\n context.timeLimitSeconds * 1000 + killGracePeriodMilliseconds\n );\n killTimeout.unref();\n\n const { status, signal } = await new Promise<{ status: number | undefined; signal: NodeJS.Signals | undefined }>(\n (resolve, reject) => {\n let settled = false;\n let pendingError: Error | undefined;\n const failAfterClose = (error: Error): void => {\n if (settled) return;\n pendingError = error;\n killSubprocessGroup(subprocess, 'SIGKILL');\n if (subprocess.pid === undefined) {\n settled = true;\n reject(error);\n }\n };\n subprocess.on('error', failAfterClose);\n subprocess.stdin.on('error', (error: NodeJS.ErrnoException) => {\n if (error.code !== 'EPIPE') failAfterClose(error);\n });\n subprocess.on('close', (code, closeSignal) => {\n if (settled) return;\n settled = true;\n if (pendingError) {\n reject(pendingError);\n return;\n }\n resolve({ status: code ?? undefined, signal: closeSignal ?? undefined });\n });\n subprocess.stdin.end(context.stdin);\n }\n ).finally(() => {\n clearTimeout(timeout);\n clearTimeout(killTimeout);\n });\n\n const { timeSeconds, memoryBytes } =\n timeOutputPath === undefined ? { timeSeconds: 0, memoryBytes: 0 } : await readTimeResult(timeOutputPath);\n\n return {\n stdout: Buffer.concat(stdoutChunks).toString(),\n stderr: Buffer.concat(stderrChunks).toString(),\n status,\n timeSeconds,\n memoryBytes,\n timedOut,\n signal,\n outputLimitExceeded,\n };\n}\n\nfunction resolveTimeCommand(): readonly [string, ...string[]] | undefined {\n const command = os.platform() === 'darwin' ? 'gtime' : '/usr/bin/time';\n const result = childProcess.spawnSync(command, ['--version'], { stdio: 'ignore' });\n if (result.error || result.status !== 0) return undefined;\n\n return [command, '--format', '%e %M'];\n}\n\nfunction killSubprocessGroup(subprocess: childProcess.ChildProcess, signal: NodeJS.Signals): void {\n if (subprocess.pid === undefined) return;\n\n try {\n if (process.platform === 'win32') {\n subprocess.kill(signal);\n return;\n }\n process.kill(-subprocess.pid, signal);\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ESRCH' && code !== 'EPERM') throw error;\n }\n}\n\nasync function readTimeResult(timeOutputPath: string): Promise<{ timeSeconds: number; memoryBytes: number }> {\n let content: string;\n try {\n content = await fs.readFile(timeOutputPath, 'utf8');\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n return { timeSeconds: 0, memoryBytes: 0 };\n }\n\n const match = /(\\d+(?:[.,]\\d+)?) (\\d+)\\s*$/.exec(content);\n if (!match) return { timeSeconds: 0, memoryBytes: 0 };\n\n return { timeSeconds: Number(match[1]!.replace(',', '.')), memoryBytes: Number(match[2]) * 1024 };\n}\n"],"names":["command","result","packageManagerProjectFilePaths","bun","cargo","go","gradle","maven","npm","pnpm","ruby","uv","yarn","packageManagerInstallCommands","timeCommand","os","platform","childProcess","spawnSync","stdio","error","status","_runCommandInTemporaryPackageManagerProject","_asyncToGenerator","_regenerator","m","_callee","options","_options$tempDirPrefi","runDir","_options$outputLimitB","_options$stdin2","env","installCommand","startedAt","outputLimitBytes","installResult","remainingTimeLimitSeconds","_options$stdin","_installResult$stdout","_installResult","_installResult$stderr","_installResult2","_installResult$memory","_installResult3","_installResult4","elapsedTimeSeconds","w","_context","p","n","fs","mkdtemp","path","join","tmpdir","tempDirPrefix","v","cp","cwd","recursive","copyPackageManagerProjectFiles","packageManager","projectDir","projectFilePaths","_objectSpread","process","resolveInstallCommand","Date","now","spawnWithInput","stdin","timeLimitSeconds","isFailedSpawnResult","a","toPackageManagerCommandRunResult","stdout","stderr","timeSeconds","memoryBytes","timedOut","signal","outputLimitExceeded","Math","max","rm","force","f","apply","this","arguments","context","_context$options$stdi","_x2","_copyPackageManagerProjectFiles","_callee2","_options$projectFileP","_iterator","_step","projectFilePath","_t","_context2","_createForOfIteratorHelper","s","done","value","copyPathIfExists","e","_x3","_x4","_copyPathIfExists","_callee3","sourcePath","destinationPath","_t2","_context3","_typeof","code","undefined","_x5","_x6","_spawnWithInput","_callee4","timeOutputPath","spawnedCommand","subprocess","stdoutChunks","stderrChunks","outputBytes","appendOutputChunk","timeout","killTimeout","_yield$Promise$finall","_ref","_t3","_context4","concat","_toConsumableArray","spawn","slice","detached","chunks","chunk","byteLength","killSubprocessGroup","remainingBytes","appendedChunk","subarray","push","on","setTimeout","unref","Promise","resolve","reject","pendingError","settled","failAfterClose","pid","closeSignal","end","clearTimeout","readTimeResult","Buffer","toString","kill","_x7","_readTimeResult","_callee5","content","match","_t4","_context5","readFile","exec","Number","replace","_x"],"mappings":"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"}
{"version":3,"file":"runCommandInTemporaryPackageManagerProject.cjs","sources":["../../src/helpers/runCommandInTemporaryPackageManagerProject.ts"],"sourcesContent":["import childProcess from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\n\nexport type PackageManager = 'bun' | 'cargo' | 'go' | 'gradle' | 'maven' | 'npm' | 'pnpm' | 'ruby' | 'uv' | 'yarn';\ntype PackageManagerInstallCommand = readonly [string, ...string[]];\n\nexport interface PackageManagerCommandRunResult {\n stdin: string;\n stdout: string;\n stderr: string;\n status: number | undefined;\n timeSeconds: number;\n memoryBytes: number;\n timedOut: boolean;\n signal: NodeJS.Signals | undefined;\n outputLimitExceeded: boolean;\n}\n\nexport interface RunCommandInTemporaryPackageManagerProjectOptions {\n cwd: string;\n projectDir: string;\n packageManager: PackageManager;\n command: readonly [string, ...string[]] | ((context: { runDir: string }) => readonly [string, ...string[]]);\n stdin?: string;\n env?: NodeJS.ProcessEnv;\n timeLimitSeconds: number;\n outputLimitBytes?: number;\n tempDirPrefix?: string;\n projectFilePaths?: readonly string[];\n}\n\nconst packageManagerProjectFilePaths = {\n bun: ['package.json', 'bun.lock', 'bun.lockb'],\n cargo: ['Cargo.toml', 'Cargo.lock'],\n go: ['go.mod', 'go.sum'],\n gradle: [\n 'build.gradle',\n 'build.gradle.kts',\n 'settings.gradle',\n 'settings.gradle.kts',\n 'gradle.properties',\n 'gradle.lockfile',\n 'buildscript-gradle.lockfile',\n 'gradle',\n 'gradlew',\n 'gradlew.bat',\n ],\n maven: ['pom.xml', '.mvn', 'mvnw', 'mvnw.cmd'],\n npm: ['package.json', 'package-lock.json'],\n pnpm: ['package.json', 'pnpm-lock.yaml', 'pnpm-workspace.yaml'],\n ruby: ['Gemfile', 'Gemfile.lock', '.ruby-version'],\n uv: ['pyproject.toml', 'uv.lock'],\n yarn: ['package.json', 'yarn.lock', '.yarnrc', '.yarnrc.yml', '.yarn'],\n} as const satisfies Record<PackageManager, readonly string[]>;\n\nconst packageManagerInstallCommandResolvers = {\n bun: resolveBunInstallCommand,\n cargo: resolveCargoInstallCommand,\n go: resolveGoInstallCommand,\n gradle: resolveGradleInstallCommand,\n maven: resolveMavenInstallCommand,\n npm: resolveNpmInstallCommand,\n pnpm: resolvePnpmInstallCommand,\n ruby: resolveRubyInstallCommand,\n uv: resolveUvInstallCommand,\n yarn: resolveYarnInstallCommand,\n} as const satisfies Record<PackageManager, (runDir: string) => Promise<PackageManagerInstallCommand | undefined>>;\n\nconst defaultOutputLimitBytes = 50 * 1024 * 1024;\nconst killGracePeriodMilliseconds = 1000;\nconst timeCommand = resolveTimeCommand();\n\n/**\n * Copies a submission directory to a temporary directory, overlays package\n * manager project files from the problem directory, prepares dependencies,\n * runs a command, and then removes the temporary directory.\n */\nexport async function runCommandInTemporaryPackageManagerProject(\n options: RunCommandInTemporaryPackageManagerProjectOptions\n): Promise<PackageManagerCommandRunResult> {\n const runDir = await fs.mkdtemp(path.join(os.tmpdir(), options.tempDirPrefix ?? 'exercode-'));\n try {\n await fs.cp(options.cwd, runDir, { recursive: true });\n await copyPackageManagerProjectFiles({\n packageManager: options.packageManager,\n projectDir: options.projectDir,\n runDir,\n projectFilePaths: options.projectFilePaths,\n });\n\n const env = options.env ? { ...process.env, ...options.env } : process.env;\n const installCommand = await resolveInstallCommand(options.packageManager, runDir);\n const command = typeof options.command === 'function' ? options.command({ runDir }) : options.command;\n const startedAt = Date.now();\n const outputLimitBytes = options.outputLimitBytes ?? defaultOutputLimitBytes;\n let installResult: Awaited<ReturnType<typeof spawnWithInput>> | undefined;\n\n if (installCommand) {\n installResult = await spawnWithInput(installCommand, {\n cwd: runDir,\n env,\n outputLimitBytes,\n stdin: '',\n timeLimitSeconds: options.timeLimitSeconds,\n });\n if (isFailedSpawnResult(installResult)) {\n return toPackageManagerCommandRunResult({\n elapsedTimeSeconds: (Date.now() - startedAt) / 1000,\n options,\n result: installResult,\n });\n }\n }\n\n const remainingTimeLimitSeconds = options.timeLimitSeconds - (Date.now() - startedAt) / 1000;\n if (remainingTimeLimitSeconds <= 0) {\n return {\n stdin: options.stdin ?? '',\n stdout: installResult?.stdout ?? '',\n stderr: installResult?.stderr ?? '',\n status: 0,\n timeSeconds: options.timeLimitSeconds + 1e-3,\n memoryBytes: installResult?.memoryBytes ?? 0,\n timedOut: true,\n signal: installResult?.signal,\n outputLimitExceeded: false,\n };\n }\n\n const result = await spawnWithInput(command, {\n cwd: runDir,\n env,\n outputLimitBytes,\n stdin: options.stdin ?? '',\n timeLimitSeconds: remainingTimeLimitSeconds,\n });\n const elapsedTimeSeconds = (Date.now() - startedAt) / 1000;\n\n if (installResult) {\n return toPackageManagerCommandRunResult({\n elapsedTimeSeconds,\n options,\n result: {\n ...result,\n timeSeconds: installResult.timeSeconds + result.timeSeconds,\n memoryBytes: Math.max(installResult.memoryBytes, result.memoryBytes),\n },\n });\n }\n\n return toPackageManagerCommandRunResult({ elapsedTimeSeconds, options, result });\n } finally {\n await fs.rm(runDir, { force: true, recursive: true });\n }\n}\n\nfunction toPackageManagerCommandRunResult(context: {\n elapsedTimeSeconds: number;\n options: RunCommandInTemporaryPackageManagerProjectOptions;\n result: Awaited<ReturnType<typeof spawnWithInput>>;\n}): PackageManagerCommandRunResult {\n return {\n stdin: context.options.stdin ?? '',\n stdout: context.result.stdout,\n stderr: context.result.stderr,\n status: context.result.timedOut || context.result.outputLimitExceeded ? 0 : context.result.status,\n timeSeconds: context.result.timedOut\n ? context.options.timeLimitSeconds + 1e-3\n : context.result.timeSeconds || context.elapsedTimeSeconds,\n memoryBytes: context.result.memoryBytes,\n timedOut: context.result.timedOut,\n signal: context.result.signal,\n outputLimitExceeded: context.result.outputLimitExceeded,\n };\n}\n\nfunction resolveInstallCommand(\n packageManager: PackageManager,\n runDir: string\n): Promise<PackageManagerInstallCommand | undefined> {\n return packageManagerInstallCommandResolvers[packageManager](runDir);\n}\n\nfunction isFailedSpawnResult(result: Awaited<ReturnType<typeof spawnWithInput>>): boolean {\n return result.status !== 0 || result.timedOut || result.outputLimitExceeded;\n}\n\nasync function resolveBunInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'package.json')))) return undefined;\n // Bun supports --silent and it keeps successful preparation output out of judge output buffers.\n return (await hasAnyPath(runDir, ['bun.lock', 'bun.lockb']))\n ? ['bun', 'install', '--frozen-lockfile', '--silent']\n : ['bun', 'install', '--silent'];\n}\n\nasync function resolveCargoInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'Cargo.toml')))) return undefined;\n return (await pathExists(path.join(runDir, 'Cargo.lock'))) ? ['cargo', 'fetch', '--locked'] : ['cargo', 'fetch'];\n}\n\nasync function resolveGoInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'go.mod')))) return undefined;\n return ['go', 'mod', 'download'];\n}\n\nasync function resolveGradleInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (\n !(await hasAnyPath(runDir, [\n 'build.gradle',\n 'build.gradle.kts',\n 'settings.gradle',\n 'settings.gradle.kts',\n 'gradlew',\n 'gradlew.bat',\n ]))\n )\n return undefined;\n const args = ['--no-daemon', '--quiet', 'dependencies'] as const;\n if (process.platform === 'win32') {\n return (await pathExists(path.join(runDir, 'gradlew.bat')))\n ? ['cmd.exe', '/c', 'gradlew.bat', ...args]\n : ['gradle', ...args];\n }\n return (await pathExists(path.join(runDir, 'gradlew'))) ? ['sh', './gradlew', ...args] : ['gradle', ...args];\n}\n\nasync function resolveMavenInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'pom.xml')))) return undefined;\n const args = ['-q', 'dependency:go-offline'] as const;\n if (process.platform === 'win32') {\n return (await pathExists(path.join(runDir, 'mvnw.cmd')))\n ? ['cmd.exe', '/c', 'mvnw.cmd', ...args]\n : ['mvn', ...args];\n }\n return (await pathExists(path.join(runDir, 'mvnw'))) ? ['sh', './mvnw', ...args] : ['mvn', ...args];\n}\n\nasync function resolveNpmInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'package.json')))) return undefined;\n return (await pathExists(path.join(runDir, 'package-lock.json')))\n ? ['npm', 'ci', '--silent']\n : ['npm', 'install', '--silent'];\n}\n\nasync function resolvePnpmInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'package.json')))) return undefined;\n return (await pathExists(path.join(runDir, 'pnpm-lock.yaml')))\n ? ['pnpm', 'install', '--frozen-lockfile', '--silent']\n : ['pnpm', 'install', '--silent'];\n}\n\nasync function resolveRubyInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'Gemfile')))) return undefined;\n return (await pathExists(path.join(runDir, 'Gemfile.lock')))\n ? ['bundle', 'install', '--frozen', '--quiet']\n : ['bundle', 'install', '--quiet'];\n}\n\nasync function resolveUvInstallCommand(): Promise<undefined> {\n return undefined;\n}\n\nasync function resolveYarnInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'package.json')))) return undefined;\n const isBerry = await isYarnBerryProject(runDir);\n const hasLockfile = await pathExists(path.join(runDir, 'yarn.lock'));\n if (isBerry) return hasLockfile ? ['yarn', 'install', '--immutable'] : ['yarn', 'install'];\n return hasLockfile ? ['yarn', 'install', '--frozen-lockfile', '--silent'] : ['yarn', 'install', '--silent'];\n}\n\nasync function isYarnBerryProject(runDir: string): Promise<boolean> {\n if (await pathExists(path.join(runDir, '.yarnrc.yml'))) return true;\n\n const packageJson = await readJson(path.join(runDir, 'package.json'));\n const packageManager = typeof packageJson.packageManager === 'string' ? packageJson.packageManager : undefined;\n const yarnMajorVersion = /^yarn@(\\d+)/.exec(packageManager ?? '')?.[1];\n return yarnMajorVersion !== undefined && Number(yarnMajorVersion) >= 2;\n}\n\nasync function hasAnyPath(directoryPath: string, relativePaths: readonly string[]): Promise<boolean> {\n for (const relativePath of relativePaths) {\n if (await pathExists(path.join(directoryPath, relativePath))) return true;\n }\n return false;\n}\n\nasync function pathExists(filePath: string): Promise<boolean> {\n try {\n await fs.access(filePath);\n return true;\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n return false;\n }\n}\n\nasync function readJson(filePath: string): Promise<Record<string, unknown>> {\n try {\n const parsed = JSON.parse(await fs.readFile(filePath, 'utf8')) as unknown;\n return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)\n ? (parsed as Record<string, unknown>)\n : {};\n } catch (error) {\n if (error instanceof SyntaxError) return {};\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code === 'ENOENT') return {};\n throw error;\n }\n}\n\nexport async function copyPackageManagerProjectFiles(options: {\n packageManager: PackageManager;\n projectDir: string;\n runDir: string;\n projectFilePaths?: readonly string[];\n}): Promise<void> {\n for (const projectFilePath of options.projectFilePaths ?? packageManagerProjectFilePaths[options.packageManager]) {\n await copyPathIfExists(path.join(options.projectDir, projectFilePath), path.join(options.runDir, projectFilePath));\n }\n}\n\nasync function copyPathIfExists(sourcePath: string, destinationPath: string): Promise<void> {\n try {\n await fs.cp(sourcePath, destinationPath, { recursive: true });\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n }\n}\n\nasync function spawnWithInput(\n command: readonly [string, ...string[]],\n context: {\n cwd: string;\n env: NodeJS.ProcessEnv;\n outputLimitBytes: number;\n stdin: string;\n timeLimitSeconds: number;\n }\n): Promise<{\n stdout: string;\n stderr: string;\n status: number | undefined;\n timeSeconds: number;\n memoryBytes: number;\n timedOut: boolean;\n signal: NodeJS.Signals | undefined;\n outputLimitExceeded: boolean;\n}> {\n const timeOutputPath = timeCommand === undefined ? undefined : path.join(context.cwd, '.exercode-time-result');\n const spawnedCommand =\n timeCommand === undefined ? command : ([...timeCommand, `--output=${timeOutputPath}`, ...command] as const);\n const subprocess = childProcess.spawn(spawnedCommand[0], spawnedCommand.slice(1), {\n cwd: context.cwd,\n detached: process.platform !== 'win32',\n env: context.env,\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n const stdoutChunks: Buffer[] = [];\n const stderrChunks: Buffer[] = [];\n let outputBytes = 0;\n let timedOut = false;\n let outputLimitExceeded = false;\n\n const appendOutputChunk = (chunks: Buffer[], chunk: Buffer): void => {\n if (outputBytes >= context.outputLimitBytes) {\n if (chunk.byteLength > 0) {\n outputLimitExceeded = true;\n killSubprocessGroup(subprocess, 'SIGKILL');\n }\n return;\n }\n\n const remainingBytes = context.outputLimitBytes - outputBytes;\n const appendedChunk = chunk.byteLength > remainingBytes ? chunk.subarray(0, remainingBytes) : chunk;\n chunks.push(appendedChunk);\n outputBytes += appendedChunk.byteLength;\n\n if (chunk.byteLength > remainingBytes) {\n outputLimitExceeded = true;\n killSubprocessGroup(subprocess, 'SIGKILL');\n }\n };\n\n subprocess.stdout.on('data', (chunk: Buffer) => appendOutputChunk(stdoutChunks, chunk));\n subprocess.stderr.on('data', (chunk: Buffer) => appendOutputChunk(stderrChunks, chunk));\n\n const timeout = setTimeout(() => {\n timedOut = true;\n killSubprocessGroup(subprocess, 'SIGTERM');\n }, context.timeLimitSeconds * 1000);\n const killTimeout = setTimeout(\n () => {\n if (timedOut) killSubprocessGroup(subprocess, 'SIGKILL');\n },\n context.timeLimitSeconds * 1000 + killGracePeriodMilliseconds\n );\n killTimeout.unref();\n\n const { status, signal } = await new Promise<{ status: number | undefined; signal: NodeJS.Signals | undefined }>(\n (resolve, reject) => {\n let settled = false;\n let pendingError: Error | undefined;\n const failAfterClose = (error: Error): void => {\n if (settled) return;\n pendingError = error;\n killSubprocessGroup(subprocess, 'SIGKILL');\n if (subprocess.pid === undefined) {\n settled = true;\n reject(error);\n }\n };\n subprocess.on('error', failAfterClose);\n subprocess.stdin.on('error', (error: NodeJS.ErrnoException) => {\n if (error.code !== 'EPIPE') failAfterClose(error);\n });\n subprocess.on('close', (code, closeSignal) => {\n if (settled) return;\n settled = true;\n if (pendingError) {\n reject(pendingError);\n return;\n }\n resolve({ status: code ?? undefined, signal: closeSignal ?? undefined });\n });\n subprocess.stdin.end(context.stdin);\n }\n ).finally(() => {\n clearTimeout(timeout);\n clearTimeout(killTimeout);\n });\n\n const { timeSeconds, memoryBytes } =\n timeOutputPath === undefined ? { timeSeconds: 0, memoryBytes: 0 } : await readTimeResult(timeOutputPath);\n\n return {\n stdout: Buffer.concat(stdoutChunks).toString(),\n stderr: Buffer.concat(stderrChunks).toString(),\n status,\n timeSeconds,\n memoryBytes,\n timedOut,\n signal,\n outputLimitExceeded,\n };\n}\n\nfunction resolveTimeCommand(): readonly [string, ...string[]] | undefined {\n const command = os.platform() === 'darwin' ? 'gtime' : '/usr/bin/time';\n const result = childProcess.spawnSync(command, ['--version'], { stdio: 'ignore' });\n if (result.error || result.status !== 0) return undefined;\n\n return [command, '--format', '%e %M'];\n}\n\nfunction killSubprocessGroup(subprocess: childProcess.ChildProcess, signal: NodeJS.Signals): void {\n if (subprocess.pid === undefined) return;\n\n try {\n if (process.platform === 'win32') {\n subprocess.kill(signal);\n return;\n }\n process.kill(-subprocess.pid, signal);\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ESRCH' && code !== 'EPERM') throw error;\n }\n}\n\nasync function readTimeResult(timeOutputPath: string): Promise<{ timeSeconds: number; memoryBytes: number }> {\n let content: string;\n try {\n content = await fs.readFile(timeOutputPath, 'utf8');\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n return { timeSeconds: 0, memoryBytes: 0 };\n }\n\n const match = /(\\d+(?:[.,]\\d+)?) (\\d+)\\s*$/.exec(content);\n if (!match) return { timeSeconds: 0, memoryBytes: 0 };\n\n return { timeSeconds: Number(match[1]!.replace(',', '.')), memoryBytes: Number(match[2]) * 1024 };\n}\n"],"names":["command","result","packageManagerProjectFilePaths","bun","cargo","go","gradle","maven","npm","pnpm","ruby","uv","yarn","packageManagerInstallCommandResolvers","_x2","_resolveBunInstallCommand","apply","this","arguments","_x3","_resolveCargoInstallCommand","_x4","_resolveGoInstallCommand","_x5","_resolveGradleInstallCommand","_x6","_resolveMavenInstallCommand","_x7","_resolveNpmInstallCommand","_x8","_resolvePnpmInstallCommand","_x9","_resolveRubyInstallCommand","_resolveUvInstallCommand","_x0","_resolveYarnInstallCommand","timeCommand","os","platform","childProcess","spawnSync","stdio","error","status","_runCommandInTemporaryPackageManagerProject","_asyncToGenerator","_regenerator","m","_callee","options","_options$tempDirPrefi","runDir","_options$outputLimitB","_options$stdin2","env","installCommand","startedAt","outputLimitBytes","installResult","remainingTimeLimitSeconds","_options$stdin","_installResult$stdout","_installResult","_installResult$stderr","_installResult2","_installResult$memory","_installResult3","_installResult4","elapsedTimeSeconds","w","_context","p","n","fs","mkdtemp","path","join","tmpdir","tempDirPrefix","v","cp","cwd","recursive","copyPackageManagerProjectFiles","packageManager","projectDir","projectFilePaths","_objectSpread","process","resolveInstallCommand","Date","now","spawnWithInput","stdin","timeLimitSeconds","isFailedSpawnResult","a","toPackageManagerCommandRunResult","stdout","stderr","timeSeconds","memoryBytes","timedOut","signal","outputLimitExceeded","Math","max","rm","force","f","context","_context$options$stdi","_callee2","_t","_context2","pathExists","undefined","hasAnyPath","_callee3","_t2","_context3","_callee4","_context4","_callee5","args","_t3","_t4","_context5","concat","_callee6","_t5","_t6","_context6","_callee7","_t7","_context7","_callee8","_t8","_context8","_callee9","_t9","_context9","_callee0","_context0","_callee1","isBerry","hasLockfile","_context1","isYarnBerryProject","_x1","_isYarnBerryProject","_callee10","_exec","packageJson","yarnMajorVersion","_context10","readJson","exec","Number","_x10","_x11","_hasAnyPath","_callee11","directoryPath","relativePaths","_iterator","_step","relativePath","_t0","_context11","_createForOfIteratorHelper","s","done","value","e","_x12","_pathExists","_callee12","filePath","_t1","_context12","access","_typeof","code","_x13","_readJson","_callee13","parsed","_t10","_t11","_context13","JSON","readFile","parse","call","Array","isArray","SyntaxError","_x14","_copyPackageManagerProjectFiles","_callee14","_options$projectFileP","_iterator2","_step2","projectFilePath","_t12","_context14","copyPathIfExists","_x15","_x16","_copyPathIfExists","_callee15","sourcePath","destinationPath","_t13","_context15","_x17","_x18","_spawnWithInput","_callee16","timeOutputPath","spawnedCommand","subprocess","stdoutChunks","stderrChunks","outputBytes","appendOutputChunk","timeout","killTimeout","_yield$Promise$finall","_ref","_t14","_context16","_toConsumableArray","spawn","slice","detached","chunks","chunk","byteLength","killSubprocessGroup","remainingBytes","appendedChunk","subarray","push","on","setTimeout","unref","Promise","resolve","reject","pendingError","settled","failAfterClose","pid","closeSignal","end","clearTimeout","readTimeResult","Buffer","toString","kill","_x19","_readTimeResult","_callee17","content","match","_t15","_context17","replace","_x"],"mappings":"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"}

@@ -1,2 +0,2 @@

import{asyncToGenerator as e,regenerator as t,objectSpread2 as n,createForOfIteratorHelper as r,typeof as i,toConsumableArray as o}from"../_virtual/_rollupPluginBabelHelpers.js";import s from"node:child_process";import a from"node:fs/promises";import u from"node:os";import c from"node:path";var l,m,d={bun:["package.json","bun.lock","bun.lockb"],cargo:["Cargo.toml","Cargo.lock"],go:["go.mod","go.sum"],gradle:["build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","gradle","gradlew","gradlew.bat"],maven:["pom.xml",".mvn","mvnw","mvnw.cmd"],npm:["package.json","package-lock.json"],pnpm:["package.json","pnpm-lock.yaml","pnpm-workspace.yaml"],ruby:["Gemfile","Gemfile.lock",".ruby-version"],uv:["pyproject.toml","uv.lock"],yarn:["package.json","yarn.lock",".yarnrc.yml",".yarn"]},p={bun:["bun","install","--silent"],npm:["npm","install","--silent"],pnpm:["pnpm","install","--silent"],yarn:["yarn","install","--silent"]},f=(l="darwin"===u.platform()?"gtime":"/usr/bin/time",(m=s.spawnSync(l,["--version"],{stdio:"ignore"})).error||0!==m.status?void 0:[l,"--format","%e %M"]);function y(e){return v.apply(this,arguments)}function v(){return v=e(t().m(function e(r){var i,o,s,l,m,d,p,f,y,v,S,h,L,B,E,x,T,D,I,O,P;return t().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.n=1,a.mkdtemp(c.join(u.tmpdir(),null!=(i=r.tempDirPrefix)?i:"exercode-"));case 1:return o=e.v,e.p=2,e.n=3,a.cp(r.cwd,o,{recursive:!0});case 3:return e.n=4,w({packageManager:r.packageManager,projectDir:r.projectDir,runDir:o,projectFilePaths:r.projectFilePaths});case 4:if(m=r.env?n(n({},process.env),r.env):process.env,d=b(r.packageManager),p="function"==typeof r.command?r.command({runDir:o}):r.command,f=Date.now(),y=null!=(s=r.outputLimitBytes)?s:52428800,!d){e.n=6;break}return e.n=5,j(d,{cwd:o,env:m,outputLimitBytes:y,stdin:"",timeLimitSeconds:r.timeLimitSeconds});case 5:if(!k(v=e.v)){e.n=6;break}return e.a(2,g({elapsedTimeSeconds:(Date.now()-f)/1e3,options:r,result:v}));case 6:if(!((S=r.timeLimitSeconds-(Date.now()-f)/1e3)<=0)){e.n=7;break}return e.a(2,{stdin:null!=(h=r.stdin)?h:"",stdout:null!=(L=null==(B=v)?void 0:B.stdout)?L:"",stderr:null!=(E=null==(x=v)?void 0:x.stderr)?E:"",status:0,timeSeconds:r.timeLimitSeconds+.001,memoryBytes:null!=(T=null==(D=v)?void 0:D.memoryBytes)?T:0,timedOut:!0,signal:null==(I=v)?void 0:I.signal,outputLimitExceeded:!1});case 7:return e.n=8,j(p,{cwd:o,env:m,outputLimitBytes:y,stdin:null!=(l=r.stdin)?l:"",timeLimitSeconds:S});case 8:if(O=e.v,P=(Date.now()-f)/1e3,!v){e.n=9;break}return e.a(2,g({elapsedTimeSeconds:P,options:r,result:n(n({},O),{},{timeSeconds:v.timeSeconds+O.timeSeconds,memoryBytes:Math.max(v.memoryBytes,O.memoryBytes)})}));case 9:return e.a(2,g({elapsedTimeSeconds:P,options:r,result:O}));case 10:return e.p=10,e.n=11,a.rm(o,{force:!0,recursive:!0});case 11:return e.f(10);case 12:return e.a(2)}},e,null,[[2,,10,12]])})),v.apply(this,arguments)}function g(e){var t;return{stdin:null!=(t=e.options.stdin)?t:"",stdout:e.result.stdout,stderr:e.result.stderr,status:e.result.timedOut||e.result.outputLimitExceeded?0:e.result.status,timeSeconds:e.result.timedOut?e.options.timeLimitSeconds+.001:e.result.timeSeconds||e.elapsedTimeSeconds,memoryBytes:e.result.memoryBytes,timedOut:e.result.timedOut,signal:e.result.signal,outputLimitExceeded:e.result.outputLimitExceeded}}function b(e){return p[e]}function k(e){return 0!==e.status||e.timedOut||e.outputLimitExceeded}function w(e){return S.apply(this,arguments)}function S(){return(S=e(t().m(function e(n){var i,o,s,a,u;return t().w(function(e){for(;;)switch(e.p=e.n){case 0:o=r(null!=(i=n.projectFilePaths)?i:d[n.packageManager]),e.p=1,o.s();case 2:if((s=o.n()).done){e.n=4;break}return a=s.value,e.n=3,h(c.join(n.projectDir,a),c.join(n.runDir,a));case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,u=e.v,o.e(u);case 6:return e.p=6,o.f(),e.f(6);case 7:return e.a(2)}},e,null,[[1,5,6,7]])}))).apply(this,arguments)}function h(e,t){return L.apply(this,arguments)}function L(){return(L=e(t().m(function e(n,r){var o;return t().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,a.cp(n,r,{recursive:!0});case 1:e.n=3;break;case 2:if(e.p=2,o=e.v,"ENOENT"===("object"===i(o)&&null!==o&&"code"in o?o.code:void 0)){e.n=3;break}throw o;case 3:return e.a(2)}},e,null,[[0,2]])}))).apply(this,arguments)}function j(e,t){return B.apply(this,arguments)}function B(){return B=e(t().m(function e(n,r){var i,a,u,l,m,d,p,y,v,g,b,k,w,S,h,L,j,B;return t().w(function(e){for(;;)switch(e.n){case 0:return i=void 0===f?void 0:c.join(r.cwd,".exercode-time-result"),a=void 0===f?n:[].concat(o(f),["--output=".concat(i)],o(n)),u=s.spawn(a[0],a.slice(1),{cwd:r.cwd,detached:"win32"!==process.platform,env:r.env,stdio:["pipe","pipe","pipe"]}),l=[],m=[],d=0,p=!1,y=!1,v=function(e,t){if(d>=r.outputLimitBytes)t.byteLength>0&&(y=!0,E(u,"SIGKILL"));else{var n=r.outputLimitBytes-d,i=t.byteLength>n?t.subarray(0,n):t;e.push(i),d+=i.byteLength,t.byteLength>n&&(y=!0,E(u,"SIGKILL"))}},u.stdout.on("data",function(e){return v(l,e)}),u.stderr.on("data",function(e){return v(m,e)}),g=setTimeout(function(){p=!0,E(u,"SIGTERM")},1e3*r.timeLimitSeconds),(b=setTimeout(function(){p&&E(u,"SIGKILL")},1e3*r.timeLimitSeconds+1e3)).unref(),e.n=1,new Promise(function(e,t){var n,i=!1,o=function(e){i||(n=e,E(u,"SIGKILL"),void 0===u.pid&&(i=!0,t(e)))};u.on("error",o),u.stdin.on("error",function(e){"EPIPE"!==e.code&&o(e)}),u.on("close",function(r,o){i||(i=!0,n?t(n):e({status:null!=r?r:void 0,signal:null!=o?o:void 0}))}),u.stdin.end(r.stdin)}).finally(function(){clearTimeout(g),clearTimeout(b)});case 1:if(k=e.v,w=k.status,S=k.signal,void 0!==i){e.n=2;break}B={timeSeconds:0,memoryBytes:0},e.n=4;break;case 2:return e.n=3,x(i);case 3:B=e.v;case 4:return L=(h=B).timeSeconds,j=h.memoryBytes,e.a(2,{stdout:Buffer.concat(l).toString(),stderr:Buffer.concat(m).toString(),status:w,timeSeconds:L,memoryBytes:j,timedOut:p,signal:S,outputLimitExceeded:y})}},e)})),B.apply(this,arguments)}function E(e,t){if(void 0!==e.pid)try{if("win32"===process.platform)return void e.kill(t);process.kill(-e.pid,t)}catch(e){var n="object"===i(e)&&null!==e&&"code"in e?e.code:void 0;if("ESRCH"!==n&&"EPERM"!==n)throw e}}function x(e){return T.apply(this,arguments)}function T(){return(T=e(t().m(function e(n){var r,o,s;return t().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,a.readFile(n,"utf8");case 1:r=e.v,e.n=4;break;case 2:if(e.p=2,s=e.v,"ENOENT"===("object"===i(s)&&null!==s&&"code"in s?s.code:void 0)){e.n=3;break}throw s;case 3:return e.a(2,{timeSeconds:0,memoryBytes:0});case 4:if(o=/(\d+(?:[.,]\d+)?) (\d+)\s*$/.exec(r)){e.n=5;break}return e.a(2,{timeSeconds:0,memoryBytes:0});case 5:return e.a(2,{timeSeconds:Number(o[1].replace(",",".")),memoryBytes:1024*Number(o[2])})}},e,null,[[0,2]])}))).apply(this,arguments)}export{w as copyPackageManagerProjectFiles,y as runCommandInTemporaryPackageManagerProject};
import{asyncToGenerator as n,regenerator as e,objectSpread2 as r,createForOfIteratorHelper as t,typeof as a,toConsumableArray as i}from"../_virtual/_rollupPluginBabelHelpers.js";import o from"node:child_process";import c from"node:fs/promises";import s from"node:os";import u from"node:path";var l,p,f={bun:["package.json","bun.lock","bun.lockb"],cargo:["Cargo.toml","Cargo.lock"],go:["go.mod","go.sum"],gradle:["build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","gradle.lockfile","buildscript-gradle.lockfile","gradle","gradlew","gradlew.bat"],maven:["pom.xml",".mvn","mvnw","mvnw.cmd"],npm:["package.json","package-lock.json"],pnpm:["package.json","pnpm-lock.yaml","pnpm-workspace.yaml"],ruby:["Gemfile","Gemfile.lock",".ruby-version"],uv:["pyproject.toml","uv.lock"],yarn:["package.json","yarn.lock",".yarnrc",".yarnrc.yml",".yarn"]},d={bun:function(n){return h.apply(this,arguments)},cargo:function(n){return w.apply(this,arguments)},go:function(n){return j.apply(this,arguments)},gradle:function(n){return S.apply(this,arguments)},maven:function(n){return L.apply(this,arguments)},npm:function(n){return B.apply(this,arguments)},pnpm:function(n){return E.apply(this,arguments)},ruby:function(n){return x.apply(this,arguments)},uv:function(){return T.apply(this,arguments)},yarn:function(n){return O.apply(this,arguments)}},m=(l="darwin"===s.platform()?"gtime":"/usr/bin/time",(p=o.spawnSync(l,["--version"],{stdio:"ignore"})).error||0!==p.status?void 0:[l,"--format","%e %M"]);function v(n){return y.apply(this,arguments)}function y(){return y=n(e().m(function n(t){var a,i,o,l,p,f,d,m,v,y,h,w,j,S,L,B,E,x,T,O,N;return e().w(function(n){for(;;)switch(n.p=n.n){case 0:return n.n=1,c.mkdtemp(u.join(s.tmpdir(),null!=(a=t.tempDirPrefix)?a:"exercode-"));case 1:return i=n.v,n.p=2,n.n=3,c.cp(t.cwd,i,{recursive:!0});case 3:return n.n=4,q({packageManager:t.packageManager,projectDir:t.projectDir,runDir:i,projectFilePaths:t.projectFilePaths});case 4:return p=t.env?r(r({},process.env),t.env):process.env,n.n=5,b(t.packageManager,i);case 5:if(f=n.v,d="function"==typeof t.command?t.command({runDir:i}):t.command,m=Date.now(),v=null!=(o=t.outputLimitBytes)?o:52428800,!f){n.n=7;break}return n.n=6,H(f,{cwd:i,env:p,outputLimitBytes:v,stdin:"",timeLimitSeconds:t.timeLimitSeconds});case 6:if(!g(y=n.v)){n.n=7;break}return n.a(2,k({elapsedTimeSeconds:(Date.now()-m)/1e3,options:t,result:y}));case 7:if(!((h=t.timeLimitSeconds-(Date.now()-m)/1e3)<=0)){n.n=8;break}return n.a(2,{stdin:null!=(w=t.stdin)?w:"",stdout:null!=(j=null==(S=y)?void 0:S.stdout)?j:"",stderr:null!=(L=null==(B=y)?void 0:B.stderr)?L:"",status:0,timeSeconds:t.timeLimitSeconds+.001,memoryBytes:null!=(E=null==(x=y)?void 0:x.memoryBytes)?E:0,timedOut:!0,signal:null==(T=y)?void 0:T.signal,outputLimitExceeded:!1});case 8:return n.n=9,H(d,{cwd:i,env:p,outputLimitBytes:v,stdin:null!=(l=t.stdin)?l:"",timeLimitSeconds:h});case 9:if(O=n.v,N=(Date.now()-m)/1e3,!y){n.n=10;break}return n.a(2,k({elapsedTimeSeconds:N,options:t,result:r(r({},O),{},{timeSeconds:y.timeSeconds+O.timeSeconds,memoryBytes:Math.max(y.memoryBytes,O.memoryBytes)})}));case 10:return n.a(2,k({elapsedTimeSeconds:N,options:t,result:O}));case 11:return n.p=11,n.n=12,c.rm(i,{force:!0,recursive:!0});case 12:return n.f(11);case 13:return n.a(2)}},n,null,[[2,,11,13]])})),y.apply(this,arguments)}function k(n){var e;return{stdin:null!=(e=n.options.stdin)?e:"",stdout:n.result.stdout,stderr:n.result.stderr,status:n.result.timedOut||n.result.outputLimitExceeded?0:n.result.status,timeSeconds:n.result.timedOut?n.options.timeLimitSeconds+.001:n.result.timeSeconds||n.elapsedTimeSeconds,memoryBytes:n.result.memoryBytes,timedOut:n.result.timedOut,signal:n.result.signal,outputLimitExceeded:n.result.outputLimitExceeded}}function b(n,e){return d[n](e)}function g(n){return 0!==n.status||n.timedOut||n.outputLimitExceeded}function h(){return(h=n(e().m(function n(r){var t;return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,M(u.join(r,"package.json"));case 1:if(n.v){n.n=2;break}return n.a(2,void 0);case 2:return n.n=3,I(r,["bun.lock","bun.lockb"]);case 3:if(!n.v){n.n=4;break}t=["bun","install","--frozen-lockfile","--silent"],n.n=5;break;case 4:t=["bun","install","--silent"];case 5:return n.a(2,t)}},n)}))).apply(this,arguments)}function w(){return(w=n(e().m(function n(r){var t;return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,M(u.join(r,"Cargo.toml"));case 1:if(n.v){n.n=2;break}return n.a(2,void 0);case 2:return n.n=3,M(u.join(r,"Cargo.lock"));case 3:if(!n.v){n.n=4;break}t=["cargo","fetch","--locked"],n.n=5;break;case 4:t=["cargo","fetch"];case 5:return n.a(2,t)}},n)}))).apply(this,arguments)}function j(){return(j=n(e().m(function n(r){return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,M(u.join(r,"go.mod"));case 1:if(n.v){n.n=2;break}return n.a(2,void 0);case 2:return n.a(2,["go","mod","download"])}},n)}))).apply(this,arguments)}function S(){return(S=n(e().m(function n(r){var t,a,i;return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,I(r,["build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradlew","gradlew.bat"]);case 1:if(n.v){n.n=2;break}return n.a(2,void 0);case 2:if(t=["--no-daemon","--quiet","dependencies"],"win32"!==process.platform){n.n=6;break}return n.n=3,M(u.join(r,"gradlew.bat"));case 3:if(!n.v){n.n=4;break}a=["cmd.exe","/c","gradlew.bat"].concat(t),n.n=5;break;case 4:a=["gradle"].concat(t);case 5:return n.a(2,a);case 6:return n.n=7,M(u.join(r,"gradlew"));case 7:if(!n.v){n.n=8;break}i=["sh","./gradlew"].concat(t),n.n=9;break;case 8:i=["gradle"].concat(t);case 9:return n.a(2,i)}},n)}))).apply(this,arguments)}function L(){return(L=n(e().m(function n(r){var t,a,i;return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,M(u.join(r,"pom.xml"));case 1:if(n.v){n.n=2;break}return n.a(2,void 0);case 2:if(t=["-q","dependency:go-offline"],"win32"!==process.platform){n.n=6;break}return n.n=3,M(u.join(r,"mvnw.cmd"));case 3:if(!n.v){n.n=4;break}a=["cmd.exe","/c","mvnw.cmd"].concat(t),n.n=5;break;case 4:a=["mvn"].concat(t);case 5:return n.a(2,a);case 6:return n.n=7,M(u.join(r,"mvnw"));case 7:if(!n.v){n.n=8;break}i=["sh","./mvnw"].concat(t),n.n=9;break;case 8:i=["mvn"].concat(t);case 9:return n.a(2,i)}},n)}))).apply(this,arguments)}function B(){return(B=n(e().m(function n(r){var t;return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,M(u.join(r,"package.json"));case 1:if(n.v){n.n=2;break}return n.a(2,void 0);case 2:return n.n=3,M(u.join(r,"package-lock.json"));case 3:if(!n.v){n.n=4;break}t=["npm","ci","--silent"],n.n=5;break;case 4:t=["npm","install","--silent"];case 5:return n.a(2,t)}},n)}))).apply(this,arguments)}function E(){return(E=n(e().m(function n(r){var t;return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,M(u.join(r,"package.json"));case 1:if(n.v){n.n=2;break}return n.a(2,void 0);case 2:return n.n=3,M(u.join(r,"pnpm-lock.yaml"));case 3:if(!n.v){n.n=4;break}t=["pnpm","install","--frozen-lockfile","--silent"],n.n=5;break;case 4:t=["pnpm","install","--silent"];case 5:return n.a(2,t)}},n)}))).apply(this,arguments)}function x(){return(x=n(e().m(function n(r){var t;return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,M(u.join(r,"Gemfile"));case 1:if(n.v){n.n=2;break}return n.a(2,void 0);case 2:return n.n=3,M(u.join(r,"Gemfile.lock"));case 3:if(!n.v){n.n=4;break}t=["bundle","install","--frozen","--quiet"],n.n=5;break;case 4:t=["bundle","install","--quiet"];case 5:return n.a(2,t)}},n)}))).apply(this,arguments)}function T(){return(T=n(e().m(function n(){return e().w(function(n){for(;;)if(0===n.n)return n.a(2,void 0)},n)}))).apply(this,arguments)}function O(){return(O=n(e().m(function n(r){var t,a;return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,M(u.join(r,"package.json"));case 1:if(n.v){n.n=2;break}return n.a(2,void 0);case 2:return n.n=3,N(r);case 3:return t=n.v,n.n=4,M(u.join(r,"yarn.lock"));case 4:if(a=n.v,!t){n.n=5;break}return n.a(2,a?["yarn","install","--immutable"]:["yarn","install"]);case 5:return n.a(2,a?["yarn","install","--frozen-lockfile","--silent"]:["yarn","install","--silent"])}},n)}))).apply(this,arguments)}function N(n){return D.apply(this,arguments)}function D(){return(D=n(e().m(function n(r){var t,a,i,o;return e().w(function(n){for(;;)switch(n.n){case 0:return n.n=1,M(u.join(r,".yarnrc.yml"));case 1:if(!n.v){n.n=2;break}return n.a(2,!0);case 2:return n.n=3,C(u.join(r,"package.json"));case 3:return a=n.v,i="string"==typeof a.packageManager?a.packageManager:void 0,o=null==(t=/^yarn@(\d+)/.exec(null!=i?i:""))?void 0:t[1],n.a(2,void 0!==o&&Number(o)>=2)}},n)}))).apply(this,arguments)}function I(n,e){return G.apply(this,arguments)}function G(){return(G=n(e().m(function n(r,a){var i,o,c,s;return e().w(function(n){for(;;)switch(n.p=n.n){case 0:i=t(a),n.p=1,i.s();case 2:if((o=i.n()).done){n.n=5;break}return c=o.value,n.n=3,M(u.join(r,c));case 3:if(!n.v){n.n=4;break}return n.a(2,!0);case 4:n.n=2;break;case 5:n.n=7;break;case 6:n.p=6,s=n.v,i.e(s);case 7:return n.p=7,i.f(),n.f(7);case 8:return n.a(2,!1)}},n,null,[[1,6,7,8]])}))).apply(this,arguments)}function M(n){return P.apply(this,arguments)}function P(){return(P=n(e().m(function n(r){var t;return e().w(function(n){for(;;)switch(n.p=n.n){case 0:return n.p=0,n.n=1,c.access(r);case 1:return n.a(2,!0);case 2:if(n.p=2,t=n.v,"ENOENT"===("object"===a(t)&&null!==t&&"code"in t?t.code:void 0)){n.n=3;break}throw t;case 3:return n.a(2,!1)}},n,null,[[0,2]])}))).apply(this,arguments)}function C(n){return F.apply(this,arguments)}function F(){return(F=n(e().m(function n(r){var t,i,o;return e().w(function(n){for(;;)switch(n.p=n.n){case 0:return n.p=0,i=JSON,n.n=1,c.readFile(r,"utf8");case 1:return t=i.parse.call(i,n.v),n.a(2,"object"!==a(t)||null===t||Array.isArray(t)?{}:t);case 2:if(n.p=2,!((o=n.v)instanceof SyntaxError)){n.n=3;break}return n.a(2,{});case 3:if("ENOENT"!==("object"===a(o)&&null!==o&&"code"in o?o.code:void 0)){n.n=4;break}return n.a(2,{});case 4:throw o;case 5:return n.a(2)}},n,null,[[0,2]])}))).apply(this,arguments)}function q(n){return z.apply(this,arguments)}function z(){return(z=n(e().m(function n(r){var a,i,o,c,s;return e().w(function(n){for(;;)switch(n.p=n.n){case 0:i=t(null!=(a=r.projectFilePaths)?a:f[r.packageManager]),n.p=1,i.s();case 2:if((o=i.n()).done){n.n=4;break}return c=o.value,n.n=3,K(u.join(r.projectDir,c),u.join(r.runDir,c));case 3:n.n=2;break;case 4:n.n=6;break;case 5:n.p=5,s=n.v,i.e(s);case 6:return n.p=6,i.f(),n.f(6);case 7:return n.a(2)}},n,null,[[1,5,6,7]])}))).apply(this,arguments)}function K(n,e){return A.apply(this,arguments)}function A(){return(A=n(e().m(function n(r,t){var i;return e().w(function(n){for(;;)switch(n.p=n.n){case 0:return n.p=0,n.n=1,c.cp(r,t,{recursive:!0});case 1:n.n=3;break;case 2:if(n.p=2,i=n.v,"ENOENT"===("object"===a(i)&&null!==i&&"code"in i?i.code:void 0)){n.n=3;break}throw i;case 3:return n.a(2)}},n,null,[[0,2]])}))).apply(this,arguments)}function H(n,e){return R.apply(this,arguments)}function R(){return R=n(e().m(function n(r,t){var a,c,s,l,p,f,d,v,y,k,b,g,h,w,j,S,L,B;return e().w(function(n){for(;;)switch(n.n){case 0:return a=void 0===m?void 0:u.join(t.cwd,".exercode-time-result"),c=void 0===m?r:[].concat(i(m),["--output=".concat(a)],i(r)),s=o.spawn(c[0],c.slice(1),{cwd:t.cwd,detached:"win32"!==process.platform,env:t.env,stdio:["pipe","pipe","pipe"]}),l=[],p=[],f=0,d=!1,v=!1,y=function(n,e){if(f>=t.outputLimitBytes)e.byteLength>0&&(v=!0,_(s,"SIGKILL"));else{var r=t.outputLimitBytes-f,a=e.byteLength>r?e.subarray(0,r):e;n.push(a),f+=a.byteLength,e.byteLength>r&&(v=!0,_(s,"SIGKILL"))}},s.stdout.on("data",function(n){return y(l,n)}),s.stderr.on("data",function(n){return y(p,n)}),k=setTimeout(function(){d=!0,_(s,"SIGTERM")},1e3*t.timeLimitSeconds),(b=setTimeout(function(){d&&_(s,"SIGKILL")},1e3*t.timeLimitSeconds+1e3)).unref(),n.n=1,new Promise(function(n,e){var r,a=!1,i=function(n){a||(r=n,_(s,"SIGKILL"),void 0===s.pid&&(a=!0,e(n)))};s.on("error",i),s.stdin.on("error",function(n){"EPIPE"!==n.code&&i(n)}),s.on("close",function(t,i){a||(a=!0,r?e(r):n({status:null!=t?t:void 0,signal:null!=i?i:void 0}))}),s.stdin.end(t.stdin)}).finally(function(){clearTimeout(k),clearTimeout(b)});case 1:if(g=n.v,h=g.status,w=g.signal,void 0!==a){n.n=2;break}B={timeSeconds:0,memoryBytes:0},n.n=4;break;case 2:return n.n=3,J(a);case 3:B=n.v;case 4:return S=(j=B).timeSeconds,L=j.memoryBytes,n.a(2,{stdout:Buffer.concat(l).toString(),stderr:Buffer.concat(p).toString(),status:h,timeSeconds:S,memoryBytes:L,timedOut:d,signal:w,outputLimitExceeded:v})}},n)})),R.apply(this,arguments)}function _(n,e){if(void 0!==n.pid)try{if("win32"===process.platform)return void n.kill(e);process.kill(-n.pid,e)}catch(n){var r="object"===a(n)&&null!==n&&"code"in n?n.code:void 0;if("ESRCH"!==r&&"EPERM"!==r)throw n}}function J(n){return $.apply(this,arguments)}function $(){return($=n(e().m(function n(r){var t,i,o;return e().w(function(n){for(;;)switch(n.p=n.n){case 0:return n.p=0,n.n=1,c.readFile(r,"utf8");case 1:t=n.v,n.n=4;break;case 2:if(n.p=2,o=n.v,"ENOENT"===("object"===a(o)&&null!==o&&"code"in o?o.code:void 0)){n.n=3;break}throw o;case 3:return n.a(2,{timeSeconds:0,memoryBytes:0});case 4:if(i=/(\d+(?:[.,]\d+)?) (\d+)\s*$/.exec(t)){n.n=5;break}return n.a(2,{timeSeconds:0,memoryBytes:0});case 5:return n.a(2,{timeSeconds:Number(i[1].replace(",",".")),memoryBytes:1024*Number(i[2])})}},n,null,[[0,2]])}))).apply(this,arguments)}export{q as copyPackageManagerProjectFiles,v as runCommandInTemporaryPackageManagerProject};
//# sourceMappingURL=runCommandInTemporaryPackageManagerProject.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"runCommandInTemporaryPackageManagerProject.js","sources":["../../src/helpers/runCommandInTemporaryPackageManagerProject.ts"],"sourcesContent":["import childProcess from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\n\nexport type PackageManager = 'bun' | 'cargo' | 'go' | 'gradle' | 'maven' | 'npm' | 'pnpm' | 'ruby' | 'uv' | 'yarn';\n\nexport interface PackageManagerCommandRunResult {\n stdin: string;\n stdout: string;\n stderr: string;\n status: number | undefined;\n timeSeconds: number;\n memoryBytes: number;\n timedOut: boolean;\n signal: NodeJS.Signals | undefined;\n outputLimitExceeded: boolean;\n}\n\nexport interface RunCommandInTemporaryPackageManagerProjectOptions {\n cwd: string;\n projectDir: string;\n packageManager: PackageManager;\n command: readonly [string, ...string[]] | ((context: { runDir: string }) => readonly [string, ...string[]]);\n stdin?: string;\n env?: NodeJS.ProcessEnv;\n timeLimitSeconds: number;\n outputLimitBytes?: number;\n tempDirPrefix?: string;\n projectFilePaths?: readonly string[];\n}\n\nconst packageManagerProjectFilePaths = {\n bun: ['package.json', 'bun.lock', 'bun.lockb'],\n cargo: ['Cargo.toml', 'Cargo.lock'],\n go: ['go.mod', 'go.sum'],\n gradle: [\n 'build.gradle',\n 'build.gradle.kts',\n 'settings.gradle',\n 'settings.gradle.kts',\n 'gradle.properties',\n 'gradle',\n 'gradlew',\n 'gradlew.bat',\n ],\n maven: ['pom.xml', '.mvn', 'mvnw', 'mvnw.cmd'],\n npm: ['package.json', 'package-lock.json'],\n pnpm: ['package.json', 'pnpm-lock.yaml', 'pnpm-workspace.yaml'],\n ruby: ['Gemfile', 'Gemfile.lock', '.ruby-version'],\n uv: ['pyproject.toml', 'uv.lock'],\n yarn: ['package.json', 'yarn.lock', '.yarnrc.yml', '.yarn'],\n} as const satisfies Record<PackageManager, readonly string[]>;\n\nconst packageManagerInstallCommands: Partial<Record<PackageManager, readonly [string, ...string[]]>> = {\n bun: ['bun', 'install', '--silent'],\n npm: ['npm', 'install', '--silent'],\n pnpm: ['pnpm', 'install', '--silent'],\n yarn: ['yarn', 'install', '--silent'],\n};\n\nconst defaultOutputLimitBytes = 50 * 1024 * 1024;\nconst killGracePeriodMilliseconds = 1000;\nconst timeCommand = resolveTimeCommand();\n\n/**\n * Copies a submission directory to a temporary directory, overlays package\n * manager project files from the problem directory, prepares dependencies,\n * runs a command, and then removes the temporary directory.\n */\nexport async function runCommandInTemporaryPackageManagerProject(\n options: RunCommandInTemporaryPackageManagerProjectOptions\n): Promise<PackageManagerCommandRunResult> {\n const runDir = await fs.mkdtemp(path.join(os.tmpdir(), options.tempDirPrefix ?? 'exercode-'));\n try {\n await fs.cp(options.cwd, runDir, { recursive: true });\n await copyPackageManagerProjectFiles({\n packageManager: options.packageManager,\n projectDir: options.projectDir,\n runDir,\n projectFilePaths: options.projectFilePaths,\n });\n\n const env = options.env ? { ...process.env, ...options.env } : process.env;\n const installCommand = resolveInstallCommand(options.packageManager);\n const command = typeof options.command === 'function' ? options.command({ runDir }) : options.command;\n const startedAt = Date.now();\n const outputLimitBytes = options.outputLimitBytes ?? defaultOutputLimitBytes;\n let installResult: Awaited<ReturnType<typeof spawnWithInput>> | undefined;\n\n if (installCommand) {\n installResult = await spawnWithInput(installCommand, {\n cwd: runDir,\n env,\n outputLimitBytes,\n stdin: '',\n timeLimitSeconds: options.timeLimitSeconds,\n });\n if (isFailedSpawnResult(installResult)) {\n return toPackageManagerCommandRunResult({\n elapsedTimeSeconds: (Date.now() - startedAt) / 1000,\n options,\n result: installResult,\n });\n }\n }\n\n const remainingTimeLimitSeconds = options.timeLimitSeconds - (Date.now() - startedAt) / 1000;\n if (remainingTimeLimitSeconds <= 0) {\n return {\n stdin: options.stdin ?? '',\n stdout: installResult?.stdout ?? '',\n stderr: installResult?.stderr ?? '',\n status: 0,\n timeSeconds: options.timeLimitSeconds + 1e-3,\n memoryBytes: installResult?.memoryBytes ?? 0,\n timedOut: true,\n signal: installResult?.signal,\n outputLimitExceeded: false,\n };\n }\n\n const result = await spawnWithInput(command, {\n cwd: runDir,\n env,\n outputLimitBytes,\n stdin: options.stdin ?? '',\n timeLimitSeconds: remainingTimeLimitSeconds,\n });\n const elapsedTimeSeconds = (Date.now() - startedAt) / 1000;\n\n if (installResult) {\n return toPackageManagerCommandRunResult({\n elapsedTimeSeconds,\n options,\n result: {\n ...result,\n timeSeconds: installResult.timeSeconds + result.timeSeconds,\n memoryBytes: Math.max(installResult.memoryBytes, result.memoryBytes),\n },\n });\n }\n\n return toPackageManagerCommandRunResult({ elapsedTimeSeconds, options, result });\n } finally {\n await fs.rm(runDir, { force: true, recursive: true });\n }\n}\n\nfunction toPackageManagerCommandRunResult(context: {\n elapsedTimeSeconds: number;\n options: RunCommandInTemporaryPackageManagerProjectOptions;\n result: Awaited<ReturnType<typeof spawnWithInput>>;\n}): PackageManagerCommandRunResult {\n return {\n stdin: context.options.stdin ?? '',\n stdout: context.result.stdout,\n stderr: context.result.stderr,\n status: context.result.timedOut || context.result.outputLimitExceeded ? 0 : context.result.status,\n timeSeconds: context.result.timedOut\n ? context.options.timeLimitSeconds + 1e-3\n : context.result.timeSeconds || context.elapsedTimeSeconds,\n memoryBytes: context.result.memoryBytes,\n timedOut: context.result.timedOut,\n signal: context.result.signal,\n outputLimitExceeded: context.result.outputLimitExceeded,\n };\n}\n\nfunction resolveInstallCommand(packageManager: PackageManager): readonly [string, ...string[]] | undefined {\n return packageManagerInstallCommands[packageManager];\n}\n\nfunction isFailedSpawnResult(result: Awaited<ReturnType<typeof spawnWithInput>>): boolean {\n return result.status !== 0 || result.timedOut || result.outputLimitExceeded;\n}\n\nexport async function copyPackageManagerProjectFiles(options: {\n packageManager: PackageManager;\n projectDir: string;\n runDir: string;\n projectFilePaths?: readonly string[];\n}): Promise<void> {\n for (const projectFilePath of options.projectFilePaths ?? packageManagerProjectFilePaths[options.packageManager]) {\n await copyPathIfExists(path.join(options.projectDir, projectFilePath), path.join(options.runDir, projectFilePath));\n }\n}\n\nasync function copyPathIfExists(sourcePath: string, destinationPath: string): Promise<void> {\n try {\n await fs.cp(sourcePath, destinationPath, { recursive: true });\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n }\n}\n\nasync function spawnWithInput(\n command: readonly [string, ...string[]],\n context: {\n cwd: string;\n env: NodeJS.ProcessEnv;\n outputLimitBytes: number;\n stdin: string;\n timeLimitSeconds: number;\n }\n): Promise<{\n stdout: string;\n stderr: string;\n status: number | undefined;\n timeSeconds: number;\n memoryBytes: number;\n timedOut: boolean;\n signal: NodeJS.Signals | undefined;\n outputLimitExceeded: boolean;\n}> {\n const timeOutputPath = timeCommand === undefined ? undefined : path.join(context.cwd, '.exercode-time-result');\n const spawnedCommand =\n timeCommand === undefined ? command : ([...timeCommand, `--output=${timeOutputPath}`, ...command] as const);\n const subprocess = childProcess.spawn(spawnedCommand[0], spawnedCommand.slice(1), {\n cwd: context.cwd,\n detached: process.platform !== 'win32',\n env: context.env,\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n const stdoutChunks: Buffer[] = [];\n const stderrChunks: Buffer[] = [];\n let outputBytes = 0;\n let timedOut = false;\n let outputLimitExceeded = false;\n\n const appendOutputChunk = (chunks: Buffer[], chunk: Buffer): void => {\n if (outputBytes >= context.outputLimitBytes) {\n if (chunk.byteLength > 0) {\n outputLimitExceeded = true;\n killSubprocessGroup(subprocess, 'SIGKILL');\n }\n return;\n }\n\n const remainingBytes = context.outputLimitBytes - outputBytes;\n const appendedChunk = chunk.byteLength > remainingBytes ? chunk.subarray(0, remainingBytes) : chunk;\n chunks.push(appendedChunk);\n outputBytes += appendedChunk.byteLength;\n\n if (chunk.byteLength > remainingBytes) {\n outputLimitExceeded = true;\n killSubprocessGroup(subprocess, 'SIGKILL');\n }\n };\n\n subprocess.stdout.on('data', (chunk: Buffer) => appendOutputChunk(stdoutChunks, chunk));\n subprocess.stderr.on('data', (chunk: Buffer) => appendOutputChunk(stderrChunks, chunk));\n\n const timeout = setTimeout(() => {\n timedOut = true;\n killSubprocessGroup(subprocess, 'SIGTERM');\n }, context.timeLimitSeconds * 1000);\n const killTimeout = setTimeout(\n () => {\n if (timedOut) killSubprocessGroup(subprocess, 'SIGKILL');\n },\n context.timeLimitSeconds * 1000 + killGracePeriodMilliseconds\n );\n killTimeout.unref();\n\n const { status, signal } = await new Promise<{ status: number | undefined; signal: NodeJS.Signals | undefined }>(\n (resolve, reject) => {\n let settled = false;\n let pendingError: Error | undefined;\n const failAfterClose = (error: Error): void => {\n if (settled) return;\n pendingError = error;\n killSubprocessGroup(subprocess, 'SIGKILL');\n if (subprocess.pid === undefined) {\n settled = true;\n reject(error);\n }\n };\n subprocess.on('error', failAfterClose);\n subprocess.stdin.on('error', (error: NodeJS.ErrnoException) => {\n if (error.code !== 'EPIPE') failAfterClose(error);\n });\n subprocess.on('close', (code, closeSignal) => {\n if (settled) return;\n settled = true;\n if (pendingError) {\n reject(pendingError);\n return;\n }\n resolve({ status: code ?? undefined, signal: closeSignal ?? undefined });\n });\n subprocess.stdin.end(context.stdin);\n }\n ).finally(() => {\n clearTimeout(timeout);\n clearTimeout(killTimeout);\n });\n\n const { timeSeconds, memoryBytes } =\n timeOutputPath === undefined ? { timeSeconds: 0, memoryBytes: 0 } : await readTimeResult(timeOutputPath);\n\n return {\n stdout: Buffer.concat(stdoutChunks).toString(),\n stderr: Buffer.concat(stderrChunks).toString(),\n status,\n timeSeconds,\n memoryBytes,\n timedOut,\n signal,\n outputLimitExceeded,\n };\n}\n\nfunction resolveTimeCommand(): readonly [string, ...string[]] | undefined {\n const command = os.platform() === 'darwin' ? 'gtime' : '/usr/bin/time';\n const result = childProcess.spawnSync(command, ['--version'], { stdio: 'ignore' });\n if (result.error || result.status !== 0) return undefined;\n\n return [command, '--format', '%e %M'];\n}\n\nfunction killSubprocessGroup(subprocess: childProcess.ChildProcess, signal: NodeJS.Signals): void {\n if (subprocess.pid === undefined) return;\n\n try {\n if (process.platform === 'win32') {\n subprocess.kill(signal);\n return;\n }\n process.kill(-subprocess.pid, signal);\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ESRCH' && code !== 'EPERM') throw error;\n }\n}\n\nasync function readTimeResult(timeOutputPath: string): Promise<{ timeSeconds: number; memoryBytes: number }> {\n let content: string;\n try {\n content = await fs.readFile(timeOutputPath, 'utf8');\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n return { timeSeconds: 0, memoryBytes: 0 };\n }\n\n const match = /(\\d+(?:[.,]\\d+)?) (\\d+)\\s*$/.exec(content);\n if (!match) return { timeSeconds: 0, memoryBytes: 0 };\n\n return { timeSeconds: Number(match[1]!.replace(',', '.')), memoryBytes: Number(match[2]) * 1024 };\n}\n"],"names":["command","result","packageManagerProjectFilePaths","bun","cargo","go","gradle","maven","npm","pnpm","ruby","uv","yarn","packageManagerInstallCommands","timeCommand","os","platform","childProcess","spawnSync","stdio","error","status","runCommandInTemporaryPackageManagerProject","_x","_runCommandInTemporaryPackageManagerProject","apply","this","arguments","_asyncToGenerator","_regenerator","m","_callee","options","_options$tempDirPrefi","runDir","_options$outputLimitB","_options$stdin2","env","installCommand","startedAt","outputLimitBytes","installResult","remainingTimeLimitSeconds","_options$stdin","_installResult$stdout","_installResult","_installResult$stderr","_installResult2","_installResult$memory","_installResult3","_installResult4","elapsedTimeSeconds","w","_context","p","n","fs","mkdtemp","path","join","tmpdir","tempDirPrefix","v","cp","cwd","recursive","copyPackageManagerProjectFiles","packageManager","projectDir","projectFilePaths","_objectSpread","process","resolveInstallCommand","Date","now","spawnWithInput","stdin","timeLimitSeconds","isFailedSpawnResult","a","toPackageManagerCommandRunResult","stdout","stderr","timeSeconds","memoryBytes","timedOut","signal","outputLimitExceeded","Math","max","rm","force","f","context","_context$options$stdi","_x2","_copyPackageManagerProjectFiles","_callee2","_options$projectFileP","_iterator","_step","projectFilePath","_t","_context2","_createForOfIteratorHelper","s","done","value","copyPathIfExists","e","_x3","_x4","_copyPathIfExists","_callee3","sourcePath","destinationPath","_t2","_context3","_typeof","code","undefined","_x5","_x6","_spawnWithInput","_callee4","timeOutputPath","spawnedCommand","subprocess","stdoutChunks","stderrChunks","outputBytes","appendOutputChunk","timeout","killTimeout","_yield$Promise$finall","_ref","_t3","_context4","concat","_toConsumableArray","spawn","slice","detached","chunks","chunk","byteLength","killSubprocessGroup","remainingBytes","appendedChunk","subarray","push","on","setTimeout","unref","Promise","resolve","reject","pendingError","settled","failAfterClose","pid","closeSignal","end","clearTimeout","readTimeResult","Buffer","toString","kill","_x7","_readTimeResult","_callee5","content","match","_t4","_context5","readFile","exec","Number","replace"],"mappings":"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"}
{"version":3,"file":"runCommandInTemporaryPackageManagerProject.js","sources":["../../src/helpers/runCommandInTemporaryPackageManagerProject.ts"],"sourcesContent":["import childProcess from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\n\nexport type PackageManager = 'bun' | 'cargo' | 'go' | 'gradle' | 'maven' | 'npm' | 'pnpm' | 'ruby' | 'uv' | 'yarn';\ntype PackageManagerInstallCommand = readonly [string, ...string[]];\n\nexport interface PackageManagerCommandRunResult {\n stdin: string;\n stdout: string;\n stderr: string;\n status: number | undefined;\n timeSeconds: number;\n memoryBytes: number;\n timedOut: boolean;\n signal: NodeJS.Signals | undefined;\n outputLimitExceeded: boolean;\n}\n\nexport interface RunCommandInTemporaryPackageManagerProjectOptions {\n cwd: string;\n projectDir: string;\n packageManager: PackageManager;\n command: readonly [string, ...string[]] | ((context: { runDir: string }) => readonly [string, ...string[]]);\n stdin?: string;\n env?: NodeJS.ProcessEnv;\n timeLimitSeconds: number;\n outputLimitBytes?: number;\n tempDirPrefix?: string;\n projectFilePaths?: readonly string[];\n}\n\nconst packageManagerProjectFilePaths = {\n bun: ['package.json', 'bun.lock', 'bun.lockb'],\n cargo: ['Cargo.toml', 'Cargo.lock'],\n go: ['go.mod', 'go.sum'],\n gradle: [\n 'build.gradle',\n 'build.gradle.kts',\n 'settings.gradle',\n 'settings.gradle.kts',\n 'gradle.properties',\n 'gradle.lockfile',\n 'buildscript-gradle.lockfile',\n 'gradle',\n 'gradlew',\n 'gradlew.bat',\n ],\n maven: ['pom.xml', '.mvn', 'mvnw', 'mvnw.cmd'],\n npm: ['package.json', 'package-lock.json'],\n pnpm: ['package.json', 'pnpm-lock.yaml', 'pnpm-workspace.yaml'],\n ruby: ['Gemfile', 'Gemfile.lock', '.ruby-version'],\n uv: ['pyproject.toml', 'uv.lock'],\n yarn: ['package.json', 'yarn.lock', '.yarnrc', '.yarnrc.yml', '.yarn'],\n} as const satisfies Record<PackageManager, readonly string[]>;\n\nconst packageManagerInstallCommandResolvers = {\n bun: resolveBunInstallCommand,\n cargo: resolveCargoInstallCommand,\n go: resolveGoInstallCommand,\n gradle: resolveGradleInstallCommand,\n maven: resolveMavenInstallCommand,\n npm: resolveNpmInstallCommand,\n pnpm: resolvePnpmInstallCommand,\n ruby: resolveRubyInstallCommand,\n uv: resolveUvInstallCommand,\n yarn: resolveYarnInstallCommand,\n} as const satisfies Record<PackageManager, (runDir: string) => Promise<PackageManagerInstallCommand | undefined>>;\n\nconst defaultOutputLimitBytes = 50 * 1024 * 1024;\nconst killGracePeriodMilliseconds = 1000;\nconst timeCommand = resolveTimeCommand();\n\n/**\n * Copies a submission directory to a temporary directory, overlays package\n * manager project files from the problem directory, prepares dependencies,\n * runs a command, and then removes the temporary directory.\n */\nexport async function runCommandInTemporaryPackageManagerProject(\n options: RunCommandInTemporaryPackageManagerProjectOptions\n): Promise<PackageManagerCommandRunResult> {\n const runDir = await fs.mkdtemp(path.join(os.tmpdir(), options.tempDirPrefix ?? 'exercode-'));\n try {\n await fs.cp(options.cwd, runDir, { recursive: true });\n await copyPackageManagerProjectFiles({\n packageManager: options.packageManager,\n projectDir: options.projectDir,\n runDir,\n projectFilePaths: options.projectFilePaths,\n });\n\n const env = options.env ? { ...process.env, ...options.env } : process.env;\n const installCommand = await resolveInstallCommand(options.packageManager, runDir);\n const command = typeof options.command === 'function' ? options.command({ runDir }) : options.command;\n const startedAt = Date.now();\n const outputLimitBytes = options.outputLimitBytes ?? defaultOutputLimitBytes;\n let installResult: Awaited<ReturnType<typeof spawnWithInput>> | undefined;\n\n if (installCommand) {\n installResult = await spawnWithInput(installCommand, {\n cwd: runDir,\n env,\n outputLimitBytes,\n stdin: '',\n timeLimitSeconds: options.timeLimitSeconds,\n });\n if (isFailedSpawnResult(installResult)) {\n return toPackageManagerCommandRunResult({\n elapsedTimeSeconds: (Date.now() - startedAt) / 1000,\n options,\n result: installResult,\n });\n }\n }\n\n const remainingTimeLimitSeconds = options.timeLimitSeconds - (Date.now() - startedAt) / 1000;\n if (remainingTimeLimitSeconds <= 0) {\n return {\n stdin: options.stdin ?? '',\n stdout: installResult?.stdout ?? '',\n stderr: installResult?.stderr ?? '',\n status: 0,\n timeSeconds: options.timeLimitSeconds + 1e-3,\n memoryBytes: installResult?.memoryBytes ?? 0,\n timedOut: true,\n signal: installResult?.signal,\n outputLimitExceeded: false,\n };\n }\n\n const result = await spawnWithInput(command, {\n cwd: runDir,\n env,\n outputLimitBytes,\n stdin: options.stdin ?? '',\n timeLimitSeconds: remainingTimeLimitSeconds,\n });\n const elapsedTimeSeconds = (Date.now() - startedAt) / 1000;\n\n if (installResult) {\n return toPackageManagerCommandRunResult({\n elapsedTimeSeconds,\n options,\n result: {\n ...result,\n timeSeconds: installResult.timeSeconds + result.timeSeconds,\n memoryBytes: Math.max(installResult.memoryBytes, result.memoryBytes),\n },\n });\n }\n\n return toPackageManagerCommandRunResult({ elapsedTimeSeconds, options, result });\n } finally {\n await fs.rm(runDir, { force: true, recursive: true });\n }\n}\n\nfunction toPackageManagerCommandRunResult(context: {\n elapsedTimeSeconds: number;\n options: RunCommandInTemporaryPackageManagerProjectOptions;\n result: Awaited<ReturnType<typeof spawnWithInput>>;\n}): PackageManagerCommandRunResult {\n return {\n stdin: context.options.stdin ?? '',\n stdout: context.result.stdout,\n stderr: context.result.stderr,\n status: context.result.timedOut || context.result.outputLimitExceeded ? 0 : context.result.status,\n timeSeconds: context.result.timedOut\n ? context.options.timeLimitSeconds + 1e-3\n : context.result.timeSeconds || context.elapsedTimeSeconds,\n memoryBytes: context.result.memoryBytes,\n timedOut: context.result.timedOut,\n signal: context.result.signal,\n outputLimitExceeded: context.result.outputLimitExceeded,\n };\n}\n\nfunction resolveInstallCommand(\n packageManager: PackageManager,\n runDir: string\n): Promise<PackageManagerInstallCommand | undefined> {\n return packageManagerInstallCommandResolvers[packageManager](runDir);\n}\n\nfunction isFailedSpawnResult(result: Awaited<ReturnType<typeof spawnWithInput>>): boolean {\n return result.status !== 0 || result.timedOut || result.outputLimitExceeded;\n}\n\nasync function resolveBunInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'package.json')))) return undefined;\n // Bun supports --silent and it keeps successful preparation output out of judge output buffers.\n return (await hasAnyPath(runDir, ['bun.lock', 'bun.lockb']))\n ? ['bun', 'install', '--frozen-lockfile', '--silent']\n : ['bun', 'install', '--silent'];\n}\n\nasync function resolveCargoInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'Cargo.toml')))) return undefined;\n return (await pathExists(path.join(runDir, 'Cargo.lock'))) ? ['cargo', 'fetch', '--locked'] : ['cargo', 'fetch'];\n}\n\nasync function resolveGoInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'go.mod')))) return undefined;\n return ['go', 'mod', 'download'];\n}\n\nasync function resolveGradleInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (\n !(await hasAnyPath(runDir, [\n 'build.gradle',\n 'build.gradle.kts',\n 'settings.gradle',\n 'settings.gradle.kts',\n 'gradlew',\n 'gradlew.bat',\n ]))\n )\n return undefined;\n const args = ['--no-daemon', '--quiet', 'dependencies'] as const;\n if (process.platform === 'win32') {\n return (await pathExists(path.join(runDir, 'gradlew.bat')))\n ? ['cmd.exe', '/c', 'gradlew.bat', ...args]\n : ['gradle', ...args];\n }\n return (await pathExists(path.join(runDir, 'gradlew'))) ? ['sh', './gradlew', ...args] : ['gradle', ...args];\n}\n\nasync function resolveMavenInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'pom.xml')))) return undefined;\n const args = ['-q', 'dependency:go-offline'] as const;\n if (process.platform === 'win32') {\n return (await pathExists(path.join(runDir, 'mvnw.cmd')))\n ? ['cmd.exe', '/c', 'mvnw.cmd', ...args]\n : ['mvn', ...args];\n }\n return (await pathExists(path.join(runDir, 'mvnw'))) ? ['sh', './mvnw', ...args] : ['mvn', ...args];\n}\n\nasync function resolveNpmInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'package.json')))) return undefined;\n return (await pathExists(path.join(runDir, 'package-lock.json')))\n ? ['npm', 'ci', '--silent']\n : ['npm', 'install', '--silent'];\n}\n\nasync function resolvePnpmInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'package.json')))) return undefined;\n return (await pathExists(path.join(runDir, 'pnpm-lock.yaml')))\n ? ['pnpm', 'install', '--frozen-lockfile', '--silent']\n : ['pnpm', 'install', '--silent'];\n}\n\nasync function resolveRubyInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'Gemfile')))) return undefined;\n return (await pathExists(path.join(runDir, 'Gemfile.lock')))\n ? ['bundle', 'install', '--frozen', '--quiet']\n : ['bundle', 'install', '--quiet'];\n}\n\nasync function resolveUvInstallCommand(): Promise<undefined> {\n return undefined;\n}\n\nasync function resolveYarnInstallCommand(runDir: string): Promise<PackageManagerInstallCommand | undefined> {\n if (!(await pathExists(path.join(runDir, 'package.json')))) return undefined;\n const isBerry = await isYarnBerryProject(runDir);\n const hasLockfile = await pathExists(path.join(runDir, 'yarn.lock'));\n if (isBerry) return hasLockfile ? ['yarn', 'install', '--immutable'] : ['yarn', 'install'];\n return hasLockfile ? ['yarn', 'install', '--frozen-lockfile', '--silent'] : ['yarn', 'install', '--silent'];\n}\n\nasync function isYarnBerryProject(runDir: string): Promise<boolean> {\n if (await pathExists(path.join(runDir, '.yarnrc.yml'))) return true;\n\n const packageJson = await readJson(path.join(runDir, 'package.json'));\n const packageManager = typeof packageJson.packageManager === 'string' ? packageJson.packageManager : undefined;\n const yarnMajorVersion = /^yarn@(\\d+)/.exec(packageManager ?? '')?.[1];\n return yarnMajorVersion !== undefined && Number(yarnMajorVersion) >= 2;\n}\n\nasync function hasAnyPath(directoryPath: string, relativePaths: readonly string[]): Promise<boolean> {\n for (const relativePath of relativePaths) {\n if (await pathExists(path.join(directoryPath, relativePath))) return true;\n }\n return false;\n}\n\nasync function pathExists(filePath: string): Promise<boolean> {\n try {\n await fs.access(filePath);\n return true;\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n return false;\n }\n}\n\nasync function readJson(filePath: string): Promise<Record<string, unknown>> {\n try {\n const parsed = JSON.parse(await fs.readFile(filePath, 'utf8')) as unknown;\n return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)\n ? (parsed as Record<string, unknown>)\n : {};\n } catch (error) {\n if (error instanceof SyntaxError) return {};\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code === 'ENOENT') return {};\n throw error;\n }\n}\n\nexport async function copyPackageManagerProjectFiles(options: {\n packageManager: PackageManager;\n projectDir: string;\n runDir: string;\n projectFilePaths?: readonly string[];\n}): Promise<void> {\n for (const projectFilePath of options.projectFilePaths ?? packageManagerProjectFilePaths[options.packageManager]) {\n await copyPathIfExists(path.join(options.projectDir, projectFilePath), path.join(options.runDir, projectFilePath));\n }\n}\n\nasync function copyPathIfExists(sourcePath: string, destinationPath: string): Promise<void> {\n try {\n await fs.cp(sourcePath, destinationPath, { recursive: true });\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n }\n}\n\nasync function spawnWithInput(\n command: readonly [string, ...string[]],\n context: {\n cwd: string;\n env: NodeJS.ProcessEnv;\n outputLimitBytes: number;\n stdin: string;\n timeLimitSeconds: number;\n }\n): Promise<{\n stdout: string;\n stderr: string;\n status: number | undefined;\n timeSeconds: number;\n memoryBytes: number;\n timedOut: boolean;\n signal: NodeJS.Signals | undefined;\n outputLimitExceeded: boolean;\n}> {\n const timeOutputPath = timeCommand === undefined ? undefined : path.join(context.cwd, '.exercode-time-result');\n const spawnedCommand =\n timeCommand === undefined ? command : ([...timeCommand, `--output=${timeOutputPath}`, ...command] as const);\n const subprocess = childProcess.spawn(spawnedCommand[0], spawnedCommand.slice(1), {\n cwd: context.cwd,\n detached: process.platform !== 'win32',\n env: context.env,\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n const stdoutChunks: Buffer[] = [];\n const stderrChunks: Buffer[] = [];\n let outputBytes = 0;\n let timedOut = false;\n let outputLimitExceeded = false;\n\n const appendOutputChunk = (chunks: Buffer[], chunk: Buffer): void => {\n if (outputBytes >= context.outputLimitBytes) {\n if (chunk.byteLength > 0) {\n outputLimitExceeded = true;\n killSubprocessGroup(subprocess, 'SIGKILL');\n }\n return;\n }\n\n const remainingBytes = context.outputLimitBytes - outputBytes;\n const appendedChunk = chunk.byteLength > remainingBytes ? chunk.subarray(0, remainingBytes) : chunk;\n chunks.push(appendedChunk);\n outputBytes += appendedChunk.byteLength;\n\n if (chunk.byteLength > remainingBytes) {\n outputLimitExceeded = true;\n killSubprocessGroup(subprocess, 'SIGKILL');\n }\n };\n\n subprocess.stdout.on('data', (chunk: Buffer) => appendOutputChunk(stdoutChunks, chunk));\n subprocess.stderr.on('data', (chunk: Buffer) => appendOutputChunk(stderrChunks, chunk));\n\n const timeout = setTimeout(() => {\n timedOut = true;\n killSubprocessGroup(subprocess, 'SIGTERM');\n }, context.timeLimitSeconds * 1000);\n const killTimeout = setTimeout(\n () => {\n if (timedOut) killSubprocessGroup(subprocess, 'SIGKILL');\n },\n context.timeLimitSeconds * 1000 + killGracePeriodMilliseconds\n );\n killTimeout.unref();\n\n const { status, signal } = await new Promise<{ status: number | undefined; signal: NodeJS.Signals | undefined }>(\n (resolve, reject) => {\n let settled = false;\n let pendingError: Error | undefined;\n const failAfterClose = (error: Error): void => {\n if (settled) return;\n pendingError = error;\n killSubprocessGroup(subprocess, 'SIGKILL');\n if (subprocess.pid === undefined) {\n settled = true;\n reject(error);\n }\n };\n subprocess.on('error', failAfterClose);\n subprocess.stdin.on('error', (error: NodeJS.ErrnoException) => {\n if (error.code !== 'EPIPE') failAfterClose(error);\n });\n subprocess.on('close', (code, closeSignal) => {\n if (settled) return;\n settled = true;\n if (pendingError) {\n reject(pendingError);\n return;\n }\n resolve({ status: code ?? undefined, signal: closeSignal ?? undefined });\n });\n subprocess.stdin.end(context.stdin);\n }\n ).finally(() => {\n clearTimeout(timeout);\n clearTimeout(killTimeout);\n });\n\n const { timeSeconds, memoryBytes } =\n timeOutputPath === undefined ? { timeSeconds: 0, memoryBytes: 0 } : await readTimeResult(timeOutputPath);\n\n return {\n stdout: Buffer.concat(stdoutChunks).toString(),\n stderr: Buffer.concat(stderrChunks).toString(),\n status,\n timeSeconds,\n memoryBytes,\n timedOut,\n signal,\n outputLimitExceeded,\n };\n}\n\nfunction resolveTimeCommand(): readonly [string, ...string[]] | undefined {\n const command = os.platform() === 'darwin' ? 'gtime' : '/usr/bin/time';\n const result = childProcess.spawnSync(command, ['--version'], { stdio: 'ignore' });\n if (result.error || result.status !== 0) return undefined;\n\n return [command, '--format', '%e %M'];\n}\n\nfunction killSubprocessGroup(subprocess: childProcess.ChildProcess, signal: NodeJS.Signals): void {\n if (subprocess.pid === undefined) return;\n\n try {\n if (process.platform === 'win32') {\n subprocess.kill(signal);\n return;\n }\n process.kill(-subprocess.pid, signal);\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ESRCH' && code !== 'EPERM') throw error;\n }\n}\n\nasync function readTimeResult(timeOutputPath: string): Promise<{ timeSeconds: number; memoryBytes: number }> {\n let content: string;\n try {\n content = await fs.readFile(timeOutputPath, 'utf8');\n } catch (error) {\n const code =\n typeof error === 'object' && error !== null && 'code' in error ? (error as { code: unknown }).code : undefined;\n if (code !== 'ENOENT') throw error;\n return { timeSeconds: 0, memoryBytes: 0 };\n }\n\n const match = /(\\d+(?:[.,]\\d+)?) (\\d+)\\s*$/.exec(content);\n if (!match) return { timeSeconds: 0, memoryBytes: 0 };\n\n return { timeSeconds: Number(match[1]!.replace(',', '.')), memoryBytes: Number(match[2]) * 1024 };\n}\n"],"names":["command","result","packageManagerProjectFilePaths","bun","cargo","go","gradle","maven","npm","pnpm","ruby","uv","yarn","packageManagerInstallCommandResolvers","_x2","_resolveBunInstallCommand","apply","this","arguments","_x3","_resolveCargoInstallCommand","_x4","_resolveGoInstallCommand","_x5","_resolveGradleInstallCommand","_x6","_resolveMavenInstallCommand","_x7","_resolveNpmInstallCommand","_x8","_resolvePnpmInstallCommand","_x9","_resolveRubyInstallCommand","_resolveUvInstallCommand","_x0","_resolveYarnInstallCommand","timeCommand","os","platform","childProcess","spawnSync","stdio","error","status","runCommandInTemporaryPackageManagerProject","_x","_runCommandInTemporaryPackageManagerProject","_asyncToGenerator","_regenerator","m","_callee","options","_options$tempDirPrefi","runDir","_options$outputLimitB","_options$stdin2","env","installCommand","startedAt","outputLimitBytes","installResult","remainingTimeLimitSeconds","_options$stdin","_installResult$stdout","_installResult","_installResult$stderr","_installResult2","_installResult$memory","_installResult3","_installResult4","elapsedTimeSeconds","w","_context","p","n","fs","mkdtemp","path","join","tmpdir","tempDirPrefix","v","cp","cwd","recursive","copyPackageManagerProjectFiles","packageManager","projectDir","projectFilePaths","_objectSpread","process","resolveInstallCommand","Date","now","spawnWithInput","stdin","timeLimitSeconds","isFailedSpawnResult","a","toPackageManagerCommandRunResult","stdout","stderr","timeSeconds","memoryBytes","timedOut","signal","outputLimitExceeded","Math","max","rm","force","f","context","_context$options$stdi","_callee2","_t","_context2","pathExists","undefined","hasAnyPath","_callee3","_t2","_context3","_callee4","_context4","_callee5","args","_t3","_t4","_context5","concat","_callee6","_t5","_t6","_context6","_callee7","_t7","_context7","_callee8","_t8","_context8","_callee9","_t9","_context9","_callee0","_context0","_callee1","isBerry","hasLockfile","_context1","isYarnBerryProject","_x1","_isYarnBerryProject","_callee10","_exec","packageJson","yarnMajorVersion","_context10","readJson","exec","Number","_x10","_x11","_hasAnyPath","_callee11","directoryPath","relativePaths","_iterator","_step","relativePath","_t0","_context11","_createForOfIteratorHelper","s","done","value","e","_x12","_pathExists","_callee12","filePath","_t1","_context12","access","_typeof","code","_x13","_readJson","_callee13","parsed","_t10","_t11","_context13","JSON","readFile","parse","call","Array","isArray","SyntaxError","_x14","_copyPackageManagerProjectFiles","_callee14","_options$projectFileP","_iterator2","_step2","projectFilePath","_t12","_context14","copyPathIfExists","_x15","_x16","_copyPathIfExists","_callee15","sourcePath","destinationPath","_t13","_context15","_x17","_x18","_spawnWithInput","_callee16","timeOutputPath","spawnedCommand","subprocess","stdoutChunks","stderrChunks","outputBytes","appendOutputChunk","timeout","killTimeout","_yield$Promise$finall","_ref","_t14","_context16","_toConsumableArray","spawn","slice","detached","chunks","chunk","byteLength","killSubprocessGroup","remainingBytes","appendedChunk","subarray","push","on","setTimeout","unref","Promise","resolve","reject","pendingError","settled","failAfterClose","pid","closeSignal","end","clearTimeout","readTimeResult","Buffer","toString","kill","_x19","_readTimeResult","_callee17","content","match","_t15","_context17","replace"],"mappings":"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"}
{
"name": "@exercode/problem-utils",
"version": "1.16.2",
"version": "1.16.3",
"description": ":100: A set of utilities for judging programs on Exercode (https://exercode.willbooster.com/).",

@@ -5,0 +5,0 @@ "keywords": [