var T=Object.defineProperty;var p=(e,t)=>{for(var o in t)T(e,o,{get:t[o],enumerable:!0})};var u=e=>{throw new Error("Not initialized yet")},g=typeof window>"u"&&typeof globalThis.WebSocketPair>"u";typeof Deno>"u"&&(self.Deno={args:[],build:{arch:"x86_64"},env:{get(){}}});var f=new Map,d=0;g&&(globalThis.syscall=async(e,...t)=>await new Promise((o,n)=>{d++,f.set(d,{resolve:o,reject:n}),u({type:"sys",id:d,name:e,args:t})}));function P(e,t,o){g&&(u=o,self.addEventListener("message",n=>{(async()=>{let i=n.data;switch(i.type){case"inv":{let m=e[i.name];if(!m)throw new Error(`Function not loaded: ${i.name}`);try{let c=await Promise.resolve(m(...i.args||[]));u({type:"invr",id:i.id,result:c})}catch(c){console.error("An exception was thrown as a result of invoking function",i.name,"error:",c.message),u({type:"invr",id:i.id,error:c.message})}}break;case"sysr":{let m=i.id,c=f.get(m);if(!c)throw Error("Invalid request id");f.delete(m),i.error?c.reject(new Error(i.error)):c.resolve(i.result)}break}})().catch(console.error)}),u({type:"manifest",manifest:t}))}function k(e){let t=atob(e),o=t.length,n=new Uint8Array(o);for(let i=0;i0?x(o):void 0;t={method:e.method,headers:Object.fromEntries(e.headers.entries()),base64Body:n},e=e.url}return syscall("sandboxFetch.fetch",e,t)}globalThis.nativeFetch=globalThis.fetch;function R(){globalThis.fetch=async function(e,t){let o=t&&t.body?x(new Uint8Array(await new Response(t.body).arrayBuffer())):void 0,n=await U(e,t&&{method:t.method,headers:t.headers,base64Body:o});return new Response(n.base64Body?k(n.base64Body):null,{status:n.status,headers:n.headers})}}g&&R();var s={};p(s,{confirm:()=>ae,copyToClipboard:()=>xe,deleteLine:()=>he,dispatch:()=>ie,downloadFile:()=>I,filterBox:()=>J,flashNotification:()=>z,fold:()=>ue,foldAll:()=>de,getCurrentPage:()=>E,getCursor:()=>L,getSelection:()=>N,getText:()=>D,getUiOption:()=>me,goHistory:()=>Y,hidePanel:()=>Z,insertAtCursor:()=>ne,insertAtPos:()=>ee,moveCursor:()=>re,moveCursorToLine:()=>oe,navigate:()=>j,newWindow:()=>V,openCommandPalette:()=>B,openPageNavigator:()=>W,openSearchPanel:()=>Pe,openUrl:()=>Q,prompt:()=>se,redo:()=>ye,reloadConfigAndCommands:()=>$,reloadPage:()=>O,reloadUI:()=>_,replaceRange:()=>te,save:()=>q,setSelection:()=>G,setText:()=>K,setUiOption:()=>ce,showPanel:()=>X,toggleFold:()=>pe,undo:()=>ge,unfold:()=>le,unfoldAll:()=>fe,uploadFile:()=>H,vimEx:()=>ve});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function r(e,...t){return globalThis.syscall(e,...t)}function E(){return r("editor.getCurrentPage")}function D(){return r("editor.getText")}function K(e,t=!1){return r("editor.setText",e,t)}function L(){return r("editor.getCursor")}function N(){return r("editor.getSelection")}function G(e,t){return r("editor.setSelection",e,t)}function q(){return r("editor.save")}function j(e,t=!1,o=!1){return r("editor.navigate",e,t,o)}function W(e="page"){return r("editor.openPageNavigator",e)}function B(){return r("editor.openCommandPalette")}function O(){return r("editor.reloadPage")}function _(){return r("editor.reloadUI")}function $(){return r("editor.reloadConfigAndCommands")}function Q(e,t=!1){return r("editor.openUrl",e,t)}function V(){return r("editor.newWindow")}function Y(e){return r("editor.goHistory",e)}function I(e,t){return r("editor.downloadFile",e,t)}function H(e,t){return r("editor.uploadFile",e,t)}function z(e,t="info"){return r("editor.flashNotification",e,t)}function J(e,t,o="",n=""){return r("editor.filterBox",e,t,o,n)}function X(e,t,o,n=""){return r("editor.showPanel",e,t,o,n)}function Z(e){return r("editor.hidePanel",e)}function ee(e,t){return r("editor.insertAtPos",e,t)}function te(e,t,o){return r("editor.replaceRange",e,t,o)}function re(e,t=!1){return r("editor.moveCursor",e,t)}function oe(e,t=1,o=!1){return r("editor.moveCursorToLine",e,t,o)}function ne(e){return r("editor.insertAtCursor",e)}function ie(e){return r("editor.dispatch",e)}function se(e,t=""){return r("editor.prompt",e,t)}function ae(e){return r("editor.confirm",e)}function me(e){return r("editor.getUiOption",e)}function ce(e,t){return r("editor.setUiOption",e,t)}function ue(){return r("editor.fold")}function le(){return r("editor.unfold")}function pe(){return r("editor.toggleFold")}function de(){return r("editor.foldAll")}function fe(){return r("editor.unfoldAll")}function ge(){return r("editor.undo")}function ye(){return r("editor.redo")}function Pe(){return r("editor.openSearchPanel")}function xe(e){return r("editor.copyToClipboard",e)}function he(){return r("editor.deleteLine")}function ve(e){return r("editor.vimEx",e)}var l={};p(l,{applyAttributeExtractors:()=>Te,getEnv:()=>Ee,getMode:()=>De,getSpaceConfig:()=>ke,getVersion:()=>Ke,invokeCommand:()=>Ae,invokeFunction:()=>Ce,invokeSpaceFunction:()=>Fe,listCommands:()=>Se,listSyscalls:()=>Me,reloadConfig:()=>Re,reloadPlugs:()=>Ue});function Ce(e,...t){return r("system.invokeFunction",e,...t)}function Ae(e,t){return r("system.invokeCommand",e,t)}function Se(){return r("system.listCommands")}function Me(){return r("system.listSyscalls")}function Fe(e,...t){return r("system.invokeSpaceFunction",e,...t)}function Te(e,t,o){return r("system.applyAttributeExtractors",e,t,o)}async function ke(e,t){return await r("system.getSpaceConfig",e)??t}function Ue(){return r("system.reloadPlugs")}function Re(){return r("system.reloadConfig")}function Ee(){return r("system.getEnv")}function De(){return r("system.getMode")}function Ke(){return r("system.getVersion")}var a={};p(a,{run:()=>_e});function _e(e,t){return r("shell.run",e,t)}async function y(e){e||(e="Snapshot"),console.log("Snapshotting the current space to git with commit message",e);let{code:t}=await a.run("git",["add","./*"]);console.log("Git add code",t);try{await a.run("git",["commit","-a","-m",e])}catch{}console.log("Done!")}async function h(){let e=await s.prompt("Revision name:");e||(e="Snapshot"),console.log("Revision name",e),await y(e),await s.flashNotification("Done!")}async function v(){await s.flashNotification("Syncing with git"),await b(),await s.flashNotification("Git sync complete!")}async function b(){console.log("Going to sync with git"),await y(),console.log("Then pulling from remote"),await a.run("git",["pull"]),console.log("And then pushing to remote"),await a.run("git",["push"]),console.log("Done!")}async function w(e,t,o){let n=e.join("/")+".git";await s.flashNotification("Now going to clone the project, this may take some time."),await a.run("mkdir",["-p","_checkout"]),await a.run("git",["clone",n,"_checkout"]),await a.run("bash",["-c","mv -f _checkout/{.,}* . 2> /dev/null; true"]),await a.run("rm",["-rf","_checkout"]),await a.run("git",["config","user.name",t]),await a.run("git",["config","user.email",o]),await s.flashNotification("Done. Now just wait for sync to kick in to get all the content.")}async function C(){let e=await s.prompt("Github project URL:");if(!e)return;let t=await s.prompt("Github token:");if(!t)return;let o=await s.prompt("Your name:");if(!o)return;let n=await s.prompt("Your email:");if(!n)return;let i=e.split("/");i[2]=`${t}@${i[2]}`,await w(i,o,n)}async function A(){let e=await s.prompt("Gitlab project URL:");if(!e)return;let t=await s.prompt("Gitlab Username:");if(!t)return;let o=await s.prompt("Gitlab token:");if(!o)return;let n=await s.prompt("Your name:");if(!n)return;let i=await s.prompt("Your email:");if(!i)return;let m=e.split("/");m[2]=`${t}:${o}@${m[2]}`,await w(m,n,i)}async function S(){let e=await l.getSpaceConfig("git",{});e.autoCommitMinutes&&(console.log("Triggered auto commit with config",e),new Date().getMinutes()%e.autoCommitMinutes===0&&(console.log("Auto commit time!"),e.autoSync?await b():await y("Auto commit")))}var M={autoCommit:S,githubCloneCommand:C,gitlabCloneCommand:A,snapshotCommand:h,syncCommand:v},F={name:"git",requiredPermissions:["shell"],functions:{autoCommit:{path:"git.ts:autoCommit",env:"server",cron:"* * * * *"},githubCloneCommand:{path:"./git.ts:githubCloneCommand",command:{name:"Github: Clone"}},gitlabCloneCommand:{path:"./git.ts:gitlabCloneCommand",command:{name:"Gitlab: Clone"}},snapshotCommand:{path:"./git.ts:snapshotCommand",command:{name:"Git: Snapshot"}},syncCommand:{path:"./git.ts:syncCommand",command:{name:"Git: Sync"}}},assets:{}},kt={manifest:F,functionMapping:M};P(M,F,self.postMessage);export{kt as plug};