@jupyterlite/terminal
Version:
A terminal for JupyterLite
33 lines (28 loc) • 89 kB
JavaScript
(()=>{var e={588(e,t,i){"use strict";function*s(...e){for(let t of e)yield*t}function*r(){}function*n(e,t=0){for(let i of e)yield[t++,i]}function*a(e,t){let i=0;for(let s of e)t(s,i++)&&(yield s)}function o(e,t){let i=0;for(let s of e)if(t(s,i++))return s}function l(e,t){let i=0;for(let s of e)if(t(s,i++))return i-1;return -1}function h(e,t){let i;for(let s of e){if(void 0===i){i=s;continue}0>t(s,i)&&(i=s)}return i}function u(e,t){let i;for(let s of e){if(void 0===i){i=s;continue}t(s,i)>0&&(i=s)}return i}function c(e,t){let i,s,r=!0;for(let n of e)r?(i=n,s=n,r=!1):0>t(n,i)?i=n:t(n,s)>0&&(s=n);return r?void 0:[i,s]}function d(e){return Array.from(e)}function m(e){let t={};for(let[i,s]of e)t[i]=s;return t}function f(e,t){let i=0;for(let s of e)if(!1===t(s,i++))return}function p(e,t){let i=0;for(let s of e)if(!1===t(s,i++))return!1;return!0}function _(e,t){let i=0;for(let s of e)if(t(s,i++))return!0;return!1}function*g(e,t){let i=0;for(let s of e)yield t(s,i++)}function*w(e,t,i){void 0===t?(t=e,e=0,i=1):void 0===i&&(i=1);let s=O.rangeLength(e,t,i);for(let t=0;t<s;t++)yield e+i*t}function y(e,t,i){let s,r,n=e[Symbol.iterator](),a=0,o=n.next();if(o.done&&void 0===i)throw TypeError("Reduce of empty iterable with no initial value.");if(o.done)return i;let l=n.next();if(l.done&&void 0===i)return o.value;if(l.done)return t(i,o.value,a++);for(s=t(void 0===i?o.value:t(i,o.value,a++),l.value,a++);!(r=n.next()).done;)s=t(s,r.value,a++);return s}function*C(e,t){for(;0<t--;)yield e}function*b(e){yield e}function*x(e){if("function"==typeof e.retro)yield*e.retro();else for(let t=e.length-1;t>-1;t--)yield e[t]}function v(e){let t=[],i=new Set,s=new Map;for(let t of e)!function(e){let[t,i]=e,r=s.get(i);r?r.push(t):s.set(i,[t])}(t);for(let[e]of s)!function e(r){if(i.has(r))return;i.add(r);let n=s.get(r);if(n)for(let t of n)e(t);t.push(r)}(e);return t}function*S(e,t){let i=0;for(let s of e)0==i++%t&&(yield s)}i.r(t),function(e){function t(e,i,s=0,r=-1){let n,a=e.length;if(0===a)return -1;s=s<0?Math.max(0,s+a):Math.min(s,a-1),n=(r=r<0?Math.max(0,r+a):Math.min(r,a-1))<s?r+1+(a-s):r-s+1;for(let t=0;t<n;++t){let r=(s+t)%a;if(e[r]===i)return r}return -1}function i(e,t,s=-1,r=0){let n,a=e.length;if(0===a)return -1;n=(s=s<0?Math.max(0,s+a):Math.min(s,a-1))<(r=r<0?Math.max(0,r+a):Math.min(r,a-1))?s+1+(a-r):s-r+1;for(let i=0;i<n;++i){let r=(s-i+a)%a;if(e[r]===t)return r}return -1}function s(e,t,i=0,r=-1){let n,a=e.length;if(0===a)return -1;i=i<0?Math.max(0,i+a):Math.min(i,a-1),n=(r=r<0?Math.max(0,r+a):Math.min(r,a-1))<i?r+1+(a-i):r-i+1;for(let s=0;s<n;++s){let r=(i+s)%a;if(t(e[r],r))return r}return -1}function r(e,t,i=-1,s=0){let n,a=e.length;if(0===a)return -1;n=(i=i<0?Math.max(0,i+a):Math.min(i,a-1))<(s=s<0?Math.max(0,s+a):Math.min(s,a-1))?i+1+(a-s):i-s+1;for(let s=0;s<n;++s){let r=(i-s+a)%a;if(t(e[r],r))return r}return -1}function n(e,t=0,i=-1){let s=e.length;if(!(s<=1))for(t=t<0?Math.max(0,t+s):Math.min(t,s-1),i=i<0?Math.max(0,i+s):Math.min(i,s-1);t<i;){let s=e[t],r=e[i];e[t++]=r,e[i--]=s}}function a(e,t){let i=e.length;if(t<0&&(t+=i),t<0||t>=i)return;let s=e[t];for(let s=t+1;s<i;++s)e[s-1]=e[s];return e.length=i-1,s}e.firstIndexOf=t,e.lastIndexOf=i,e.findFirstIndex=s,e.findLastIndex=r,e.findFirstValue=function(e,t,i=0,r=-1){let n=s(e,t,i,r);return -1!==n?e[n]:void 0},e.findLastValue=function(e,t,i=-1,s=0){let n=r(e,t,i,s);return -1!==n?e[n]:void 0},e.lowerBound=function(e,t,i,s=0,r=-1){let n=e.length;if(0===n)return 0;let a=s=s<0?Math.max(0,s+n):Math.min(s,n-1),o=(r=r<0?Math.max(0,r+n):Math.min(r,n-1))-s+1;for(;o>0;){let s=o>>1,r=a+s;0>i(e[r],t)?(a=r+1,o-=s+1):o=s}return a},e.upperBound=function(e,t,i,s=0,r=-1){let n=e.length;if(0===n)return 0;let a=s=s<0?Math.max(0,s+n):Math.min(s,n-1),o=(r=r<0?Math.max(0,r+n):Math.min(r,n-1))-s+1;for(;o>0;){let s=o>>1,r=a+s;i(e[r],t)>0?o=s:(a=r+1,o-=s+1)}return a},e.shallowEqual=function(e,t,i){if(e===t)return!0;if(e.length!==t.length)return!1;for(let s=0,r=e.length;s<r;++s)if(i?!i(e[s],t[s]):e[s]!==t[s])return!1;return!0},e.slice=function(e,t={}){let i,{start:s,stop:r,step:n}=t;if(void 0===n&&(n=1),0===n)throw Error("Slice `step` cannot be zero.");let a=e.length;void 0===s?s=n<0?a-1:0:s<0?s=Math.max(s+a,n<0?-1:0):s>=a&&(s=n<0?a-1:a),void 0===r?r=n<0?-1:a:r<0?r=Math.max(r+a,n<0?-1:0):r>=a&&(r=n<0?a-1:a),i=n<0&&r>=s||n>0&&s>=r?0:n<0?Math.floor((r-s+1)/n+1):Math.floor((r-s-1)/n+1);let o=[];for(let t=0;t<i;++t)o[t]=e[s+t*n];return o},e.move=function(e,t,i){let s=e.length;if(s<=1||(t=t<0?Math.max(0,t+s):Math.min(t,s-1))===(i=i<0?Math.max(0,i+s):Math.min(i,s-1)))return;let r=e[t],n=t<i?1:-1;for(let s=t;s!==i;s+=n)e[s]=e[s+n];e[i]=r},e.reverse=n,e.rotate=function(e,t,i=0,s=-1){let r=e.length;if(r<=1||(i=i<0?Math.max(0,i+r):Math.min(i,r-1))>=(s=s<0?Math.max(0,s+r):Math.min(s,r-1)))return;let a=s-i+1;if(t>0?t%=a:t<0&&(t=(t%a+a)%a),0===t)return;let o=i+t;n(e,i,o-1),n(e,o,s),n(e,i,s)},e.fill=function(e,t,i=0,s=-1){let r,n=e.length;if(0!==n){i=i<0?Math.max(0,i+n):Math.min(i,n-1),r=(s=s<0?Math.max(0,s+n):Math.min(s,n-1))<i?s+1+(n-i):s-i+1;for(let s=0;s<r;++s)e[(i+s)%n]=t}},e.insert=function(e,t,i){let s=e.length;t=t<0?Math.max(0,t+s):Math.min(t,s);for(let i=s;i>t;--i)e[i]=e[i-1];e[t]=i},e.removeAt=a,e.removeFirstOf=function(e,i,s=0,r=-1){let n=t(e,i,s,r);return -1!==n&&a(e,n),n},e.removeLastOf=function(e,t,s=-1,r=0){let n=i(e,t,s,r);return -1!==n&&a(e,n),n},e.removeAllOf=function(e,t,i=0,s=-1){let r=e.length;if(0===r)return 0;i=i<0?Math.max(0,i+r):Math.min(i,r-1),s=s<0?Math.max(0,s+r):Math.min(s,r-1);let n=0;for(let a=0;a<r;++a)i<=s&&a>=i&&a<=s&&e[a]===t||s<i&&(a<=s||a>=i)&&e[a]===t?n++:n>0&&(e[a-n]=e[a]);return n>0&&(e.length=r-n),n},e.removeFirstWhere=function(e,t,i=0,r=-1){let n,o=s(e,t,i,r);return -1!==o&&(n=a(e,o)),{index:o,value:n}},e.removeLastWhere=function(e,t,i=-1,s=0){let n,o=r(e,t,i,s);return -1!==o&&(n=a(e,o)),{index:o,value:n}},e.removeAllWhere=function(e,t,i=0,s=-1){let r=e.length;if(0===r)return 0;i=i<0?Math.max(0,i+r):Math.min(i,r-1),s=s<0?Math.max(0,s+r):Math.min(s,r-1);let n=0;for(let a=0;a<r;++a)i<=s&&a>=i&&a<=s&&t(e[a],a)||s<i&&(a<=s||a>=i)&&t(e[a],a)?n++:n>0&&(e[a-n]=e[a]);return n>0&&(e.length=r-n),n}}(E||(E={})),(O||(O={})).rangeLength=function(e,t,i){return 0===i?1/0:e>t&&i>0||e<t&&i<0?0:Math.ceil((t-e)/i)};var E,O,k,I=k||(k={});function N(e,t,i=0){let s=Array(t.length);for(let r=0,n=i,a=t.length;r<a;++r,++n){if(-1===(n=e.indexOf(t[r],n)))return null;s[r]=n}return s}function*A(e,t){let i;if(t<1)return;let s=e[Symbol.iterator]();for(;0<t--&&!(i=s.next()).done;)yield i.value}function*T(...e){let t=e.map(e=>e[Symbol.iterator]()),i=t.map(e=>e.next());for(;p(i,e=>!e.done);i=t.map(e=>e.next()))yield i.map(e=>e.value)}I.findIndices=N,I.matchSumOfSquares=function(e,t,i=0){let s=N(e,t,i);if(!s)return null;let r=0;for(let e=0,t=s.length;e<t;++e){let t=s[e]-i;r+=t*t}return{score:r,indices:s}},I.matchSumOfDeltas=function(e,t,i=0){let s=N(e,t,i);if(!s)return null;let r=0,n=i-1;for(let e=0,t=s.length;e<t;++e){let t=s[e];r+=t-n-1,n=t}return{score:r,indices:s}},I.highlight=function(e,t,i){let s=[],r=0,n=0,a=t.length;for(;r<a;){let o=t[r],l=t[r];for(;++r<a&&t[r]===l+1;)l++;n<o&&s.push(e.slice(n,o)),o<l+1&&s.push(i(e.slice(o,l+1))),n=l+1}return n<e.length&&s.push(e.slice(n)),s},I.cmp=function(e,t){return e<t?-1:+(e>t)},i.d(t,{ArrayExt:()=>E,StringExt:()=>k,chain:()=>s,each:()=>f,empty:()=>r,enumerate:()=>n,every:()=>p,filter:()=>a,find:()=>o,findIndex:()=>l,map:()=>g,max:()=>u,min:()=>h,minmax:()=>c,once:()=>b,range:()=>w,reduce:()=>y,repeat:()=>C,retro:()=>x,some:()=>_,stride:()=>S,take:()=>A,toArray:()=>d,toObject:()=>m,topologicSort:()=>v,zip:()=>T})},899(e,t,i){!function(e,t){"use strict";let i;e.JSONExt=void 0,function(e){function t(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e}function i(e){return Array.isArray(e)}e.emptyObject=Object.freeze({}),e.emptyArray=Object.freeze([]),e.isPrimitive=t,e.isArray=i;e.isObject=function(e){return!t(e)&&!i(e)},e.deepEqual=function e(s,r){if(s===r)return!0;if(t(s)||t(r))return!1;let n=i(s),a=i(r);return n===a&&(n&&a?function(t,i){if(t===i)return!0;if(t.length!==i.length)return!1;for(let s=0,r=t.length;s<r;++s)if(!e(t[s],i[s]))return!1;return!0}(s,r):function(t,i){if(t===i)return!0;for(let e in t)if(void 0!==t[e]&&!(e in i))return!1;for(let e in i)if(void 0!==i[e]&&!(e in t))return!1;for(let s in t){let r=t[s],n=i[s];if((void 0!==r||void 0!==n)&&(void 0===r||void 0===n||!e(r,n)))return!1}return!0}(s,r))},e.deepCopy=function e(s){return t(s)?s:i(s)?function(t){let i=Array(t.length);for(let s=0,r=t.length;s<r;++s)i[s]=e(t[s]);return i}(s):function(t){let i={};for(let s in t){let r=t[s];void 0!==r&&(i[s]=e(r))}return i}(s)}}(e.JSONExt||(e.JSONExt={}));var s,r,n=s||(s={});class a{constructor(e){var t,i,s,r;this._activated=!1,this._promise=null,this._service=null,this.id=e.id,this.description=null!=(t=e.description)?t:"",this.activate=e.activate,this.deactivate=null!=(i=e.deactivate)?i:null,this.provides=null!=(s=e.provides)?s:null,this.autoStart=null!=(r=e.autoStart)&&r,this.requires=e.requires?e.requires.slice():[],this.optional=e.optional?e.optional.slice():[]}get activated(){return this._activated}set activated(e){this._activated=e}get service(){return this._service}set service(e){this._service=e}get promise(){return this._promise}set promise(e){this._promise=e}}n.createPluginData=function(e){return new a(e)},n.ensureNoCycle=function(e,t,i){let s=[...e.requires,...e.optional],r=s=>{if(s===e.provides)return!0;let a=i.get(s);if(!a)return!1;let o=t.get(a),l=[...o.requires,...o.optional];return 0!==l.length&&(n.push(a),!!l.some(r)||(n.pop(),!1))};if(!e.provides||0===s.length)return;let n=[e.id];if(s.some(r))throw ReferenceError(`Cycle detected: ${n.join(" -> ")}.`)},n.findDependents=function(e,i,s){let r=[],n=e=>{let t=i.get(e),n=[...t.requires,...t.optional];r.push(...n.reduce((t,i)=>{let r=s.get(i);return r&&t.push([e,r]),t},[]))};for(let e of i.keys())n(e);let a=r.filter(t=>t[1]===e),o=0;for(;a.length>o;){let e=a.length;for(let e of new Set(a.map(e=>e[0])))r.filter(t=>t[1]===e).forEach(e=>{a.includes(e)||a.push(e)});o=e}let l=t.topologicSort(a),h=l.findIndex(t=>t===e);return -1===h?[e]:l.slice(0,h+1)},n.collectStartupPlugins=function(e,t){let i=new Set;for(let t of e.keys())!0===e.get(t).autoStart&&i.add(t);if(t.startPlugins)for(let e of t.startPlugins)i.add(e);if(t.ignorePlugins)for(let e of t.ignorePlugins)i.delete(e);return Array.from(i)};e.Random=void 0,r=e.Random||(e.Random={}),r.getRandomValues=(i="u">typeof window&&(window.crypto||window.msCrypto)||null)&&"function"==typeof i.getRandomValues?function(e){return i.getRandomValues(e)}:function(e){let t=0;for(let i=0,s=e.length;i<s;++i)i%4==0&&(t=0xffffffff*Math.random()>>>0),e[i]=255&t,t>>>=8},e.UUID=void 0,(e.UUID||(e.UUID={})).uuid4=function(e){let t=new Uint8Array(16),i=Array(256);for(let e=0;e<16;++e)i[e]="0"+e.toString(16);for(let e=16;e<256;++e)i[e]=e.toString(16);return function(){return e(t),t[6]=64|15&t[6],t[8]=128|63&t[8],i[t[0]]+i[t[1]]+i[t[2]]+i[t[3]]+"-"+i[t[4]]+i[t[5]]+"-"+i[t[6]]+i[t[7]]+"-"+i[t[8]]+i[t[9]]+"-"+i[t[10]]+i[t[11]]+i[t[12]]+i[t[13]]+i[t[14]]+i[t[15]]}}(e.Random.getRandomValues),e.MimeData=class{constructor(){this._types=[],this._values=[]}types(){return this._types.slice()}hasData(e){return -1!==this._types.indexOf(e)}getData(e){let t=this._types.indexOf(e);return -1!==t?this._values[t]:void 0}setData(e,t){this.clearData(e),this._types.push(e),this._values.push(t)}clearData(e){let t=this._types.indexOf(e);-1!==t&&(this._types.splice(t,1),this._values.splice(t,1))}clear(){this._types.length=0,this._values.length=0}},e.PluginRegistry=class{constructor(e={}){this._application=null,this._validatePlugin=()=>!0,this._plugins=new Map,this._services=new Map,e.validatePlugin&&(console.info("Plugins may be rejected by the custom validation plugin method."),this._validatePlugin=e.validatePlugin)}get application(){return this._application}set application(e){if(null!==this._application)throw Error("PluginRegistry.application is already set. It cannot be overridden.");this._application=e}get deferredPlugins(){return Array.from(this._plugins).filter(([e,t])=>"defer"===t.autoStart).map(([e,t])=>e)}getPluginDescription(e){var t,i;return null!=(i=null==(t=this._plugins.get(e))?void 0:t.description)?i:""}hasPlugin(e){return this._plugins.has(e)}isPluginActivated(e){var t,i;return null!=(i=null==(t=this._plugins.get(e))?void 0:t.activated)&&i}listPlugins(){return Array.from(this._plugins.keys())}registerPlugin(e){if(this._plugins.has(e.id))throw TypeError(`Plugin '${e.id}' is already registered.`);if(!this._validatePlugin(e))throw Error(`Plugin '${e.id}' is not valid.`);let t=s.createPluginData(e);s.ensureNoCycle(t,this._plugins,this._services),t.provides&&this._services.set(t.provides,t.id),this._plugins.set(t.id,t)}registerPlugins(e){for(let t of e)this.registerPlugin(t)}deregisterPlugin(e,t){let i=this._plugins.get(e);if(i){if(i.activated&&!t)throw Error(`Plugin '${e}' is still active.`);this._plugins.delete(e)}}async activatePlugin(e){let t=this._plugins.get(e);if(!t)throw ReferenceError(`Plugin '${e}' is not registered.`);if(t.activated)return;if(t.promise)return t.promise;let i=t.requires.map(e=>this.resolveRequiredService(e)),s=t.optional.map(e=>this.resolveOptionalService(e));return t.promise=Promise.all([...i,...s]).then(e=>t.activate.apply(void 0,[this.application,...e])).then(e=>{t.service=e,t.activated=!0,t.promise=null}).catch(e=>{throw t.promise=null,e}),t.promise}async activatePlugins(e,t={}){switch(e){case"defer":{let e=this.deferredPlugins.filter(e=>this._plugins.get(e).autoStart).map(e=>this.activatePlugin(e));await Promise.all(e);break}case"startUp":{let e=s.collectStartupPlugins(this._plugins,t).map(async e=>{try{return await this.activatePlugin(e)}catch(t){console.error(`Plugin '${e}' failed to activate.`,t)}});await Promise.all(e)}}}async deactivatePlugin(e){let t=this._plugins.get(e);if(!t)throw ReferenceError(`Plugin '${e}' is not registered.`);if(!t.activated)return[];if(!t.deactivate)throw TypeError(`Plugin '${e}'#deactivate() method missing`);let i=s.findDependents(e,this._plugins,this._services),r=i.map(e=>this._plugins.get(e));for(let t of r)if(!t.deactivate)throw TypeError(`Plugin ${t.id}#deactivate() method missing (depends on ${e})`);for(let e of r){let t=[...e.requires,...e.optional].map(e=>{let t=this._services.get(e);return t?this._plugins.get(t).service:null});await e.deactivate(this.application,...t),e.service=null,e.activated=!1}return i.pop(),i}async resolveRequiredService(e){let t=this._services.get(e);if(!t)throw TypeError(`No provider for: ${e.name}.`);let i=this._plugins.get(t);return i.activated||await this.activatePlugin(t),i.service}async resolveOptionalService(e){let t=this._services.get(e);if(!t)return null;let i=this._plugins.get(t);if(!i.activated)try{await this.activatePlugin(t)}catch(e){return console.error(e),null}return i.service}},e.PromiseDelegate=class{constructor(){this.promise=new Promise((e,t)=>{this._resolve=e,this._reject=t})}resolve(e){(0,this._resolve)(e)}reject(e){(0,this._reject)(e)}},e.Token=class{constructor(e,t){this.name=e,this.description=null!=t?t:"",this._tokenStructuralPropertyT=null}}}(t,i(588))}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}i.d=(e,t,s)=>{var r=(t,s)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,[s]:t[r]})};r(t,"get"),r(s,"value")},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict";var e,t,s,r,n,a,o,l,h,u,c,d,m,f,p,_,g,w={};function y(e,t){return e=e.replace(/\/+$/,""),t=t.replace(/^\/+/,""),`${e}/${t}`}function C(e){return e.replace(/\s+$/,"")}function b(e){let t=[],i=e.length;for(let s=0;s<i;s+=1e4)t.push(String.fromCharCode(...e.slice(s,s+1e4)));return t.join("")}i.r(w),i.d(w,{AliasCommand:()=>ef,BuiltinCommand:()=>es,CdCommand:()=>eb,ClearCommand:()=>ev,CockleConfigCommand:()=>eN,ExitCommand:()=>eR,ExportCommand:()=>eM,FalseCommand:()=>ey,HelpCommand:()=>eD,HistoryCommand:()=>eW,TrueCommand:()=>ew,UnsetCommand:()=>eU,WhichCommand:()=>ej}),(e=h||(h={}))[e.ASYNC=0]="ASYNC",e[e.SYNC=1]="SYNC";class x{browsingContextId;shellId;constructor(e,t,i){this.browsingContextId=t,this.shellId=i,this._url=y(e,"api/stdin/terminal")}getStdin(e){try{let{xhr:t,msg:i}=this._prepareStdinRequest(e,h.SYNC);return t.send(i),this._processStdinReply(t.responseText)}catch(e){return console.error(`Failed to request stdin via service worker: ${e}`),""}}async getStdinAsync(e,t=!1){try{let{xhr:i,msg:s}=this._prepareStdinRequest(e,h.ASYNC,t),r=new Promise((e,t)=>{i.onload=()=>e(i.responseText),i.onerror=()=>t("XHR error")});return i.send(s),this._processStdinReply(await r)}catch(e){return console.error(`Failed to request stdin via service worker: ${e}`),""}}_prepareStdinRequest(e,t,i=!1){let s=new XMLHttpRequest;s.open("POST",this._url,t===h.ASYNC);let r={shellId:this.shellId,timeoutMs:e};return i&&(r.test=!0),{xhr:s,msg:JSON.stringify({browsingContextId:this.browsingContextId,data:r})}}_processStdinReply(e){let t=JSON.parse(e);if("error"in t)throw Error(t.error);if(void 0!==t.text)return t.text??"";throw Error(`Invalid stdin response: ${t}`)}_url}var v=i(899);let S=/\x1b\[[^m]*m/g,E="\x1b[?1049h",O="\x1b[?1049l",k=(e=1)=>e>0?"\x1b["+e+"C":"",I=(e=1)=>e>0?"\x1b["+e+"D":"",N="\x1b[H",A="\x1b[2J",T="\x1b[3J",R="\x1b[K",P="\x1b[1K",M=e=>e.replace(S,""),L="\x1b[1;0m",D="\x1b[1;31m",F="\x1b[1;32m",W="\x1b[0;91m",B="\x1b[0;94m",U="\x1b[0;95m",$="\x1b[0;31m",j="\x1b[0;32m",H="\x1b[0;33m";!function(e){var t,i,s,r;let n,a,o;(t=n=e.InputFlag||(e.InputFlag={}))[t.ISTRIP=32]="ISTRIP",t[t.INLCR=64]="INLCR",t[t.IGNCR=128]="IGNCR",t[t.ICRNL=256]="ICRNL",t[t.IUCLC=512]="IUCLC",t[t.IXON=1024]="IXON",t[t.IXANY=2048]="IXANY",t[t.IMAXBEL=8192]="IMAXBEL",t[t.IUTF8=16384]="IUTF8",(i=a=e.OutputFlag||(e.OutputFlag={}))[i.OPOST=1]="OPOST",i[i.OLCUC=2]="OLCUC",i[i.ONLCR=4]="ONLCR",i[i.OCRNL=8]="OCRNL",i[i.ONOCR=16]="ONOCR",i[i.ONLRET=32]="ONLRET",i[i.TABDLY=6144]="TABDLY",(s=o=e.LocalFlag||(e.LocalFlag={}))[s.ISIG=1]="ISIG",s[s.ICANON=2]="ICANON",s[s.ECHO=8]="ECHO",s[s.ECHOE=16]="ECHOE",s[s.ECHOK=32]="ECHOK",s[s.ECHONL=64]="ECHONL",s[s.NOFLSH=128]="NOFLSH",s[s.ECHOCTL=512]="ECHOCTL",s[s.ECHOPRT=1024]="ECHOPRT",s[s.ECHOKE=2048]="ECHOKE",s[s.IEXTEN=32768]="IEXTEN",(r=e.ControlCharacter||(e.ControlCharacter={}))[r.VINTR=0]="VINTR",r[r.VQUIT=1]="VQUIT",r[r.VERASE=2]="VERASE",r[r.VKILL=3]="VKILL",r[r.VEOF=4]="VEOF",r[r.VTIME=5]="VTIME",r[r.VMIN=6]="VMIN",r[r.VSWTCH=7]="VSWTCH",r[r.VSTART=8]="VSTART",r[r.VSTOP=9]="VSTOP",r[r.VSUSP=10]="VSUSP",r[r.VEOL=11]="VEOL",r[r.VREPRINT=12]="VREPRINT",r[r.VDISCARD=13]="VDISCARD",r[r.VWERASE=14]="VWERASE",r[r.VLNEXT=15]="VLNEXT",r[r.VEOL2=16]="VEOL2",e.cloneFlags=function(e){return{c_iflag:e.c_iflag,c_oflag:e.c_oflag,c_cflag:e.c_cflag,c_lflag:e.c_lflag,c_cc:[...e.c_cc]}};class l{c_iflag=0;c_oflag=0;c_cflag=0;c_lflag=0;c_cc=[]}e.Flags=l;class h{constructor(){this.setDefaultShell()}get(){return this._flags}log(e){let t=(e,t,i)=>{let s=[];for(let[t,r]of Object.entries(e).filter(([e,t])=>e[0].match(/\D/)))(i&r)>0&&s.push(t);return` ${t} = ${i} 0x${i.toString(16)} = ${s.join(" ")}`},i=["Cockle "+e+":"],s=this._flags;i.push(t(n,"c_iflag",s.c_iflag)),i.push(t(a,"c_oflag",s.c_oflag)),i.push(` c_cflag = ${s.c_cflag} 0x${s.c_cflag.toString(16)}`),i.push(t(o,"c_lflag",s.c_lflag)),i.push(` c_cc = ${s.c_cc}`),console.debug(i.join("\n"))}set(e){this._flags=e,this.log("Termios set")}setDefaultShell(){this.setDefaultWasm(),this._flags.c_oflag|=a.ONOCR}setDefaultWasm(){let e=this._flags;e.c_iflag=n.IUTF8|n.IMAXBEL|n.IXON|n.ICRNL,e.c_oflag=a.OPOST|a.ONLCR,e.c_cflag=191,e.c_lflag=o.IEXTEN|o.ECHOKE|o.ECHOCTL|o.ECHOK|o.ECHOE|o.ECHO|o.ICANON|o.ISIG,e.c_cc=[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}setRawMode(){let e=this._flags;e.c_iflag&=~(n.ISTRIP|n.INLCR|n.IGNCR|n.ICRNL|n.IXON),e.c_oflag&=~a.OPOST,e.c_lflag&=~(o.ECHO|o.ECHONL|o.ICANON|o.ISIG|o.IEXTEN)}_flags=new l}e.Termios=h}(u||(u={}));class z{outputCallback;termios;constructor(e,t){this.outputCallback=e,this.termios=t}async canEnable(){await this._available?.promise}async disable(){this._enabled&&(this._enabled=!1,this._available?.resolve())}async enable(){this._enabled=!0,this._available=new v.PromiseDelegate}get enabled(){return this._enabled}pollInput(e){if(!this._enabled)throw Error("WorkerIO.pollInput when disabled");let t=this._readBuffer.length>0;if(!t&&0!==e){let i=this._getStdin(e);this._postRead(i),t=this._readBuffer.length>0}return t}read(e){if(!this._enabled)throw Error("WorkerIO.read when disabled");if(null!==e&&e<=0)return[];if(this._readBuffer.length>0&&this._canReturnNow())return this._readFromBuffer(e);for(;!this._canReturnNow();){let e=this._getStdin(-1);this._postRead(e)}return this._readFromBuffer(e)}async readAsync(e,t){if(!this._enabled)throw Error("WorkerIO.readAsync when disabled");if(null!==e&&e<=0)return[];if(this._readBuffer.length>0&&this._canReturnNow())return this._readFromBuffer(e);for(;!this._canReturnNow();){let e=await this._getStdinAsync(t);if(this._postRead(e),""===e&&t>=0)break}return this._readFromBuffer(e)}utf8ArrayToString(e){return void 0===this._utf8Decoder&&(this._utf8Decoder=new TextDecoder("utf8")),this._utf8Decoder.decode(e)}write(e){let t=[];t="string"==typeof e?this._processWriteChars(e.split("").map(e=>e.charCodeAt(0))):this._processWriteChars(e),this.outputCallback(b(t))}_canReturnNow(){if(this._isLineBuffering()){let e=this._readBuffer.at(-1);return 10===e||4===e}return this._readBuffer.length>0}_isLineBuffering(){return(this.termios.get().c_lflag&u.LocalFlag.ICANON)>0}_maybeEchoToOutput(e){let t=this.termios.get(),i=(t.c_lflag&u.LocalFlag.ECHO)>0,s=(t.c_lflag&u.LocalFlag.ECHONL)>0;if(!i&&!s)return;let r=[];for(let s of e)switch(s){case 10:t.c_oflag&u.OutputFlag.ONLCR?r.push(13,10):r.push(10);break;case 4:break;case 127:r.push(8,32,8);break;default:i&&r.push(s)}r.length>0&&this.write(r)}_postRead(e){let t=e.split("").map(e=>e.charCodeAt(0));this._processReadChars(t)}_processReadChars(e){let t=this.termios.get(),i=[];for(let s of e)switch(s){case 13:(t.c_iflag&u.InputFlag.IGNCR)==0&&((t.c_iflag&u.InputFlag.ICRNL)>0?(i.push(10),this._readBuffer.push(10)):(i.push(13),this._readBuffer.push(13)));break;case 10:(t.c_iflag&u.InputFlag.INLCR)>0?(i.push(13),this._readBuffer.push(13)):(i.push(10),this._readBuffer.push(10));break;case 127:(t.c_lflag&u.LocalFlag.ICANON)==0?(i.push(127),this._readBuffer.push(127)):this._readBuffer.length>0&&(i.push(127),this._readBuffer.pop());break;default:i.push(s),this._readBuffer.push(s)}this._maybeEchoToOutput(i)}_processWriteChars(e){let{c_oflag:t}=this.termios.get(),i=[];for(let s=0;s<e.length;s++){let r=e[s];if(27===r){let t=e.at(s+1);if(91===t||93===t){let t=91===e[s+1],r=e.slice(s+2).findIndex(e=>t?e>=65&&e<=90||e>=97&&e<=122:7===e||27===e);if(r>=0){let t=e.slice(s,s+r+3);i.push(...t),s+=r+2;let n=b(t);this._inAlternativeBuffer?n===O&&(this._inAlternativeBuffer=!1):n===E?this._inAlternativeBuffer=!0:n===N&&(this._writeColumn=0);continue}}else if(void 0!==t){let t=e.slice(s,s+2);i.push(...t),s+=1;continue}}switch(r){case 13:13!==i.at(-1)&&i.push(13);break;case 10:if(0===this._writeColumn&&(t&u.OutputFlag.ONOCR)>0)break;this._writeColumn=0,(t&u.OutputFlag.ONLCR)>0&&13!==i.at(-1)&&i.push(13),i.push(10);break;default:!this._inAlternativeBuffer&&r>=32&&this._writeColumn++,i.push(r)}}return i}_readFromBuffer(e){if(null===e){let e=this._readBuffer;return this._readBuffer=[],e}{let t=this._readBuffer.slice(0,e);return this._readBuffer.splice(0,t.length),t}}_available;_enabled=!1;_inAlternativeBuffer=!1;_utf8Decoder;_writeColumn=0;_readBuffer=[]}class V extends z{constructor(e,t,i,s,r){super(e,t),this._utils=new x(i,s,r)}_getStdin(e){return this._utils.getStdin(e)}async _getStdinAsync(e){return this._utils.getStdinAsync(e)}_utils}(t=c||(c={})).REQUEST_INDEX=0,t.TIMEOUT_INDEX=1,t.LENGTH_INDEX=2,t.START_INDEX=3,t.NO_REQUEST_VALUE=0,t.REQUEST_VALUE=1,t.MORE_TO_FOLLOW_VALUE=2,t.ABORT_VALUE=3,t.maxChars=1e3,t.encodeTimeout=function(e){return e<0||e>=1e5?1e5:Math.round(e)},t.decodeTimeout=function(e){return e>=1e5?-1:e};class Q extends z{constructor(e,t,i){super(e,t);const s=c.maxChars+4;this._sharedArrayBuffer=i,this._intArray=new Int32Array(this._sharedArrayBuffer,0,s)}_getStdin(e){Atomics.load(this._intArray,c.REQUEST_INDEX)!==c.NO_REQUEST_VALUE&&console.error("SharedArrayBuffer stdin request already pending"),Atomics.store(this._intArray,c.TIMEOUT_INDEX,c.encodeTimeout(e));let t="",i=!0;for(;i;){Atomics.store(this._intArray,c.REQUEST_INDEX,c.REQUEST_VALUE),Atomics.notify(this._intArray,c.REQUEST_INDEX,1),Atomics.wait(this._intArray,c.REQUEST_INDEX,c.REQUEST_VALUE),i=Atomics.load(this._intArray,c.REQUEST_INDEX)===c.MORE_TO_FOLLOW_VALUE;let e=Atomics.load(this._intArray,c.LENGTH_INDEX);for(let i=0;i<e;i++)t+=String.fromCharCode(Atomics.load(this._intArray,c.START_INDEX+i))}return t}async _getStdinAsync(e){Atomics.load(this._intArray,c.REQUEST_INDEX)!==c.NO_REQUEST_VALUE&&console.error("SharedArrayBuffer stdin request already pending"),Atomics.store(this._intArray,c.TIMEOUT_INDEX,c.encodeTimeout(e));let t="",i=!0;for(;i;){Atomics.store(this._intArray,c.REQUEST_INDEX,c.REQUEST_VALUE),Atomics.notify(this._intArray,c.REQUEST_INDEX,1);let{async:e,value:s}=Atomics.waitAsync(this._intArray,c.REQUEST_INDEX,c.REQUEST_VALUE);e&&await s,i=Atomics.load(this._intArray,c.REQUEST_INDEX)===c.MORE_TO_FOLLOW_VALUE;let r=Atomics.load(this._intArray,c.LENGTH_INDEX);for(let e=0;e<r;e++)t+=String.fromCharCode(Atomics.load(this._intArray,c.START_INDEX+e))}return t}_intArray;_sharedArrayBuffer}class X{setMainIO;setWorkerIO;constructor(e,t){this.setMainIO=e,this.setWorkerIO=t,this._map.set("sab",{longName:"shared array buffer",available:!1}),this._map.set("sw",{longName:"service worker",available:!1})}available(e){return this._getByShortName(e).available}get enabled(){return this._enabled}get shortNames(){return Array(...this._map.keys())}longName(e){return this._getByShortName(e).longName}setAvailable(e,t){this._getByShortName(e).available=t}setEnabled(e){if(this._map.has(e))return void this._enable(e);let t=Object.entries(this._map).find(([t,i])=>i.longName===e);if(void 0!==t)this._enable(t[0]);else throw Error(`Unknown StdinContext name '${e}'`)}_enable(e){if(e!==this._enabled){if(!this._getByShortName(e).available)throw Error(`StdinContext '${e}' is not available`);this._enabled=e,this._initialised?(this.setWorkerIO(e),this.setMainIO(e)):this._initialised=!0}}_getByShortName(e){let t=this._map.get(e);if(void 0===t)throw Error(`Unknown shortName '${e}' passed to StdinContext`);return t}_map=new Map;_enabled="";_initialised=!1}class q extends Map{constructor(){super()}getRecursive(e){let t=this.get(e);for(;void 0!==t;){let i=t.split(" ")[0];if(i===e)break;let s=this.get(i);if(void 0===s)break;t=s+t.slice(i.length),e=i}return t}match(e){return[...this.keys()].filter(t=>t.startsWith(e))}}class G{get(e,t){let i=this.key(e,t);return this._cache.get(i)??void 0}has(e,t){let i=this.key(e,t);return this._cache.has(i)}key(e,t){return[e,t].join("/")}set(e,t,i){let s=this.key(e,t);this._cache.set(s,i)}_cache=new Map}class J{wasmBaseUrl;wasmUrlQueryParamsCallback;downloadModuleCallback;constructor(e,t,i){this.wasmBaseUrl=e,this.wasmUrlQueryParamsCallback=t,this.downloadModuleCallback=i}async getJavaScriptModule(e,t){let i=await this._getModule(e,t,!1);return void 0!==i?i:void 0}async getWasmModule(e,t){let i=await this._getModule(e,t,!0);return void 0!==i?i:void 0}async _getModule(e,t,i){let s=this.cache.get(e,t);if(void 0===s){let r=this.cache.key(e,t)+".js",n=await this.wasmUrlQueryParamsCallback(r),a=y(this.wasmBaseUrl,r+n);console.log(`Cockle loading ${i?"WebAssembly":"JavaScript"} module from ${a}`),this.downloadModuleCallback(e,t,!0);try{importScripts(a),s=self.Module}finally{this.downloadModuleCallback(e,t,!1)}void 0!==s&&this.cache.set(e,t,s)}return s}cache=new G}(s=d||(d={}))[s.None=0]="None",s[s.Unknown=1]="Unknown",s[s.Builtin=2]="Builtin",s[s.External=4]="External",s[s.JavaScript=8]="JavaScript",s[s.Wasm=16]="Wasm",s[s.All=31]="All";class Y extends Error{exitCode;constructor(e,t){super(t),this.exitCode=e}}class K extends Y{constructor(e){super(127,`'${e}': command not found`)}}class Z extends Y{constructor(e){super(127,`'${e}': cannot load command`)}}class ee extends Y{constructor(e){super(1,e)}}class et extends Y{constructor(e){super(126,`'${e}': cannot run command`)}}class ei{name;callExternalCommand;callExternalTabComplete;constructor(e,t,i){this.name=e,this.callExternalCommand=t,this.callExternalTabComplete=i}get commandType(){return d.External}get moduleName(){return"<external>"}names(){return[this.name]}get packageName(){return""}async run(e){let{name:t,args:i,environment:s,stdin:r,stdout:n,stderr:a}=e;if(t!==this.name)throw new K(t);let{exitCode:o,environmentChanges:l}=await this.callExternalCommand(t,i,Object.fromEntries(s),r.isTerminal(),n.isTerminal(),a.isTerminal(),e.termios.get());return void 0!==l&&Object.entries(l).forEach(([e,t])=>{void 0===t?s.delete(e):s.set(e,t)}),o}async tabComplete(e){if(void 0!==this.callExternalTabComplete){let{name:t,args:i}=e;return await this.callExternalTabComplete(t,i)}return{}}}class es{get commandType(){return d.Builtin}get moduleName(){return"<builtin>"}get packageName(){return""}names(){return[this.name]}run(e){let{name:t}=e;if(t!==this.name)throw new K(t);return this._run(e)}}class er{shortName;longName;description;constructor(e,t,i){if(this.shortName=e,this.longName=t,this.description=i,0!==e.length&&1!==e.length)throw new ee(`Argument shortName ${e} must be a string of length 1`);if(!(0===t.length||t.length>1))throw new ee(`Argument longName ${t} must be a string of length greater than 1`)}get isSet(){return this._isSet}parse(e,t){return this.set(),t}set(){this._isSet=!0}_isSet=!1}class en extends er{constructor(e,t,i){super(e,t,i)}}class ea extends er{options;constructor(e={}){super("","",""),this.options=e;const{max:t,min:i}=e;if(void 0!==i){if(i<0)throw new ee("Negative min for positional arguments");if(void 0!==t&&t<i)throw new ee("max must be greater than min for positional arguments")}}get length(){return this._strings.length}parse(e,t){for(let i of(this._strings.push(e),this.set(),t)){if(i.startsWith("-"))throw new ee("Cannot have named argument after positional arguments");this._strings.push(i)}return[]}get strings(){return this._strings}_strings=[]}class eo extends ea{options;constructor(e={}){super(e),this.options=e}}(r=m||(m={}))[r.TOP=0]="TOP",r[r.MIDDLE=1]="MIDDLE",r[r.BOTTOM=2]="BOTTOM",(n=f||(f={}))[n.LEFT=0]="LEFT",n[n.INNER=1]="INNER",n[n.RIGHT=2]="RIGHT";class el{options;constructor(e){this.options=e}addHeaderRow(e){this._headerRows.push(e),this._updateColumnWidths(e)}addRow(e){this._rows.push(e),this._updateColumnWidths(e)}static defaultColorByColumn(){return new Map([[1,B],[2,U],[3,j],[4,H]])}*lines(e="",t=""){let{sortByColumn:i}=this.options;if(void 0!==i){let e=(t,s,r)=>{let n=i[t];return s[n]<r[n]?-1:s[n]>r[n]?1:i.length>t+1?e(t+1,s,r):0};this._rows.sort((t,i)=>e(0,t,i))}let s=this._columnWidths.length,r=this.horizontalSpacer(m.TOP);for(let i of(void 0!==r&&(yield e+C(r)+t),this._headerRows)){let r="";for(let e=0;e<s;e++){r+=this.verticalSpacer(0===e?f.LEFT:f.INNER);let t=i[e]??"";r+=t+" ".repeat(this._columnWidths[e]-this._cleanString(t).length)}r+=this.verticalSpacer(f.RIGHT),yield e+C(r)+t}if(this._headerRows.length>0){let i=this.horizontalSpacer(m.MIDDLE);void 0!==i&&(yield e+C(i)+t)}for(let i of this._rows){let r="";for(let e=0;e<s;e++){r+=this.verticalSpacer(0===e?f.LEFT:f.INNER);let t=i[e]??"";if(t){let i=this.options.colorByColumn?.get(e);r+=void 0!==i?i+t+L:t}r+=" ".repeat(this._columnWidths[e]-this._cleanString(t).length)}r+=this.verticalSpacer(f.RIGHT),yield e+C(r)+t}let n=this.horizontalSpacer(m.BOTTOM);void 0!==n&&(yield e+C(n)+t)}get rowCount(){return this._rows.length}write(e,t="",i="\n"){for(let s of this.lines(t,i))e.write(s)}_cleanString(e){return M(e)}_updateColumnWidths(e){let t=e.map(e=>this._cleanString(e).length),i=Math.min(this._columnWidths.length,t.length);for(let e=0;e<i;e++)this._columnWidths[e]=Math.max(this._columnWidths[e],t[e]);t.length>i&&this._columnWidths.push(...t.slice(i))}_columnWidths=[];_headerRows=[];_rows=[]}class eh extends el{constructor(e={}){super(e);const t=e.spacerSize??2;this._spacer=" ".repeat(t),this._spacersAtEnds=e.spacersAtEnds??!1}horizontalSpacer(e){if(e===m.MIDDLE){let e=this._columnWidths.reduce((e,t)=>e+t)+this._totalSeparatorSize();return"─".repeat(e)}}verticalSpacer(e){return e===f.INNER||this._spacersAtEnds?this._spacer:""}_totalSeparatorSize(){let e=this._columnWidths.length-1;return this._spacersAtEnds&&(e+=2),e*this._spacer.length}_spacer;_spacersAtEnds}class eu extends el{constructor(e={}){super(e)}horizontalSpacer(e){let t=(e=>{switch(e){case m.TOP:return"╭┬╮";case m.MIDDLE:return"├┼┤";case m.BOTTOM:return"╰┴╯"}})(e);return t[0]+this._columnWidths.map(e=>"─".repeat(e+2)).join(t[1])+t[2]}verticalSpacer(e){return e===f.LEFT?"│ ":e===f.RIGHT?" │":" │ "}}(a=p||(p={}))[a.Any=0]="Any",a[a.Directory=1]="Directory",a[a.File=2]="File";class ec{parse(e){return this._parseToRun(e.slice()),this}async tabComplete(e){let t={...e,args:e.args.slice()},i=await this._parseToTabComplete(t);return i.possibles&&(i.possibles=i.possibles.filter(t=>t.startsWith(e.args.at(-1)))),i}writeHelp(e){for(let t of this._help())e.write(`${t}
`)}_findByLongName(e){let t=this._longNameArguments;if(e in t)return t[e];throw new ee(`No such longName argument '${e}'`)}_findByShortName(e){let t=this._shortNameArguments;if(e in t)return t[e];throw new ee(`No such shortName argument '${e}'`)}*_help(){this.description&&(yield this.description);let e=new eh({spacerSize:3});for(let t of Object.values(this))if(t instanceof er){let{longName:i,shortName:s}=t;if(i||s){let r=s?`-${s}`:" ";i&&(r+=(s?", ":" ")+`--${i}`),e.addRow([r,t.description])}}if(e.rowCount>0&&(yield"",yield"options:",yield*e.lines(" ")),void 0!==this.subcommands){let e=new eh({spacerSize:3});for(let t of Object.values(this.subcommands))e.addRow([t.name,t.description]);e.rowCount>0&&(yield"",yield"subcommands:",yield*e.lines(" "))}}get _longNameArguments(){return Object.fromEntries(Object.values(this).filter(e=>e instanceof er&&"longName"in e&&e.longName.length>0).map(e=>[e.longName,e]))}_parseToRun(e){let{positional:t}=this,i=!1,s=this.subcommands??{},r=!0;for(;e.length>0;){let n=e.shift();if(r&&n in s){let t=s[n];t.set(),t.parse(e);break}if(n.startsWith("-")&&n.length>1){if(i)throw new ee("Cannot have named argument after positional arguments");if(n.startsWith("--")){let t=n.slice(2);e=this._findByLongName(t).parse(n,e)}else for(let t of n.slice(1).split(""))e=this._findByShortName(t).parse(n,e)}else if(void 0!==t)i=!0,e=t.parse(n,e);else throw new ee(`Unrecognised argument: '${n}'`);r=!1}if(void 0!==t){let{min:e,max:i}=t.options;if(void 0!==e&&t.length<e)throw new ee("Insufficient positional arguments");if(void 0!==i&&t.length>i)throw new ee("Too many positional arguments")}}async _parseToTabComplete(e){let{args:t}=e,{positional:i}=this,s=this.subcommands??{},r=!0;for(;t.length>0;){let n=t.shift(),a=0===t.length;if(r&&s){if(a){let e=Object.keys(s).filter(e=>e.startsWith(n));if(e.length>0)return{possibles:e}}if(n in s){let t=s[n];return t.set(),await t.tabComplete(e)}}if(n.startsWith("-"))if(a){let e=Object.keys(this._longNameArguments).map(e=>"--"+e);if(n.startsWith("--"))return{possibles:e};if(n.length>2)return{};return{possibles:Object.keys(this._shortNameArguments).map(e=>"-"+e).concat(e)}}else if(n.startsWith("--")){let e=n.slice(2);t=this._findByLongName(e).parse(n,t)}else for(let e of n.slice(1).split(""))t=this._findByShortName(e).parse(n,t);else if(void 0!==i)if(i instanceof eo)return{pathType:i.options.pathType??p.Any};else{let s=i.options.tabComplete;if(void 0!==s)return await s({...e,args:[n,...t]})}r=!1}return{}}get _shortNameArguments(){return Object.fromEntries(Object.values(this).filter(e=>e instanceof er&&"shortName"in e&&e.shortName.length>0).map(e=>[e.shortName,e]))}positional;subcommands;description}class ed extends ec{name;description;constructor(e,t){super(),this.name=e,this.description=t}get isSet(){return this._isSet}set(){this._isSet=!0}_isSet=!1}class em extends ec{description=`Without arguments, 'alias' prints the list of aliases in the reusable
form 'alias NAME=VALUE' on standard output.
Otherwise, an alias is defined for each NAME whose VALUE is given.
A trailing space in VALUE causes the next word to be checked for
alias substitution when the alias is expanded.`;positional=new ea;help=new en("h","help","display this help and exit")}class ef extends es{get name(){return"alias"}async tabComplete(e){return await new em().tabComplete(e)}async _run(e){let{aliases:t,stdout:i}=e,s=new em().parse(e.args);if(s.help.isSet)return s.writeHelp(i),0;if(s.positional.isSet)for(let e of s.positional.strings){let s=e.indexOf("=");-1===s?i.write(`${e}='${t.get(e)}'
`):t.set(e.slice(0,s),e.slice(s+1))}else for(let[e,s]of t.entries())i.write(`${e}='${s}'
`);return 0}}class ep extends ec{help=new en("h","help","display this help and exit")}class e_ extends ep{description="Always succeeds; Return a successful result."}class eg extends ep{description="Always fails; Return an unsuccessful result."}class ew extends es{get name(){return"true"}async tabComplete(e){return await new e_().tabComplete(e)}async _run(e){let t=new e_().parse(e.args);return t.help.isSet&&t.writeHelp(e.stdout),0}}class ey extends es{get name(){return"false"}async tabComplete(e){return await new eg().tabComplete(e)}async _run(e){let t=new eg().parse(e.args);return t.help.isSet?(t.writeHelp(e.stdout),0):1}}class eC extends ec{description=`Change the shell working directory.
Change the current directory to DIR. If DIR is "-", it is converted to $OLDPWD.`;positional=new eo({pathType:p.Directory});help=new en("h","help","display this help and exit")}class eb extends es{get name(){return"cd"}async tabComplete(e){return await new eC().tabComplete(e)}async _run(e){let t=new eC().parse(e.args);if(t.help.isSet)return t.writeHelp(e.stdout),0;let i=t.positional.strings;if(i.length<1)return 0;if(i.length>1)throw new ee("cd: too many arguments");let s=i[0];if("-"===s){let t=e.environment.get("OLDPWD");if(void 0===t)throw new ee("cd: OLDPWD not set");s=t,e.stdout.write(`${s}
`)}let{FS:r}=e.fileSystem,n=r.cwd();try{r.chdir(s)}catch(r){let{errno:t}=r,{ERRNO_CODES:i}=e.fileSystem;return t===i.ENOENT?e.stderr.write(`cd: ${s}: No such file or directory
`):t===i.ENOTDIR?e.stderr.write(`cd: ${s}: Not a directory
`):e.stderr.write(`cd: ${s}: Unable to cd
`),1}return e.environment.set("OLDPWD",n),e.environment.set("PWD",r.cwd()),0}}class ex extends ec{description="Clear the terminal screen if ANSI escapes are supported.";help=new en("h","help","display this help and exit")}class ev extends es{get name(){return"clear"}async tabComplete(e){return await new ex().tabComplete(e)}async _run(e){let{stdout:t}=e,i=new ex().parse(e.args);return i.help.isSet?i.writeHelp(t):t.isTerminal()&&t.write(A+T+N),0}}class eS extends ed{help=new en("h","help","display this help and exit");builtin=new en("b","builtin","display only builtin commands");external=new en("e","external","display only external commands");javascript=new en("j","javascript","display only javascript commands");wasm=new en("w","wasm","display only wasm commands");positional=new ea({tabComplete:async e=>({possibles:e.commandRegistry?.match(e.args.at(-1)||"",eA(this))??[]})})}class eE extends ed{positional=new ea({tabComplete:async e=>({possibles:e.commandRegistry?.allModules().map(e=>e.name)??[]})})}class eO extends ed{positional=new ea({tabComplete:async e=>({possibles:e.commandRegistry?[...e.commandRegistry.commandPackageMap.keys()]:[]})})}class ek extends ed{positional=new ea({max:1,tabComplete:async e=>({possibles:e.stdinContext?.shortNames??[]})})}class eI extends ec{description="Inspect and optionally modify Cockle configuration. Without arguments prints all sections. Use subcommands to target specific areas.";version=new en("v","version","show cockle version");worker=new en("w","worker","show web worker type");help=new en("h","help","display this help and exit");subcommands={command:new eS("command","Show information about one or more commands."),module:new eE("module","Show information about one or more modules."),package:new eO("package","Show information about one or more packages."),stdin:new ek("stdin","Configure or show synchronous stdin settings.")}}class eN extends es{get name(){return"cockle-config"}async tabComplete(e){return await new eI().tabComplete(e)}async _run(e){let{environment:t,stdout:i}=e,s=new eI().parse(e.args),{subcommands:r}=s;if(s.help.isSet)return s.writeHelp(i),0;let n=i.isTerminal()&&t.color?eu.defaultColorByColumn():void 0,a=0===e.args.length;if((a||s.version.isSet)&&this._writeVersion(e),(a||r.stdin.isSet)&&this._writeOrSetSyncStdinConfig(e,n,r.stdin.positional.strings.at(0)),(a||r.package.isSet)&&this._writePackageConfig(e,n,r.package.positional.strings),(a||r.module.isSet)&&this._writeModuleConfig(e,n,r.module.positional.strings),r.command.isSet){let{command:t}=r;if(t.help.isSet)return t.writeHelp(i),0;this._writeCommandConfig(e,n,t)}return s.worker.isSet&&this._writeWorker(e),0}_writeCommandConfig(e,t,i){let{commandRegistry:s,stdout:r}=e,n=i.positional.strings,a=s.commandNames(eA(i));if(n.length>0){let e=n.filter(e=>!a.includes(e));if(e.length>0)throw new ee(`Unknown command(s): ${e.sort().join(" ")}`);a=n.sort()}let o=new eu({colorByColumn:t,sortByColumn:[0]});for(let e of(o.addHeaderRow(["command","module"]),a)){let t=s.get(e);if(null===t)throw new ee(`Unknown command '${e}'`);o.addRow([e,t.moduleName])}o.write(r)}_writeModuleConfig(e,t,i){let{commandRegistry:s,commandModuleCache:r,stdout:n}=e,a=s.allModules(),o=a.map(e=>e.name);if(i.length>0){let e=i.filter(e=>!o.includes(e));if(e.length>0)throw new ee(`Unknown module(s): ${e.sort().join(" ")}`);a=a.filter(e=>i.includes(e.name))}let l=new eu({colorByColumn:t,sortByColumn:[0,1]});for(let e of(l.addHeaderRow(["module","package","cached"]),a))l.addRow([e.name,e.packageName,r.has(e.packageName,e.name)?"yes":""]);l.write(n)}_writeOrSetSyncStdinConfig(e,t,i){let{stdinContext:s,stdout:r}=e;void 0!==i&&s.setEnabled(i);let n=new eu({colorByColumn:t});n.addHeaderRow(["synchronous stdin","short name","available","enabled"]);let{enabled:a,shortNames:o}=s;for(let e of o)n.addRow([s.longName(e),e,s.available(e)?"yes":"",a===e?"yes":""]);n.write(r)}_writePackageConfig(e,t,i){let{commandRegistry:s,stdout:r}=e,n=[...s.commandPackageMap.keys()];if(i.length>0){let e=i.filter(e=>!n.includes(e));if(e.length>0)throw new ee(`Unknown package(s): ${e.sort().join(" ")}`);n=i.sort()}let a=new eu({colorByColumn:t,sortByColumn:[0]});for(let e of(a.addHeaderRow(["package","type","version","build string","source"]),n)){let t=s.commandPackageMap.get(e);a.addRow([t.name,t.wasm?"wasm":"js",t.version,t.build_string,t.channel])}a.write(r)}_writeVersion(e){let{stdout:t}=e;t.write(`cockle 1.7.0
`)}_writeWorker(e){let{stdout:t,workerType:i}=e;t.write(`${i} worker
`)}}function eA(e){let t=d.None;return e.builtin.isSet&&(t|=d.Builtin),e.external.isSet&&(t|=d.External),e.javascript.isSet&&(t|=d.JavaScript),e.wasm.isSet&&(t|=d.Wasm),t===d.None&&(t=d.All),t}class eT extends ec{description="Exit the shell";help=new en("h","help","display this help and exit")}class eR extends es{get name(){return"exit"}async tabComplete(e){return await new eT().tabComplete(e)}async _run(e){let{stdout:t,terminate:i}=e,s=new eT().parse(e.args);return s.help.isSet?s.writeHelp(t):(t.write("Terminating shell...\n"),t.flush(),i()),0}}class eP extends ec{description=`Set export attribute for shell variables.
Marks each NAME for automatic export to the environment of subsequently
executed commands. If VALUE is supplied, assign VALUE before exporting.`;positional=new ea;help=new en("h","help","display this help and exit")}class eM extends es{get name(){return"export"}async tabComplete(e){return await new eP().tabComplete(e)}async _run(e){let{environment:t,stdout:i}=e,s=new eP().parse(e.args);if(s.help.isSet)return s.writeHelp(i),0;if(s.positional.isSet)for(let e of s.positional.strings){let i=e.indexOf("=");if(i>0){let s=e.slice(0,i),r=e.slice(i+1);t.set(s,r)}}return 0}}class eL extends ec{description="Show help for built-in commands. With no arguments, lists available builtins. With names, shows each command's help (equivalent to '<cmd> --help').";help=new en("h","help","display this help and exit");positional=new ea({tabComplete:async e=>({possibles:e.commandRegistry?.commandNames(d.Builtin)??[]})})}class eD extends es{get name(){return"help"}async tabComplete(e){return await new eL().tabComplete(e)}async _run(e){let{args:t,stdout:i,stderr:s,commandRegistry:r}=e,n=new eL().parse(t);if(n.help.isSet)return n.writeHelp(i),0;let a=n.positional.strings,o=r?r.commandNames(d.Builtin):[];if(0===a.length){for(let e of(i.write("Built-in commands:\n"),o))i.write(` ${e}
`);return i.write("\n"),i.write("For detailed help, type <command-name> --help (e.g., `history --help` or `alias -h`)."),0}let l=0;for(let t of a){if(!o.includes(t)){s.write(`help: unknown built-in: ${t}
`),l=1;continue}let n=r.get(t);if(null===n){s.write(`help: failed to get command '${t}'
`),l=1;continue}let a={...e,name:t,args:["--help"]};i.write(`
=== help for ${t} ===
`),await n.run(a)}return l}}class eF extends ec{description=` Display or manipulate the history list.
Display the history list with line numbers, prefixing each modified
entry with a '*'`;clear=new en("c","","clear the history by deleting all of the entries");help=new en("h","help","display this help and exit")}class eW extends es{get name(){return"history"}async tabComplete(e){return await new eF().tabComplete(e)}async _run(e){let{history:t,stdout:i}=e,s=new eF().parse(e.args);return s.help.isSet?s.writeHelp(i):s.clear.isSet?t.clear():t.write(i),0}}class eB extends ec{description=`Unset shell variables.
For each NAME, remove the correpsonding environment variable.
Ignores NAMEs that are not set.`;positional=new ea({tabComplete:async e=>({possibles:e.environment?e.environment.names():[]})});help=new en("h","help","display this help and exit")}class eU extends es{get name(){return"unset"}async tabComplete(e){return await new eB().tabComplete(e)}async _run(e){let{environment:t,stdout:i}=e,s=new eB().parse(e.args);if(s.help.isSet)return s.writeHelp(i),0;if(s.positional.isSet)for(let e of s.positional.strings)t.delete(e);return 0}}class e$ extends ec{description="Locate built-in commands by name. Prints each given command if it exists, otherwise an error message.";help=new en("h","help","display this help and exit");positional=new ea({tabComplete:async e=>({possibles:e.commandRegistry?.commandNames()??[]})})}class ej extends es{get name(){return"which"}async tabComplete(e){return await new e$().tabComplete(e)}async _run(e){let{args:t,stdout:i}=e,s=new Set(e.commandRegistry?.commandNames()),r=new e$().parse(e.args);if(r.help.isSet)return r.writeHelp(i),0;if(0===r.positional.strings.length)return i.write("which: missing operand\n"),r.writeHelp(i),1;let n=0;for(let i of t)s.has(i)?e.stdout.write(`${i}
`):(e.stdout.write(`which: no ${i} command
`),n=1);return n}}class eH{callExternalCommand;callExternalTabComplete;constructor(e,t){this.callExternalCommand=e,this.callExternalTabComplete=t,this.registerBuiltinCommands(w)}allModules(){let e=[];for(let t of this.commandPackageMap.values())e.push(...t.modules);return e.sort((e,t)=>e.name<t.name?-1:1),e}commandNames(e=d.All){return e===d.None?[]:e===d.All?Array.from(this._map.keys()).sort():Array.from(this._map).filter(([t,i])=>(i.commandType&e)>0).map(([e,t])=>e).sort()}get(e){return this._map.get(e)??null}match(e,t=d.All){return this.commandNames(t).filter(t=>t.startsWith(e))}registerBuiltinCommands(e){for(let[t,i]of Object.entries(e))if(!(!t.endsWith("Command")||t.startsWith("Builtin")))try{let e=new i;e instanceof es&&this._register(e)}catch{}}registerCommandPackage(e){for(let t of(this.commandPackageMap.set(e.name,e),e.modules))this._register(t.runner)}registerExternalCommand(e,t){this._validName(e)&&this._map.set(e,new ei(e,this.callExternalCommand,t?this.callExternalTabComplete:void 0))}_register(e){for(let t of e.names())this._validName(t)&&this._map.set(t,e)}_validName(e){let t=null!==e.match(/^[\w-]+$/);return t||console.warn(`${e} is not a valid command name`),t}_map=new Map;commandPackageMap=new Map}class ez{module;constructor(e){this.module=e}get moduleName(){return this.module.moduleName}names(){return this.module.names}get packageName(){return this.module.packageName}}class eV{input;constructor(e){this.input=e}isTerminal(){return this.input.isTerminal()}async readAsync(e){return b(await this.input.readAsync(e))}}class eQ extends ez{module;constructor(e){super(e),this.module=e}get commandType(){return d.JavaScript}async run(e){let{name:t}=e,i=await this.module.loader.getJavaScriptModule(this.packageName,this.moduleName);if(void 0===i)throw new K(t);if(!Object.prototype.hasOwnProperty.call(i,"run"))throw new Z(t);let{args:s,environment:r,fileSystem:n,shellId:a,stdout:o,stderr:l,termios:h,size:u}=e,c=new eV(e.stdin);try{return await i.run({name:t,args:s,environment:r,fileSystem:n,shellId:a,stdin:c,stdout:o,stderr:l,size:u,termios:h})}catch(e){throw console.error(`JavascriptCommandRunner: ${e}`),new et(t)}}async tabComplete(e){let t=await this.module.loader.getJavaScriptModule(this.packageName,this.moduleName);if(void 0!==t&&Object.prototype.hasOwnProperty.call(t,"tabComplete")&&void 0!==t.tabComplete){let{name:i,args:s,shellId:r}=e;try{return await t.tabComplete({name:i,args:s,shellId:r}