sliccy 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/README.md +512 -0
- package/dist/cli/chrome-launch.d.ts +47 -0
- package/dist/cli/chrome-launch.js +324 -0
- package/dist/cli/cli-log-dedup.d.ts +19 -0
- package/dist/cli/cli-log-dedup.js +62 -0
- package/dist/cli/electron-controller.d.ts +38 -0
- package/dist/cli/electron-controller.js +287 -0
- package/dist/cli/electron-main.d.ts +1 -0
- package/dist/cli/electron-main.js +183 -0
- package/dist/cli/electron-runtime.d.ts +58 -0
- package/dist/cli/electron-runtime.js +133 -0
- package/dist/cli/file-logger.d.ts +38 -0
- package/dist/cli/file-logger.js +207 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +1023 -0
- package/dist/cli/launch-url.d.ts +9 -0
- package/dist/cli/launch-url.js +34 -0
- package/dist/cli/qa-setup.d.ts +1 -0
- package/dist/cli/qa-setup.js +36 -0
- package/dist/cli/release-package.d.ts +17 -0
- package/dist/cli/release-package.js +232 -0
- package/dist/cli/runtime-flags.d.ts +21 -0
- package/dist/cli/runtime-flags.js +154 -0
- package/dist/cli/sync-release-version.d.ts +2 -0
- package/dist/cli/sync-release-version.js +34 -0
- package/dist/tray-url-shared.d.ts +11 -0
- package/dist/tray-url-shared.js +56 -0
- package/dist/ui/assets/___vite-browser-external_commonjs-proxy-7ULRRj69.js +1 -0
- package/dist/ui/assets/__vite-browser-external-D7Ct-6yo.js +1 -0
- package/dist/ui/assets/addon-fit-DOCEibfw.js +12 -0
- package/dist/ui/assets/bsh-watchdog-D19WB0U1.js +2 -0
- package/dist/ui/assets/index-BVQAdk-Y.js +8 -0
- package/dist/ui/assets/index-BjJrFm2K.js +43 -0
- package/dist/ui/assets/index-C1dglHrI.js +3 -0
- package/dist/ui/assets/index-D3Enm5ux.js +13091 -0
- package/dist/ui/assets/index-D7hjyFh1.js +2 -0
- package/dist/ui/assets/index-D8uSC2sl.js +45 -0
- package/dist/ui/assets/index-DEglHp2j.js +1 -0
- package/dist/ui/assets/index-DvjzakYY.js +14406 -0
- package/dist/ui/assets/index-deZeJCgO.js +1 -0
- package/dist/ui/assets/index-mz3VYh0I.js +131 -0
- package/dist/ui/assets/index-r2m8Dpaz.js +54 -0
- package/dist/ui/assets/index-ygVJ3eFG.js +11 -0
- package/dist/ui/assets/lick-manager-proxy-G3WuipZ-.js +1 -0
- package/dist/ui/assets/magic-string.es-BPLJknd7.js +10 -0
- package/dist/ui/assets/oauth-service-DIahkF-o.js +1 -0
- package/dist/ui/assets/offscreen-client-ByVIJGHW.js +1 -0
- package/dist/ui/assets/pdfjs-uyZuKmOq.js +59 -0
- package/dist/ui/assets/pyodide-D73G_Ygx.mjs +4 -0
- package/dist/ui/assets/sql-wasm-BggYNCID.js +2 -0
- package/dist/ui/assets/stream-lEC9OYG2.js +1 -0
- package/dist/ui/assets/xterm-Bb8UKAlD.js +27 -0
- package/dist/ui/assets/xterm-DOrYoP_4.css +32 -0
- package/dist/ui/electron-overlay-entry.js +360 -0
- package/dist/ui/favicon.png +0 -0
- package/dist/ui/fonts/AdobeClean-Bold.otf +0 -0
- package/dist/ui/fonts/AdobeClean-ExtraBold.otf +0 -0
- package/dist/ui/fonts/AdobeClean-Medium.otf +0 -0
- package/dist/ui/fonts/AdobeClean-Regular.otf +0 -0
- package/dist/ui/index.html +1981 -0
- package/dist/ui/preview-sw.js +4 -0
- package/package.json +81 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";(()=>{var Nt=Object.create;var J=Object.defineProperty;var Ut=Object.getOwnPropertyDescriptor;var zt=Object.getOwnPropertyNames;var Ct=Object.getPrototypeOf,Lt=Object.prototype.hasOwnProperty;var w=(s,t)=>()=>(t||s((t={exports:{}}).exports,t),t.exports);var At=(s,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of zt(t))!Lt.call(s,r)&&r!==e&&J(s,r,{get:()=>t[r],enumerable:!(i=Ut(t,r))||i.enumerable});return s};var Wt=(s,t,e)=>(e=s!=null?Nt(Ct(s)):{},At(t||!s||!s.__esModule?J(e,"default",{value:s,enumerable:!0}):e,s));var Z=w((Oe,Q)=>{Q.exports=$t;function $t(s){var t,e;if(typeof s!="function")throw new Error("expected a function but got "+s);return function(){return t||(t=!0,e=s.apply(this,arguments)),e}}});var et=w(tt=>{(function(s){"use strict";function t(o,l){var h;return o instanceof Buffer?h=o:h=Buffer.from(o.buffer,o.byteOffset,o.byteLength),h.toString(l)}var e=function(o){return Buffer.from(o)};function i(o){for(var l=0,h=Math.min(256*256,o.length+1),f=new Uint16Array(h),x=[],u=0;;){var m=l<o.length;if(!m||u>=h-1){var q=f.subarray(0,u),N=q;if(x.push(String.fromCharCode.apply(null,N)),!m)return x.join("");o=o.subarray(l),l=0,u=0}var T=o[l++];if((T&128)===0)f[u++]=T;else if((T&224)===192){var R=o[l++]&63;f[u++]=(T&31)<<6|R}else if((T&240)===224){var R=o[l++]&63,A=o[l++]&63;f[u++]=(T&31)<<12|R<<6|A}else if((T&248)===240){var R=o[l++]&63,A=o[l++]&63,qt=o[l++]&63,M=(T&7)<<18|R<<12|A<<6|qt;M>65535&&(M-=65536,f[u++]=M>>>10&1023|55296,M=56320|M&1023),f[u++]=M}}}function r(o){for(var l=0,h=o.length,f=0,x=Math.max(32,h+(h>>>1)+7),u=new Uint8Array(x>>>3<<3);l<h;){var m=o.charCodeAt(l++);if(m>=55296&&m<=56319){if(l<h){var q=o.charCodeAt(l);(q&64512)===56320&&(++l,m=((m&1023)<<10)+(q&1023)+65536)}if(m>=55296&&m<=56319)continue}if(f+4>u.length){x+=8,x*=1+l/o.length*2,x=x>>>3<<3;var N=new Uint8Array(x);N.set(u),u=N}if((m&4294967168)===0){u[f++]=m;continue}else if((m&4294965248)===0)u[f++]=m>>>6&31|192;else if((m&4294901760)===0)u[f++]=m>>>12&15|224,u[f++]=m>>>6&63|128;else if((m&4292870144)===0)u[f++]=m>>>18&7|240,u[f++]=m>>>12&63|128,u[f++]=m>>>6&63|128;else continue;u[f++]=m&63|128}return u.slice?u.slice(0,f):u.subarray(0,f)}var n="Failed to ",a=function(o,l,h){if(o)throw new Error("".concat(n).concat(l,": the '").concat(h,"' option is unsupported."))},c=typeof Buffer=="function"&&Buffer.from,_=c?e:r;function d(){this.encoding="utf-8"}d.prototype.encode=function(o,l){return a(l&&l.stream,"encode","stream"),_(o)};function E(o){var l;try{var h=new Blob([o],{type:"text/plain;charset=UTF-8"});l=URL.createObjectURL(h);var f=new XMLHttpRequest;return f.open("GET",l,!1),f.send(),f.responseText}finally{l&&URL.revokeObjectURL(l)}}var S=!c&&typeof Blob=="function"&&typeof URL=="function"&&typeof URL.createObjectURL=="function",b=["utf-8","utf8","unicode-1-1-utf-8"],O=i;c?O=t:S&&(O=function(o){try{return E(o)}catch{return i(o)}});var V="construct 'TextDecoder'",Ot="".concat(n," ").concat(V,": the ");function K(o,l){a(l&&l.fatal,V,"fatal"),o=o||"utf-8";var h;if(c?h=Buffer.isEncoding(o):h=b.indexOf(o.toLowerCase())!==-1,!h)throw new RangeError("".concat(Ot," encoding label provided ('").concat(o,"') is invalid."));this.encoding=o,this.fatal=!1,this.ignoreBOM=!1}K.prototype.decode=function(o,l){a(l&&l.stream,"decode","stream");var h;return o instanceof Uint8Array?h=o:o.buffer instanceof ArrayBuffer?h=new Uint8Array(o.buffer):h=new Uint8Array(o),O(h,this.encoding)},s.TextEncoder=s.TextEncoder||d,s.TextDecoder=s.TextDecoder||K})(typeof window<"u"?window:typeof globalThis<"u"?globalThis:tt)});var st=w((Ne,it)=>{et();it.exports={encode:s=>new TextEncoder().encode(s),decode:s=>new TextDecoder().decode(s)}});var nt=w((Ue,rt)=>{rt.exports=Ht;function Ht(s,t,e){var i;return function(){if(!t)return s.apply(this,arguments);var r=this,n=arguments,a=e&&!i;if(clearTimeout(i),i=setTimeout(function(){if(i=null,!a)return s.apply(r,n)},t),a)return s.apply(this,arguments)}}});var U=w((ze,lt)=>{function at(s){if(s.length===0)return".";let t=ot(s);return t=t.reduce(Vt,[]),W(...t)}function Xt(...s){let t="";for(let e of s)e.startsWith("/")?t=e:t=at(W(t,e));return t}function W(...s){if(s.length===0)return"";let t=s.join("/");return t=t.replace(/\/{2,}/g,"/"),t}function ot(s){if(s.length===0)return[];if(s==="/")return["/"];let t=s.split("/");return t[t.length-1]===""&&t.pop(),s[0]==="/"?t[0]="/":t[0]!=="."&&t.unshift("."),t}function Yt(s){let t=s.lastIndexOf("/");if(t===-1)throw new Error(`Cannot get dirname of "${s}"`);return t===0?"/":s.slice(0,t)}function Gt(s){if(s==="/")throw new Error(`Cannot get basename of "${s}"`);let t=s.lastIndexOf("/");return t===-1?s:s.slice(t+1)}function Vt(s,t){if(s.length===0)return s.push(t),s;if(t===".")return s;if(t===".."){if(s.length===1){if(s[0]==="/")throw new Error("Unable to normalize path - traverses above root directory");if(s[0]===".")return s.push(t),s}return s[s.length-1]===".."?(s.push(".."),s):(s.pop(),s)}return s.push(t),s}lt.exports={join:W,normalize:at,split:ot,basename:Gt,dirname:Yt,resolve:Xt}});var $=w((Ce,ct)=>{function D(s){return class extends Error{constructor(...t){super(...t),this.code=s,this.message?this.message=s+": "+this.message:this.message=s}}}var Kt=D("EEXIST"),Jt=D("ENOENT"),Qt=D("ENOTDIR"),Zt=D("ENOTEMPTY"),te=D("ETIMEDOUT"),ee=D("EISDIR");ct.exports={EEXIST:Kt,ENOENT:Jt,ENOTDIR:Qt,ENOTEMPTY:Zt,ETIMEDOUT:te,EISDIR:ee}});var ft=w((We,dt)=>{var y=U(),{EEXIST:ht,ENOENT:ie,ENOTDIR:ut,ENOTEMPTY:se,EISDIR:re}=$(),p=0;dt.exports=class{constructor(){}_makeRoot(t=new Map){return t.set(p,{mode:511,type:"dir",size:0,ino:0,mtimeMs:Date.now()}),t}activate(t=null){t===null?this._root=new Map([["/",this._makeRoot()]]):typeof t=="string"?this._root=new Map([["/",this._makeRoot(this.parse(t))]]):this._root=t}get activated(){return!!this._root}deactivate(){this._root=void 0}size(){return this._countInodes(this._root.get("/"))-1}_countInodes(t){let e=1;for(let[i,r]of t)i!==p&&(e+=this._countInodes(r));return e}autoinc(){return this._maxInode(this._root.get("/"))+1}_maxInode(t){let e=t.get(p).ino;for(let[i,r]of t)i!==p&&(e=Math.max(e,this._maxInode(r)));return e}print(t=this._root.get("/")){let e="",i=(r,n)=>{for(let[a,c]of r){if(a===0)continue;let _=c.get(p),d=_.mode.toString(8);e+=`${" ".repeat(n)}${a} ${d}`,_.type==="file"?e+=` ${_.size} ${_.mtimeMs}
|
|
2
|
+
`:(e+=`
|
|
3
|
+
`,i(c,n+1))}};return i(t,0),e}parse(t){let e=0;function i(c){let _=++e,d=c.length===1?"dir":"file",[E,S,b]=c;return E=parseInt(E,8),S=S?parseInt(S):0,b=b?parseInt(b):Date.now(),new Map([[p,{mode:E,type:d,size:S,mtimeMs:b,ino:_}]])}let r=t.trim().split(`
|
|
4
|
+
`),n=this._makeRoot(),a=[{indent:-1,node:n},{indent:0,node:null}];for(let c of r){let d=c.match(/^\t*/)[0].length;c=c.slice(d);let[E,...S]=c.split(" "),b=i(S);if(d<=a[a.length-1].indent)for(;d<=a[a.length-1].indent;)a.pop();a.push({indent:d,node:b}),a[a.length-2].node.set(E,b)}return n}_lookup(t,e=!0){let i=this._root,r="/",n=y.split(t);for(let a=0;a<n.length;++a){let c=n[a];if(i=i.get(c),!i)throw new ie(t);if(e||a<n.length-1){let _=i.get(p);if(_.type==="symlink"){let d=y.resolve(r,_.target);i=this._lookup(d)}r?r=y.join(r,c):r=c}}return i}mkdir(t,{mode:e}){if(t==="/")throw new ht;let i=this._lookup(y.dirname(t)),r=y.basename(t);if(i.has(r))throw new ht;let n=new Map,a={mode:e,type:"dir",size:0,mtimeMs:Date.now(),ino:this.autoinc()};n.set(p,a),i.set(r,n)}rmdir(t){let e=this._lookup(t);if(e.get(p).type!=="dir")throw new ut;if(e.size>1)throw new se;let i=this._lookup(y.dirname(t)),r=y.basename(t);i.delete(r)}readdir(t){let e=this._lookup(t);if(e.get(p).type!=="dir")throw new ut;return[...e.keys()].filter(i=>typeof i=="string")}writeStat(t,e,{mode:i}){let r,n;try{n=this.stat(t)}catch{}if(n!==void 0){if(n.type==="dir")throw new re;i==null&&(i=n.mode),r=n.ino}i==null&&(i=438),r==null&&(r=this.autoinc());let a=this._lookup(y.dirname(t)),c=y.basename(t),_={mode:i,type:"file",size:e,mtimeMs:Date.now(),ino:r},d=new Map;return d.set(p,_),a.set(c,d),_}unlink(t){let e=this._lookup(y.dirname(t)),i=y.basename(t);e.delete(i)}rename(t,e){let i=y.basename(e),r=this._lookup(t);this._lookup(y.dirname(e)).set(i,r),this.unlink(t)}stat(t){return this._lookup(t).get(p)}lstat(t){return this._lookup(t,!1).get(p)}readlink(t){return this._lookup(t,!1).get(p).target}symlink(t,e){let i,r;try{let d=this.stat(e);r===null&&(r=d.mode),i=d.ino}catch{}r==null&&(r=40960),i==null&&(i=this.autoinc());let n=this._lookup(y.dirname(e)),a=y.basename(e),c={mode:r,type:"symlink",target:t,size:0,mtimeMs:Date.now(),ino:i},_=new Map;return _.set(p,c),n.set(a,_),c}_du(t){let e=0;for(let[i,r]of t.entries())i===p?e+=r.size:e+=this._du(r);return e}du(t){let e=this._lookup(t);return this._du(e)}}});var X=w(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});var z=class{constructor(t="keyval-store",e="keyval"){this.storeName=e,this._dbName=t,this._storeName=e,this._init()}_init(){this._dbp||(this._dbp=new Promise((t,e)=>{let i=indexedDB.open(this._dbName);i.onerror=()=>e(i.error),i.onsuccess=()=>t(i.result),i.onupgradeneeded=()=>{i.result.createObjectStore(this._storeName)}}))}_withIDBStore(t,e){return this._init(),this._dbp.then(i=>new Promise((r,n)=>{let a=i.transaction(this.storeName,t);a.oncomplete=()=>r(),a.onabort=a.onerror=()=>n(a.error),e(a.objectStore(this.storeName))}))}_close(){return this._init(),this._dbp.then(t=>{t.close(),this._dbp=void 0})}},H;function P(){return H||(H=new z),H}function ne(s,t=P()){let e;return t._withIDBStore("readwrite",i=>{e=i.get(s)}).then(()=>e.result)}function ae(s,t,e=P()){return e._withIDBStore("readwrite",i=>{i.put(t,s)})}function oe(s,t,e=P()){return e._withIDBStore("readwrite",i=>{let r=i.get(s);r.onsuccess=()=>{i.put(t(r.result),s)}})}function le(s,t=P()){return t._withIDBStore("readwrite",e=>{e.delete(s)})}function ce(s=P()){return s._withIDBStore("readwrite",t=>{t.clear()})}function he(s=P()){let t=[];return s._withIDBStore("readwrite",e=>{(e.openKeyCursor||e.openCursor).call(e).onsuccess=function(){this.result&&(t.push(this.result.key),this.result.continue())}}).then(()=>t)}function ue(s=P()){return s._close()}g.Store=z;g.get=ne;g.set=ae;g.update=oe;g.del=le;g.clear=ce;g.keys=he;g.close=ue});var _t=w((Xe,mt)=>{var F=X();mt.exports=class{constructor(t,e){this._database=t,this._storename=e,this._store=new F.Store(this._database,this._storename)}saveSuperblock(t){return F.set("!root",t,this._store)}loadSuperblock(){return F.get("!root",this._store)}readFile(t){return F.get(t,this._store)}writeFile(t,e){return F.set(t,e,this._store)}unlink(t){return F.del(t,this._store)}wipe(){return F.clear(this._store)}close(){return F.close(this._store)}}});var pt=w((Ge,wt)=>{wt.exports=class{constructor(t){this._url=t}loadSuperblock(){return fetch(this._url+"/.superblock.txt").then(t=>t.ok?t.text():null)}async readFile(t){let e=await fetch(this._url+t);if(e.status===200)return e.arrayBuffer();throw new Error("ENOENT")}async sizeFile(t){let e=await fetch(this._url+t,{method:"HEAD"});if(e.status===200)return e.headers.get("content-length");throw new Error("ENOENT")}}});var kt=w((Ke,yt)=>{var I=X(),de=s=>new Promise(t=>setTimeout(t,s));yt.exports=class{constructor(t,e){this._id=Math.random(),this._database=t,this._storename=e,this._store=new I.Store(this._database,this._storename),this._lock=null}async has({margin:t=2e3}={}){if(this._lock&&this._lock.holder===this._id){let e=Date.now();return this._lock.expires>e+t?!0:await this.renew()}else return!1}async renew({ttl:t=5e3}={}){let e;return await I.update("lock",i=>{let n=Date.now()+t;return e=i&&i.holder===this._id,this._lock=e?{holder:this._id,expires:n}:i,this._lock},this._store),e}async acquire({ttl:t=5e3}={}){let e,i,r;if(await I.update("lock",n=>{let a=Date.now(),c=a+t;return i=n&&n.expires<a,e=n===void 0||i,r=n&&n.holder===this._id,this._lock=e?{holder:this._id,expires:c}:n,this._lock},this._store),r)throw new Error("Mutex double-locked");return e}async wait({interval:t=100,limit:e=6e3,ttl:i}={}){for(;e--;){if(await this.acquire({ttl:i}))return!0;await de(t)}throw new Error("Mutex timeout")}async release({force:t=!1}={}){let e,i,r;if(await I.update("lock",n=>(e=t||n&&n.holder===this._id,i=n===void 0,r=n&&n.holder!==this._id,this._lock=e?void 0:n,this._lock),this._store),await I.close(this._store),!e&&!t){if(i)throw new Error("Mutex double-freed");if(r)throw new Error("Mutex lost ownership")}return e}}});var vt=w((Qe,gt)=>{gt.exports=class{constructor(t){this._id=Math.random(),this._database=t,this._has=!1,this._release=null}async has(){return this._has}async acquire(){return new Promise(t=>{navigator.locks.request(this._database+"_lock",{ifAvailable:!0},e=>(this._has=!!e,t(!!e),new Promise(i=>{this._release=i})))})}async wait({timeout:t=6e5}={}){return new Promise((e,i)=>{let r=new AbortController;setTimeout(()=>{r.abort(),i(new Error("Mutex timeout"))},t),navigator.locks.request(this._database+"_lock",{signal:r.signal},n=>(this._has=!!n,e(!!n),new Promise(a=>{this._release=a})))})}async release({force:t=!1}={}){this._has=!1,this._release?this._release():t&&navigator.locks.request(this._database+"_lock",{steal:!0},e=>!0)}}});var Et=w((ti,xt)=>{var{encode:fe,decode:bt}=st(),me=nt(),_e=ft(),{ENOENT:we,ENOTEMPTY:pe,ETIMEDOUT:ye}=$(),ke=_t(),ge=pt(),ve=kt(),be=vt(),B=U();xt.exports=class{constructor(){this.saveSuperblock=me(()=>{this.flush()},500)}async init(t,{wipe:e,url:i,urlauto:r,fileDbName:n=t,db:a=null,fileStoreName:c=t+"_files",lockDbName:_=t+"_lock",lockStoreName:d=t+"_lock"}={}){this._name=t,this._idb=a||new ke(n,c),this._mutex=navigator.locks?new be(t):new ve(_,d),this._cache=new _e(t),this._opts={wipe:e,url:i},this._needsWipe=!!e,i&&(this._http=new ge(i),this._urlauto=!!r)}async activate(){if(this._cache.activated)return;this._needsWipe&&(this._needsWipe=!1,await this._idb.wipe(),await this._mutex.release({force:!0})),await this._mutex.has()||await this._mutex.wait();let t=await this._idb.loadSuperblock();if(t)this._cache.activate(t);else if(this._http){let e=await this._http.loadSuperblock();this._cache.activate(e),await this._saveSuperblock()}else this._cache.activate();if(!await this._mutex.has())throw new ye}async deactivate(){await this._mutex.has()&&await this._saveSuperblock(),this._cache.deactivate();try{await this._mutex.release()}catch(t){console.log(t)}await this._idb.close()}async _saveSuperblock(){this._cache.activated&&(this._lastSavedAt=Date.now(),await this._idb.saveSuperblock(this._cache._root))}_writeStat(t,e,i){let r=B.split(B.dirname(t)),n=r.shift();for(let a of r){n=B.join(n,a);try{this._cache.mkdir(n,{mode:511})}catch{}}return this._cache.writeStat(t,e,i)}async readFile(t,e){let i=typeof e=="string"?e:e&&e.encoding;if(i&&i!=="utf8")throw new Error('Only "utf8" encoding is supported in readFile');let r=null,n=null;try{n=this._cache.stat(t),r=await this._idb.readFile(n.ino)}catch(a){if(!this._urlauto)throw a}if(!r&&this._http){let a=this._cache.lstat(t);for(;a.type==="symlink";)t=B.resolve(B.dirname(t),a.target),a=this._cache.lstat(t);r=await this._http.readFile(t)}if(r&&((!n||n.size!=r.byteLength)&&(n=await this._writeStat(t,r.byteLength,{mode:n?n.mode:438}),this.saveSuperblock()),i==="utf8"?r=bt(r):r.toString=()=>bt(r)),!n)throw new we(t);return r}async writeFile(t,e,i){let{mode:r,encoding:n="utf8"}=i;if(typeof e=="string"){if(n!=="utf8")throw new Error('Only "utf8" encoding is supported in writeFile');e=fe(e)}let a=await this._cache.writeStat(t,e.byteLength,{mode:r});await this._idb.writeFile(a.ino,e)}async unlink(t,e){let i=this._cache.lstat(t);this._cache.unlink(t),i.type!=="symlink"&&await this._idb.unlink(i.ino)}readdir(t,e){return this._cache.readdir(t)}mkdir(t,e){let{mode:i=511}=e;this._cache.mkdir(t,{mode:i})}rmdir(t,e){if(t==="/")throw new pe;this._cache.rmdir(t)}rename(t,e){this._cache.rename(t,e)}stat(t,e){return this._cache.stat(t)}lstat(t,e){return this._cache.lstat(t)}readlink(t,e){return this._cache.readlink(t)}symlink(t,e){this._cache.symlink(t,e)}async backFile(t,e){let i=await this._http.sizeFile(t);await this._writeStat(t,i,e)}du(t){return this._cache.du(t)}flush(){return this._saveSuperblock()}}});var Tt=w((ii,St)=>{St.exports=class{constructor(t){this.type=t.type,this.mode=t.mode,this.size=t.size,this.ino=t.ino,this.mtimeMs=t.mtimeMs,this.ctimeMs=t.ctimeMs||t.mtimeMs,this.uid=1,this.gid=1,this.dev=1}isFile(){return this.type==="file"}isDirectory(){return this.type==="dir"}isSymbolicLink(){return this.type==="symlink"}}});var Dt=w((ri,Mt)=>{var xe=Et(),Ft=Tt(),C=U();function v(s,t,...e){return s=C.normalize(s),(typeof t>"u"||typeof t=="function")&&(t={}),typeof t=="string"&&(t={encoding:t}),[s,t,...e]}function Ee(s,t,e,...i){return s=C.normalize(s),(typeof e>"u"||typeof e=="function")&&(e={}),typeof e=="string"&&(e={encoding:e}),[s,t,e,...i]}function Pt(s,t,...e){return[C.normalize(s),C.normalize(t),...e]}Mt.exports=class{constructor(t,e={}){this.init=this.init.bind(this),this.readFile=this._wrap(this.readFile,v,!1),this.writeFile=this._wrap(this.writeFile,Ee,!0),this.unlink=this._wrap(this.unlink,v,!0),this.readdir=this._wrap(this.readdir,v,!1),this.mkdir=this._wrap(this.mkdir,v,!0),this.rmdir=this._wrap(this.rmdir,v,!0),this.rename=this._wrap(this.rename,Pt,!0),this.stat=this._wrap(this.stat,v,!1),this.lstat=this._wrap(this.lstat,v,!1),this.readlink=this._wrap(this.readlink,v,!1),this.symlink=this._wrap(this.symlink,Pt,!0),this.backFile=this._wrap(this.backFile,v,!0),this.du=this._wrap(this.du,v,!1),this._deactivationPromise=null,this._deactivationTimeout=null,this._activationPromise=null,this._operations=new Set,t&&this.init(t,e)}async init(...t){return this._initPromiseResolve&&await this._initPromise,this._initPromise=this._init(...t),this._initPromise}async _init(t,e={}){await this._gracefulShutdown(),this._activationPromise&&await this._deactivate(),this._backend&&this._backend.destroy&&await this._backend.destroy(),this._backend=e.backend||new xe,this._backend.init&&await this._backend.init(t,e),this._initPromiseResolve&&(this._initPromiseResolve(),this._initPromiseResolve=null),e.defer||this.stat("/")}async _gracefulShutdown(){this._operations.size>0&&(this._isShuttingDown=!0,await new Promise(t=>this._gracefulShutdownResolve=t),this._isShuttingDown=!1,this._gracefulShutdownResolve=null)}_wrap(t,e,i){return async(...r)=>{r=e(...r);let n={name:t.name,args:r};this._operations.add(n);try{return await this._activate(),await t.apply(this,r)}finally{this._operations.delete(n),i&&this._backend.saveSuperblock(),this._operations.size===0&&(this._deactivationTimeout||clearTimeout(this._deactivationTimeout),this._deactivationTimeout=setTimeout(this._deactivate.bind(this),500))}}}async _activate(){this._initPromise||console.warn(new Error(`Attempted to use LightningFS ${this._name} before it was initialized.`)),await this._initPromise,this._deactivationTimeout&&(clearTimeout(this._deactivationTimeout),this._deactivationTimeout=null),this._deactivationPromise&&await this._deactivationPromise,this._deactivationPromise=null,this._activationPromise||(this._activationPromise=this._backend.activate?this._backend.activate():Promise.resolve()),await this._activationPromise}async _deactivate(){return this._activationPromise&&await this._activationPromise,this._deactivationPromise||(this._deactivationPromise=this._backend.deactivate?this._backend.deactivate():Promise.resolve()),this._activationPromise=null,this._gracefulShutdownResolve&&this._gracefulShutdownResolve(),this._deactivationPromise}async readFile(t,e){return this._backend.readFile(t,e)}async writeFile(t,e,i){return await this._backend.writeFile(t,e,i),null}async unlink(t,e){return await this._backend.unlink(t,e),null}async readdir(t,e){return this._backend.readdir(t,e)}async mkdir(t,e){return await this._backend.mkdir(t,e),null}async rmdir(t,e){return await this._backend.rmdir(t,e),null}async rename(t,e){return await this._backend.rename(t,e),null}async stat(t,e){let i=await this._backend.stat(t,e);return new Ft(i)}async lstat(t,e){let i=await this._backend.lstat(t,e);return new Ft(i)}async readlink(t,e){return this._backend.readlink(t,e)}async symlink(t,e){return await this._backend.symlink(t,e),null}async backFile(t,e){return await this._backend.backFile(t,e),null}async du(t){return this._backend.du(t)}async flush(){return this._backend.flush()}}});var Rt=w((ai,jt)=>{var Se=Z(),Te=Dt();function k(s,t){return typeof s=="function"&&(t=s),t=Se(t),[(...i)=>t(null,...i),t]}jt.exports=class{constructor(...t){this.promises=new Te(...t),this.init=this.init.bind(this),this.readFile=this.readFile.bind(this),this.writeFile=this.writeFile.bind(this),this.unlink=this.unlink.bind(this),this.readdir=this.readdir.bind(this),this.mkdir=this.mkdir.bind(this),this.rmdir=this.rmdir.bind(this),this.rename=this.rename.bind(this),this.stat=this.stat.bind(this),this.lstat=this.lstat.bind(this),this.readlink=this.readlink.bind(this),this.symlink=this.symlink.bind(this),this.backFile=this.backFile.bind(this),this.du=this.du.bind(this),this.flush=this.flush.bind(this)}init(t,e){return this.promises.init(t,e)}readFile(t,e,i){let[r,n]=k(e,i);this.promises.readFile(t,e).then(r).catch(n)}writeFile(t,e,i,r){let[n,a]=k(i,r);this.promises.writeFile(t,e,i).then(n).catch(a)}unlink(t,e,i){let[r,n]=k(e,i);this.promises.unlink(t,e).then(r).catch(n)}readdir(t,e,i){let[r,n]=k(e,i);this.promises.readdir(t,e).then(r).catch(n)}mkdir(t,e,i){let[r,n]=k(e,i);this.promises.mkdir(t,e).then(r).catch(n)}rmdir(t,e,i){let[r,n]=k(e,i);this.promises.rmdir(t,e).then(r).catch(n)}rename(t,e,i){let[r,n]=k(i);this.promises.rename(t,e).then(r).catch(n)}stat(t,e,i){let[r,n]=k(e,i);this.promises.stat(t).then(r).catch(n)}lstat(t,e,i){let[r,n]=k(e,i);this.promises.lstat(t).then(r).catch(n)}readlink(t,e,i){let[r,n]=k(e,i);this.promises.readlink(t).then(r).catch(n)}symlink(t,e,i){let[r,n]=k(i);this.promises.symlink(t,e).then(r).catch(n)}backFile(t,e,i){let[r,n]=k(e,i);this.promises.backFile(t,e).then(r).catch(n)}du(t,e){let[i,r]=k(e);this.promises.du(t).then(i).catch(r)}flush(t){let[e,i]=k(t);this.promises.flush().then(e).catch(i)}}});var Bt=Wt(Rt(),1),Fe="slicc-fs",Y=null,L=null;function Pe(){return Y||(Y=new Bt.default(Fe).promises),Y}function Me(s){let t=s.split(".").pop()?.toLowerCase()??"";return{html:"text/html",htm:"text/html",css:"text/css",js:"application/javascript",mjs:"application/javascript",json:"application/json",svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",ico:"image/x-icon",avif:"image/avif",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",mp3:"audio/mpeg",mp4:"video/mp4",webm:"video/webm",pdf:"application/pdf",txt:"text/plain",xml:"application/xml",wasm:"application/wasm"}[t]??"application/octet-stream"}var De=new Set(["text/html","text/css","text/plain","application/javascript","application/json","image/svg+xml","application/xml"]),j=self,G=null;function je(){return G||(G=new BroadcastChannel("preview-vfs")),G}async function Re(s,t){let e=je(),i=`pvfs-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise(r=>{let n=setTimeout(()=>{e.removeEventListener("message",a),r(null)},5e3);function a(c){if(!(c.data?.type!=="preview-vfs-response"||c.data.id!==i)){if(e.removeEventListener("message",a),clearTimeout(n),c.data.error){r(null);return}r(c.data.content??null)}}e.addEventListener("message",a),e.postMessage({type:"preview-vfs-read",id:i,path:s,asText:t})})}async function It(s){let t=Me(s),e=De.has(t);try{let r=Pe();try{(await r.stat(s)).isDirectory()&&(s=s.endsWith("/")?s+"index.html":s+"/index.html")}catch{}let n=e?await r.readFile(s,{encoding:"utf8"}):new Uint8Array(await r.readFile(s));return new Response(n,{status:200,headers:{"Content-Type":t,"Cache-Control":"no-cache"}})}catch(r){let n=r instanceof Error?r.message:String(r);if(!n.includes("ENOENT"))return console.error("[preview-sw] Error serving",s,n),new Response(`Preview error: ${n}`,{status:500,headers:{"Content-Type":"text/plain"}})}let i=await Re(s,e);if(i!==null){let r=typeof i=="string"?i:new Uint8Array(i);return new Response(r,{status:200,headers:{"Content-Type":t,"Cache-Control":"no-cache"}})}return new Response("Not found",{status:404,headers:{"Content-Type":"text/plain"}})}j.addEventListener("install",()=>{j.skipWaiting()});j.addEventListener("activate",s=>{s.waitUntil(j.clients.claim())});function Ie(s){return s.startsWith("/@")||s.startsWith("/__")||s.startsWith("/api/")||s.startsWith("/src/")||s.startsWith("/node_modules/")||s==="/"||s==="/index.html"}j.addEventListener("fetch",s=>{let t=new URL(s.request.url);if(t.origin===j.location.origin){if(t.pathname.startsWith("/preview/")){let e=t.searchParams.get("projectRoot");e&&(L=e,console.log("[preview-sw] Project root:",L));let i=t.pathname.slice(8);s.respondWith(It(i));return}if(L&&!Ie(t.pathname)){let e=L+t.pathname;s.respondWith(It(e))}}});})();
|
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sliccy",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Browser-based coding agent with thin CLI server",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/cli/index.js",
|
|
8
|
+
"types": "./dist/cli/index.d.ts",
|
|
9
|
+
"bin": {
|
|
10
|
+
"slicc": "dist/cli/index.js"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/cli",
|
|
14
|
+
"dist/ui",
|
|
15
|
+
"dist/tray-url-shared*"
|
|
16
|
+
],
|
|
17
|
+
"publishConfig": {
|
|
18
|
+
"registry": "https://registry.npmjs.org/"
|
|
19
|
+
},
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=22"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"dev": "vite",
|
|
25
|
+
"build": "npm run build:ui && npm run build:cli",
|
|
26
|
+
"build:ui": "vite build",
|
|
27
|
+
"build:cli": "node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('dist/cli', { recursive: true, force: true });\" && tsc -p tsconfig.cli.json",
|
|
28
|
+
"start": "node dist/cli/index.js",
|
|
29
|
+
"start:electron": "node dist/cli/index.js --electron",
|
|
30
|
+
"typecheck": "tsc --noEmit -p tsconfig.cli.json && tsc --noEmit -p tsconfig.json",
|
|
31
|
+
"dev:full": "npx tsx src/cli/index.ts --dev",
|
|
32
|
+
"dev:electron": "npx tsx src/cli/index.ts --dev --electron",
|
|
33
|
+
"qa:setup": "npm run build:extension && npx tsx src/cli/qa-setup.ts",
|
|
34
|
+
"qa:leader": "npm run dev:full -- --lead https://slicc-tray-hub-staging.minivelos.workers.dev --profile=leader",
|
|
35
|
+
"qa:follower": "npm run dev:full -- --profile=follower",
|
|
36
|
+
"qa:extension": "npm run build:extension && npm run dev:full -- --profile=extension",
|
|
37
|
+
"build:extension": "vite build --config vite.config.extension.ts",
|
|
38
|
+
"package:release": "node dist/cli/release-package.js",
|
|
39
|
+
"test": "vitest run",
|
|
40
|
+
"test:watch": "vitest"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@adobe/helix-rum-js": "^2.14.2",
|
|
44
|
+
"@cantoo/pdf-lib": "^2.6.1",
|
|
45
|
+
"@imagemagick/magick-wasm": "^0.0.38",
|
|
46
|
+
"@isomorphic-git/lightning-fs": "4.6.2",
|
|
47
|
+
"@mariozechner/pi-agent-core": "^0.55.4",
|
|
48
|
+
"@mariozechner/pi-ai": "^0.55.4",
|
|
49
|
+
"@mariozechner/pi-coding-agent": "^0.57.1",
|
|
50
|
+
"@xterm/addon-fit": "^0.11.0",
|
|
51
|
+
"@xterm/xterm": "^6.0.0",
|
|
52
|
+
"buffer": "6.0.3",
|
|
53
|
+
"express": "^4.21.2",
|
|
54
|
+
"fflate": "^0.8.2",
|
|
55
|
+
"isomorphic-dompurify": "^3.1.0",
|
|
56
|
+
"isomorphic-git": "1.37.2",
|
|
57
|
+
"just-bash": "2.11.7",
|
|
58
|
+
"marked": "^17.0.4",
|
|
59
|
+
"unpdf": "^1.4.0",
|
|
60
|
+
"ws": "^8.18.0"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@semantic-release/commit-analyzer": "13.0.1",
|
|
64
|
+
"@semantic-release/exec": "7.1.0",
|
|
65
|
+
"@semantic-release/github": "12.0.6",
|
|
66
|
+
"@semantic-release/npm": "13.1.5",
|
|
67
|
+
"@semantic-release/release-notes-generator": "14.1.0",
|
|
68
|
+
"@types/express": "^5.0.0",
|
|
69
|
+
"@types/jsdom": "^28.0.0",
|
|
70
|
+
"@types/node": "^22.13.0",
|
|
71
|
+
"@types/ws": "^8.5.14",
|
|
72
|
+
"electron": "41.0.0",
|
|
73
|
+
"fake-indexeddb": "6.2.5",
|
|
74
|
+
"jsdom": "^28.1.0",
|
|
75
|
+
"puppeteer-core": "^24.39.1",
|
|
76
|
+
"semantic-release": "25.0.3",
|
|
77
|
+
"typescript": "^5.7.3",
|
|
78
|
+
"vite": "^6.1.0",
|
|
79
|
+
"vitest": "4.0.18"
|
|
80
|
+
}
|
|
81
|
+
}
|