forked from silverbulletmd/silverbullet-git
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgit.plug.js
1 lines (1 loc) · 5.21 KB
/
git.plug.js
1
var mod=(()=>{var g=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var l=(e,t)=>{for(var n in t)g(e,n,{get:t[n],enumerable:!0})},U=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of F(t))!k.call(e,s)&&s!==n&&g(e,s,{get:()=>t[s],enumerable:!(o=M(t,s))||o.enumerable});return e};var S=e=>U(g({},"__esModule",{value:!0}),e);var Ce={};l(Ce,{functionMapping:()=>C});function P(e){let t=atob(e),n=t.length,o=new Uint8Array(n);for(let s=0;s<n;s++)o[s]=t.charCodeAt(s);return o}function D(e,t){return syscall("sandboxFetch.fetch",e,t)}function h(){globalThis.fetch=async function(e,t){let n=await D(e,t&&{method:t.method,headers:t.headers,body:t.body});return new Response(n.base64Body?P(n.base64Body):null,{status:n.status,headers:n.headers})}}typeof Deno>"u"&&(self.Deno={args:[],build:{arch:"x86_64"},env:{get(){}}});var y=new Map,f=0;function p(e){self.postMessage(e)}self.syscall=async(e,...t)=>await new Promise((n,o)=>{f++,y.set(f,{resolve:n,reject:o}),p({type:"sys",id:f,name:e,args:t})});function v(e,t){self.addEventListener("message",n=>{(async()=>{let o=n.data;switch(o.type){case"inv":{let s=e[o.name];if(!s)throw new Error(`Function not loaded: ${o.name}`);try{let i=await Promise.resolve(s(...o.args||[]));p({type:"invr",id:o.id,result:i})}catch(i){console.error(i),p({type:"invr",id:o.id,error:i.message})}}break;case"sysr":{let s=o.id,i=y.get(s);if(!i)throw Error("Invalid request id");y.delete(s),o.error?i.reject(new Error(o.error)):i.resolve(o.result)}break}})().catch(console.error)}),p({type:"manifest",manifest:t})}h();var c=self.syscall;var a={};l(a,{run:()=>q});function q(e,t){return c("shell.run",e,t)}var m={};l(m,{confirm:()=>ne,dispatch:()=>te,downloadFile:()=>W,filterBox:()=>Y,flashNotification:()=>j,fold:()=>ae,foldAll:()=>ue,getCurrentPage:()=>G,getCursor:()=>B,getSelection:()=>L,getText:()=>O,getUiOption:()=>oe,hidePanel:()=>H,insertAtCursor:()=>ee,insertAtPos:()=>J,moveCursor:()=>Z,navigate:()=>V,openUrl:()=>_,prompt:()=>re,reloadPage:()=>Q,replaceRange:()=>X,save:()=>K,setPage:()=>N,setSelection:()=>$,setUiOption:()=>se,showPanel:()=>z,toggleFold:()=>me,unfold:()=>ce,unfoldAll:()=>le,vimEx:()=>ie});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});var r=self.syscall;function G(){return r("editor.getCurrentPage")}function N(e){return r("editor.setPage",e)}function O(){return r("editor.getText")}function B(){return r("editor.getCursor")}function L(){return r("editor.getSelection")}function $(e,t){return r("editor.setSelection",e,t)}function K(){return r("editor.save")}function V(e,t,n=!1,o=!1){return r("editor.navigate",e,t,n,o)}function Q(){return r("editor.reloadPage")}function _(e,t=!1){return r("editor.openUrl",e,t)}function W(e,t){return r("editor.downloadFile",e,t)}function j(e,t="info"){return r("editor.flashNotification",e,t)}function Y(e,t,n="",o=""){return r("editor.filterBox",e,t,n,o)}function z(e,t,n,o=""){return r("editor.showPanel",e,t,n,o)}function H(e){return r("editor.hidePanel",e)}function J(e,t){return r("editor.insertAtPos",e,t)}function X(e,t,n){return r("editor.replaceRange",e,t,n)}function Z(e,t=!1){return r("editor.moveCursor",e,t)}function ee(e){return r("editor.insertAtCursor",e)}function te(e){return r("editor.dispatch",e)}function re(e,t=""){return r("editor.prompt",e,t)}function ne(e){return r("editor.confirm",e)}function oe(e){return r("editor.getUiOption",e)}function se(e,t){return r("editor.setUiOption",e,t)}function ie(e){return r("editor.vimEx",e)}function ae(){return r("editor.fold")}function ce(){return r("editor.unfold")}function me(){return r("editor.toggleFold")}function ue(){return r("editor.foldAll")}function le(){return r("editor.unfoldAll")}var u={};l(u,{getEnv:()=>he,invokeCommand:()=>ye,invokeFunction:()=>fe,listCommands:()=>xe,reloadPlugs:()=>Pe});function fe(e,t,...n){return r("system.invokeFunction",e,t,...n)}function ye(e){return r("system.invokeCommand",e)}function xe(){return r("system.listCommands")}function Pe(){r("system.reloadPlugs")}function he(){return r("system.getEnv")}var d="git";async function x(e="Snapshot"){console.log("Snapshotting the current space to git with commit message",e);let{code:t}=await a.run(d,["add","./*.md"]);console.log("Git add code",t);try{await a.run(d,["commit","-a","-m",e])}catch{}console.log("Done!")}async function b(){let e=await m.prompt("Revision name:");e||(e="Snapshot"),console.log("Revision name",e),await u.invokeFunction("server","commit",e)}async function w(){await m.flashNotification("Syncing with git"),await u.invokeFunction("server","sync"),await m.flashNotification("Git sync complete!")}async function A(){console.log("Going to sync with git"),await x(),console.log("Then pulling from remote"),await a.run(d,["pull"]),console.log("And then pushing to remote"),await a.run(d,["push"]),console.log("Done!")}var C={snapshotCommand:b,syncCommand:w,commit:x,sync:A},Ae={name:"git",requiredPermissions:["shell"],functions:{snapshotCommand:{path:"./git.ts:snapshotCommand",env:"client",command:{name:"Git: Snapshot"}},syncCommand:{path:"./git.ts:syncCommand",env:"client",command:{name:"Git: Sync"}},commit:{path:"./git.ts:commit",env:"server"},sync:{path:"./git.ts:sync",env:"server"}},assets:{}};v(C,Ae);return S(Ce);})();