@pstdio/workbench 0.7.1 → 0.9.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.
Files changed (44) hide show
  1. package/README.md +39 -317
  2. package/dist/extensions.d.ts +1492 -698
  3. package/dist/extensions.js +1679 -1776
  4. package/dist/extensions.js.map +1 -1
  5. package/dist/file-renderer-view-kfJRY3yR.js +515 -0
  6. package/dist/file-renderer-view-kfJRY3yR.js.map +1 -0
  7. package/dist/index.d.ts +724 -599
  8. package/dist/index.js +5151 -2369
  9. package/dist/index.js.map +1 -1
  10. package/dist/react.d.ts +673 -550
  11. package/dist/react.js +3585 -3335
  12. package/dist/react.js.map +1 -1
  13. package/dist/storage.d.ts +120 -155
  14. package/dist/storage.js +135 -149
  15. package/dist/storage.js.map +1 -1
  16. package/dist/webview-runtime.d.ts +2 -5
  17. package/dist/webview-runtime.js +3 -3
  18. package/dist/webview-runtime.js.map +1 -1
  19. package/dist/workbench-menu-paths-B_QJzcNU.js +12 -0
  20. package/dist/workbench-menu-paths-B_QJzcNU.js.map +1 -0
  21. package/dist/workbench-renderers-DmsrBGC7.js +960 -0
  22. package/dist/workbench-renderers-DmsrBGC7.js.map +1 -0
  23. package/dist/workspaces-DJwFj8uq.js +1872 -0
  24. package/dist/workspaces-DJwFj8uq.js.map +1 -0
  25. package/package.json +6 -41
  26. package/dist/composition-resolver-types-CWykPyEK.js +0 -241
  27. package/dist/composition-resolver-types-CWykPyEK.js.map +0 -1
  28. package/dist/file-renderer-view-B6_iR4EN.js +0 -496
  29. package/dist/file-renderer-view-B6_iR4EN.js.map +0 -1
  30. package/dist/file-section-navigation-CfYqVObc.js +0 -30
  31. package/dist/file-section-navigation-CfYqVObc.js.map +0 -1
  32. package/dist/icon-B9XolQG8.js +0 -35
  33. package/dist/icon-B9XolQG8.js.map +0 -1
  34. package/dist/layout-types-DMoZz38-.js +0 -100
  35. package/dist/layout-types-DMoZz38-.js.map +0 -1
  36. package/dist/surface-map-C1pOTUmF.js +0 -52
  37. package/dist/surface-map-C1pOTUmF.js.map +0 -1
  38. package/dist/testing.d.ts +0 -2284
  39. package/dist/testing.js +0 -58
  40. package/dist/testing.js.map +0 -1
  41. package/dist/workbench-built-ins-BncLJfQA.js +0 -1175
  42. package/dist/workbench-built-ins-BncLJfQA.js.map +0 -1
  43. package/dist/workbench-menu-paths-Bb0ICxeG.js +0 -20
  44. package/dist/workbench-menu-paths-Bb0ICxeG.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webview-runtime.js","sources":["../../pstdio-extensions/src/bridge/webview-runtime/runtime.bundle.js?raw","../../pstdio-extensions/src/bridge/webview-runtime/runtime-html.ts","../src/webview-runtime/index.ts"],"sourcesContent":["export default \"// Generated by packages/pstdio-extensions/scripts/build-runtime.ts\\nfunction u(){let P=globalThis;if(P.window!==void 0&&P.document!==void 0)return\\\"browser\\\";if(P.WorkerGlobalScope!==void 0&&P.self!==void 0&&P.self instanceof P.WorkerGlobalScope||P.window===void 0&&P.self!==void 0&&typeof P.importScripts==\\\"function\\\")return\\\"worker\\\";let G=P.process;if(G&&typeof G==\\\"object\\\"){let R=G.versions??{},J=G.release?.name;if(R.bun||J===\\\"bun\\\"||P.Bun!==void 0)return\\\"bun\\\";if(R.node&&J===\\\"node\\\")return\\\"node\\\"}return P.Bun===void 0?\\\"browser\\\":\\\"bun\\\"}function j(){return u()}function b(){return j()===\\\"worker\\\"}function x(){let P=j();return P===\\\"node\\\"||P===\\\"bun\\\"}function d(){return window.self!==window.top}function p(P){let G={};return function R(J,Y=\\\"\\\"){Object.keys(J).forEach((X)=>{let Q=Y?`${Y}.${X}`:X;J[X]===Object(J[X])&&R(J[X],Q),typeof J[X]==\\\"function\\\"&&(G[Q]=J[X],delete J[X])})}(P),G}function i(P){return!P||P===\\\"null\\\"?\\\"*\\\":P}function l(P,G,R){if(!P||typeof P!=\\\"object\\\")return P;let J=Array.isArray(G)?G:G.split(\\\".\\\").map((X)=>X.match(/^\\\\d+$/)?Number(X):X),Y=P;for(let X=0;X<J.length;X++){let Q=J[X];X===J.length-1?Y[Q]=R:((!Y[Q]||typeof Y[Q]!=\\\"object\\\")&&(Y[Q]=typeof J[X+1]==\\\"number\\\"?[]:{}),Y=Y[Q])}return P}function r(P=10){let G=\\\"\\\";for(let R=0;R<P;R++)G+=\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\\\".charAt(Math.floor(Math.random()*62));return G}var E=j(),D=null;if(E===\\\"node\\\"||E===\\\"bun\\\")try{let P=globalThis.require;D=P?.(\\\"node:worker_threads\\\")?.parentPort??null}catch{}function s(){if(x())return D;if(b())return self;if(d())return window.parent;throw Error(\\\"No valid target found for postMessage\\\")}function V(P,G,R,J){if(!P)throw Error(\\\"Rimless Error: No target specified for postMessage\\\");if(x()&&P===D){P.postMessage(G,{transfer:J});return}if(b()){P.postMessage(G,{transfer:J});return}if(P.postMessage){P.postMessage(G,{targetOrigin:i(R),transfer:J});return}throw Error(\\\"Rimless Error: Invalid target for postMessage\\\")}function S(P){return D!==null&&P===D}function C(P,G,R){S(P)?P.on(G,R):(\\\"addEventListener\\\"in P)&&P.addEventListener(G,R)}function H(P,G,R){S(P)?P.off(G,R):(\\\"removeEventListener\\\"in P)&&P.removeEventListener(G,R)}function w(P){return P.data||P}var T=function(P){return P.MESSAGE=\\\"message\\\",P}({}),N=function(P){return P.HANDSHAKE_REQUEST=\\\"RIMLESS/HANDSHAKE_REQUEST\\\",P.HANDSHAKE_REPLY=\\\"RIMLESS/HANDSHAKE_REPLY\\\",P.RPC_REQUEST=\\\"RIMLESS/RPC_REQUEST\\\",P.RPC_RESOLVE=\\\"RIMLESS/RPC_RESOLVE\\\",P.RPC_REJECT=\\\"RIMLESS/RPC_REJECT\\\",P}({}),L=Symbol();function o(P={},G,R,J,Y){let X=[];for(let[Q,$]of Object.entries(P)){async function Z(W){let{action:O,callID:F,connectionID:z,callName:U,args:A=[]}=w(W);if(O!==N.RPC_REQUEST||!F||!U||U!==Q||z!==G)return;let M={action:N.RPC_RESOLVE,callID:F,callName:U,connectionID:z,error:null,result:null},_;try{M.result=await $(...A,Y),M.result?.[L]&&(_=M.result[L]??[],delete M.result[L])}catch(K){M.action=N.RPC_REJECT,M.error=JSON.parse(JSON.stringify(K,Object.getOwnPropertyNames(K)))}V(J,M,W?.origin,_)}C(R,T.MESSAGE,Z),X.push(()=>H(R,T.MESSAGE,Z))}return()=>X.forEach((Q)=>Q())}function t(P,G,R,J=[],Y,X){return(...Q)=>new Promise(($,Z)=>{let W=r();function O(U){let{callID:A,connectionID:M,callName:_,result:K,error:v,action:I}=w(U);if(!(!A||!_)&&_===P&&A===W&&M===G){if(I===N.RPC_RESOLVE)return $(K);if(I===N.RPC_REJECT)return Z(v)}}let F={action:N.RPC_REQUEST,args:Q,callID:W,callName:P,connectionID:G},z=Q.reduce((U,A)=>A[L]?.length?U.concat(A[L]):U,Q[L]??[]);C(Y,T.MESSAGE,O),J.push(()=>H(Y,T.MESSAGE,O)),V(X,F,R?.origin,z)})}function a(P={},G=[],R,J,Y,X){let Q={...P},$=[];for(let Z of G)l(Q,Z,t(Z,R,J,$,Y,X));return{remote:Q,unregisterRemote:()=>$.forEach((Z)=>Z())}}function n(P={},G){return new Promise(async(R)=>{let J=p(P),Y=s(),X=self||window;async function Q($){let Z=w($);if(Z?.action!==N.HANDSHAKE_REPLY)return;let{remote:W,unregisterRemote:O}=a(Z.schema,Z.methodNames,Z.connectionID,$,X,Y),F=o(J,Z.connectionID,X,Y,W);return await G?.onConnectionSetup?.(W),V(Y,{action:N.HANDSHAKE_REPLY,connectionID:Z.connectionID},$?.origin),R({remote:W,close:()=>{H(X,T.MESSAGE,Q),O(),F()},id:Z.connectionID})}C(X,T.MESSAGE,Q),V(Y,{action:N.HANDSHAKE_REQUEST,methodNames:Object.keys(J),schema:P})})}var f={connect:n};var e=(P)=>typeof P===\\\"object\\\"&&P!==null,k=(P)=>{try{let G=JSON.stringify(P);if(typeof G===\\\"string\\\"&&G.length>0)return G}catch{}try{return String(P)}catch{return\\\"Unknown error\\\"}},y=(P)=>{if(P instanceof Error)return{message:P.message,stack:P.stack};if(typeof P===\\\"string\\\")return{message:P};if(e(P)){let G=typeof P.message===\\\"string\\\"?P.message:null,R=typeof P.stack===\\\"string\\\"?P.stack:void 0;if(G)return R?{message:G,stack:R}:{message:G};return{message:k(P)}}if(P===null||P===void 0)return{message:\\\"Unknown error\\\"};return{message:k(P)}};var B=(P)=>({id:P}),q=(P,G)=>({id:P,kind:G.kind,label:G.label,description:G.description,metadata:G.metadata}),BP={sidenav:q(\\\"project.sidenav\\\",{kind:\\\"panel\\\"}),headerPrimary:q(\\\"project.headerPrimary\\\",{kind:\\\"menu\\\"}),headerOverflow:q(\\\"project.headerOverflow\\\",{kind:\\\"menu\\\"}),settingsPanels:q(\\\"project.settingsPanels\\\",{kind:\\\"settings\\\"})},WP={headerPrimary:q(\\\"session.headerPrimary\\\",{kind:\\\"menu\\\"}),headerOverflow:q(\\\"session.headerOverflow\\\",{kind:\\\"menu\\\"}),transcriptActions:q(\\\"session.transcriptActions\\\",{kind:\\\"menu\\\"})},qP={headerPrimary:q(\\\"workspace.headerPrimary\\\",{kind:\\\"menu\\\"}),headerOverflow:q(\\\"workspace.headerOverflow\\\",{kind:\\\"menu\\\"}),sidenav:q(\\\"workspace.sidenav\\\",{kind:\\\"panel\\\"})},FP={opened:B(\\\"project.opened\\\")},MP={started:B(\\\"session.started\\\"),resumed:B(\\\"session.resumed\\\"),awaitingInput:B(\\\"session.awaitingInput\\\"),succeeded:B(\\\"session.succeeded\\\"),failed:B(\\\"session.failed\\\"),completed:B(\\\"session.completed\\\")},NP={created:B(\\\"workspace.created\\\"),provision:B(\\\"workspace.provision\\\"),ready:B(\\\"workspace.ready\\\"),archived:B(\\\"workspace.archived\\\"),deleted:B(\\\"workspace.deleted\\\")},OP={removed:B(\\\"worktree.removed\\\")},UP={committed:B(\\\"git.committed\\\"),rebased:B(\\\"git.rebased\\\"),merged:B(\\\"git.merged\\\"),conflicted:B(\\\"git.conflicted\\\")};var PP=[\\\"commands.execute\\\",\\\"resource.open\\\",\\\"notification.show\\\",\\\"notification.action\\\",\\\"notification.resolve\\\",\\\"notification.dismiss\\\",\\\"preferences.get\\\",\\\"preferences.set\\\",\\\"extension.settings.all\\\",\\\"extension.settings.get\\\",\\\"extension.settings.set\\\",\\\"extension.settings.delete\\\",\\\"terminal.session\\\",\\\"files.upload\\\",\\\"files.list\\\",\\\"files.delete\\\"],GP=[\\\"host.dispatchKeyboardEvent\\\"],AP=[...PP,...GP];var c=(P,G,R)=>({call:async(J,Y)=>await P({method:J,params:Y}),onEvent:G,extensionId:R}),g=(P)=>{let G=P,R=new Set;return{get:()=>G,subscribe:(J)=>{return R.add(J),()=>R.delete(J)},set:(J)=>{G=J;for(let Y of R)Y(G)}}};var h=\\\"pstdio-extension-mount\\\",RP=()=>{let P=new Map;return{get length(){return P.size},clear:()=>P.clear(),getItem:(G)=>P.get(G)??null,key:(G)=>Array.from(P.keys())[G]??null,removeItem:(G)=>P.delete(G),setItem:(G,R)=>P.set(G,R)}},JP=()=>{for(let P of[\\\"localStorage\\\",\\\"sessionStorage\\\"])try{window[P]}catch{Object.defineProperty(window,P,{configurable:!0,value:RP()})}},m=(P,G)=>{let R=document.documentElement,J=P===\\\"dark\\\"?\\\"light\\\":\\\"dark\\\";R.classList.remove(J),R.classList.add(P),R.setAttribute(\\\"data-theme\\\",P),R.style.colorScheme=P;for(let[Y,X]of Object.entries(G))if(Y.startsWith(\\\"--\\\"))R.style.setProperty(Y,X)},QP=(P)=>{for(let G of P){let R=document.createElement(\\\"link\\\");R.rel=\\\"stylesheet\\\",R.href=G,document.head.appendChild(R)}},XP=()=>{let P=document.getElementById(h);if(!P)P=document.createElement(\\\"div\\\"),P.id=h,P.style.height=\\\"100%\\\",P.style.width=\\\"100%\\\",document.body.appendChild(P);return P},YP=(P)=>P instanceof HTMLInputElement||P instanceof HTMLTextAreaElement||P instanceof HTMLSelectElement||P instanceof HTMLElement&&P.isContentEditable,ZP=async()=>{JP();let P=g(void 0),G=new Map,R=(Q,$)=>{let Z=G.get(Q)??new Set;return Z.add($),G.set(Q,Z),()=>{Z.delete($)}},J,Y=!1,X=await f.connect({init:async(Q)=>{try{m(Q.theme,Q.themeVariables),QP(Q.styles),P.set(Q.props);let $=XP(),Z=await import(Q.moduleUrl),W=Z.default??(Z.mount?Z:void 0);if(!W?.mount)throw Error(\\\"Extension module does not export a default view (defineExtensionView).\\\");let O=c((z)=>X.remote.call(z),R,Q.extensionId),F=await W.mount($,O,P);if(J=typeof F===\\\"function\\\"?F:void 0,!Y)Y=!0,document.addEventListener(\\\"keydown\\\",(z)=>{if(!z.ctrlKey&&!z.metaKey&&!z.altKey)return;if(YP(z.target)&&!z.shiftKey)return;X.remote.call({method:\\\"host.dispatchKeyboardEvent\\\",params:{key:z.key,code:z.code,ctrlKey:z.ctrlKey,metaKey:z.metaKey,altKey:z.altKey,shiftKey:z.shiftKey,repeat:z.repeat}}).catch(()=>{})},!0)}catch($){let Z=y($);throw X.remote.runtimeError(Z),$ instanceof Error?$:Error(Z.message)}},themeUpdate:(Q)=>{m(Q.theme,Q.variables)},propsUpdate:(Q)=>{P.set(Q.props)},hostEvent:(Q)=>{for(let $ of G.get(Q.scope)??[])$(Q.payload)}});X.remote.ready({}),window.addEventListener(\\\"beforeunload\\\",()=>{J?.()})};ZP();\\n\"","const MOUNT_ID = \"pstdio-extension-mount\";\n\nconst escapeAttribute = (value: string) =>\n value.replaceAll(\"&\", \"&amp;\").replaceAll('\"', \"&quot;\").replaceAll(\"<\", \"&lt;\");\n\nconst escapeScriptContent = (value: string) => value.replaceAll(\"</script\", \"<\\\\/script\").replaceAll(\"<!--\", \"<\\\\!--\");\n\nconst renderRuntimeHostDocument = (scriptTag: string) => `<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <style>\n html, body {\n height: 100%;\n margin: 0;\n background: transparent;\n }\n body {\n overflow-x: hidden !important;\n overflow-y: auto !important;\n }\n #${MOUNT_ID} {\n height: 100%;\n width: 100%;\n display: block;\n min-height: 0;\n }\n </style>\n </head>\n <body>\n <div id=\"${MOUNT_ID}\"></div>\n ${scriptTag}\n </body>\n</html>\n`;\n\nexport const getExtensionRuntimeScriptUrl = () => new URL(\"./runtime.bundle.js\", import.meta.url).href;\n\nexport const renderExtensionRuntimeHtml = (scriptUrl: string) =>\n renderRuntimeHostDocument(`<script src=\"${escapeAttribute(scriptUrl)}\"></script>`);\n\nexport const renderInlineExtensionRuntimeHtml = (runtimeScript: string) =>\n renderRuntimeHostDocument(`<script>${escapeScriptContent(runtimeScript)}</script>`);\n","import runtimeScript from \"pstdio-extensions/bridge/webview-runtime.bundle.js?raw\";\n\nexport {\n renderExtensionRuntimeHtml,\n renderInlineExtensionRuntimeHtml,\n} from \"pstdio-extensions/bridge/webview-runtime-html\";\n\n// The guest runtime bundle is inlined here so a host app can serve it without\n// depending on the private pstdio-extensions package.\nexport const getExtensionRuntimeScript = () => runtimeScript;\n"],"names":["runtimeScript","MOUNT_ID","escapeAttribute","value","replaceAll","escapeScriptContent","renderRuntimeHostDocument","scriptTag","renderExtensionRuntimeHtml","scriptUrl","renderInlineExtensionRuntimeHtml","getExtensionRuntimeScript"],"mappings":"AAAA,MAAAA,IAAe,mhRCATC,IAAW,0BAEXC,IAAkBA,CAACC,MACvBA,EAAMC,WAAW,KAAK,OAAO,EAAEA,WAAW,KAAK,QAAQ,EAAEA,WAAW,KAAK,MAAM,GAE3EC,IAAsBA,CAACF,MAAkBA,EAAMC,WAAW,aAAY,YAAY,EAAEA,WAAW,QAAQ,QAAQ,GAE/GE,IAA4BA,CAACC,MAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAehDN,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eASFA,CAAQ;AAAA,MACjBM,CAAS;AAAA;AAAA;AAAA,GAOFC,IAA6BA,CAACC,MACzCH,EAA0B,gBAAgBJ,EAAgBO,CAAS,CAAC,cAAa,GAEtEC,IAAmCA,CAACV,MAC/CM,EAA0B,WAAWD,EAAoBL,CAAa,CAAC,YAAW,GClCvEW,IAA4BA,MAAMX;"}
1
+ {"version":3,"file":"webview-runtime.js","sources":["../../pstdio-extensions/src/bridge/webview-runtime/runtime.bundle.js?raw","../../pstdio-extensions/src/bridge/webview-runtime/runtime-html.ts","../src/webview-runtime/index.ts"],"sourcesContent":["export default \"// Generated by packages/pstdio-extensions/scripts/build-runtime.ts\\nfunction e(){let J=globalThis;if(J.window!==void 0&&J.document!==void 0)return\\\"browser\\\";if(J.WorkerGlobalScope!==void 0&&J.self!==void 0&&J.self instanceof J.WorkerGlobalScope||J.window===void 0&&J.self!==void 0&&typeof J.importScripts==\\\"function\\\")return\\\"worker\\\";let Q=J.process;if(Q&&typeof Q==\\\"object\\\"){let Y=Q.versions??{},$=Q.release?.name;if(Y.bun||$===\\\"bun\\\"||J.Bun!==void 0)return\\\"bun\\\";if(Y.node&&$===\\\"node\\\")return\\\"node\\\"}return J.Bun===void 0?\\\"browser\\\":\\\"bun\\\"}function S(){return e()}function p(){return S()===\\\"worker\\\"}function u(){let J=S();return J===\\\"node\\\"||J===\\\"bun\\\"}function JJ(){return window.self!==window.top}function QJ(J){let Q={};return function Y($,X=\\\"\\\"){Object.keys($).forEach((Z)=>{let G=X?`${X}.${Z}`:Z;$[Z]===Object($[Z])&&Y($[Z],G),typeof $[Z]==\\\"function\\\"&&(Q[G]=$[Z],delete $[Z])})}(J),Q}function YJ(J){return!J||J===\\\"null\\\"?\\\"*\\\":J}function ZJ(J,Q,Y){if(!J||typeof J!=\\\"object\\\")return J;let $=Array.isArray(Q)?Q:Q.split(\\\".\\\").map((Z)=>Z.match(/^\\\\d+$/)?Number(Z):Z),X=J;for(let Z=0;Z<$.length;Z++){let G=$[Z];Z===$.length-1?X[G]=Y:((!X[G]||typeof X[G]!=\\\"object\\\")&&(X[G]=typeof $[Z+1]==\\\"number\\\"?[]:{}),X=X[G])}return J}function $J(J=10){let Q=\\\"\\\";for(let Y=0;Y<J;Y++)Q+=\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\\\".charAt(Math.floor(Math.random()*62));return Q}var c=S(),K=null;if(c===\\\"node\\\"||c===\\\"bun\\\")try{let J=globalThis.require;K=J?.(\\\"node:worker_threads\\\")?.parentPort??null}catch{}function GJ(){if(u())return K;if(p())return self;if(JJ())return window.parent;throw Error(\\\"No valid target found for postMessage\\\")}function E(J,Q,Y,$){if(!J)throw Error(\\\"Rimless Error: No target specified for postMessage\\\");if(u()&&J===K){J.postMessage(Q,{transfer:$});return}if(p()){J.postMessage(Q,{transfer:$});return}if(J.postMessage){J.postMessage(Q,{targetOrigin:YJ(Y),transfer:$});return}throw Error(\\\"Rimless Error: Invalid target for postMessage\\\")}function d(J){return K!==null&&J===K}function b(J,Q,Y){d(J)?J.on(Q,Y):(\\\"addEventListener\\\"in J)&&J.addEventListener(Q,Y)}function y(J,Q,Y){d(J)?J.off(Q,Y):(\\\"removeEventListener\\\"in J)&&J.removeEventListener(Q,Y)}function k(J){return J.data||J}var H=function(J){return J.MESSAGE=\\\"message\\\",J}({}),W=function(J){return J.HANDSHAKE_REQUEST=\\\"RIMLESS/HANDSHAKE_REQUEST\\\",J.HANDSHAKE_REPLY=\\\"RIMLESS/HANDSHAKE_REPLY\\\",J.RPC_REQUEST=\\\"RIMLESS/RPC_REQUEST\\\",J.RPC_RESOLVE=\\\"RIMLESS/RPC_RESOLVE\\\",J.RPC_REJECT=\\\"RIMLESS/RPC_REJECT\\\",J}({}),A=Symbol();function XJ(J={},Q,Y,$,X){let Z=[];for(let[G,U]of Object.entries(J)){async function z(N){let{action:_,callID:j,connectionID:q,callName:V,args:D=[]}=k(N);if(_!==W.RPC_REQUEST||!j||!V||V!==G||q!==Q)return;let M={action:W.RPC_RESOLVE,callID:j,callName:V,connectionID:q,error:null,result:null},C;try{M.result=await U(...D,X),M.result?.[A]&&(C=M.result[A]??[],delete M.result[A])}catch(I){M.action=W.RPC_REJECT,M.error=JSON.parse(JSON.stringify(I,Object.getOwnPropertyNames(I)))}E($,M,N?.origin,C)}b(Y,H.MESSAGE,z),Z.push(()=>y(Y,H.MESSAGE,z))}return()=>Z.forEach((G)=>G())}function zJ(J,Q,Y,$=[],X,Z){return(...G)=>new Promise((U,z)=>{let N=$J();function _(V){let{callID:D,connectionID:M,callName:C,result:I,error:n,action:m}=k(V);if(!(!D||!C)&&C===J&&D===N&&M===Q){if(m===W.RPC_RESOLVE)return U(I);if(m===W.RPC_REJECT)return z(n)}}let j={action:W.RPC_REQUEST,args:G,callID:N,callName:J,connectionID:Q},q=G.reduce((V,D)=>D[A]?.length?V.concat(D[A]):V,G[A]??[]);b(X,H.MESSAGE,_),$.push(()=>y(X,H.MESSAGE,_)),E(Z,j,Y?.origin,q)})}function FJ(J={},Q=[],Y,$,X,Z){let G={...J},U=[];for(let z of Q)ZJ(G,z,zJ(z,Y,$,U,X,Z));return{remote:G,unregisterRemote:()=>U.forEach((z)=>z())}}function UJ(J={},Q){return new Promise(async(Y)=>{let $=QJ(J),X=GJ(),Z=self||window;async function G(U){let z=k(U);if(z?.action!==W.HANDSHAKE_REPLY)return;let{remote:N,unregisterRemote:_}=FJ(z.schema,z.methodNames,z.connectionID,U,Z,X),j=XJ($,z.connectionID,Z,X,N);return await Q?.onConnectionSetup?.(N),E(X,{action:W.HANDSHAKE_REPLY,connectionID:z.connectionID},U?.origin),Y({remote:N,close:()=>{y(Z,H.MESSAGE,G),_(),j()},id:z.connectionID})}b(Z,H.MESSAGE,G),E(X,{action:W.HANDSHAKE_REQUEST,methodNames:Object.keys($),schema:J})})}var l={connect:UJ};var qJ=(J)=>typeof J===\\\"object\\\"&&J!==null,r=(J)=>{try{let Q=JSON.stringify(J);if(typeof Q===\\\"string\\\"&&Q.length>0)return Q}catch{}try{return String(J)}catch{return\\\"Unknown error\\\"}},w=(J)=>{if(J instanceof Error)return{message:J.message,stack:J.stack};if(typeof J===\\\"string\\\")return{message:J};if(qJ(J)){let Q=typeof J.message===\\\"string\\\"?J.message:null,Y=typeof J.stack===\\\"string\\\"?J.stack:void 0;if(Q)return Y?{message:Q,stack:Y}:{message:Q};return{message:r(J)}}if(J===null||J===void 0)return{message:\\\"Unknown error\\\"};return{message:r(J)}};var f=[\\\"sidenav\\\",\\\"main\\\",\\\"secondary\\\",\\\"side\\\"];var B=(J,Q)=>({extensionId:\\\"pstdio\\\",kind:J,id:Q}),L={project:B(\\\"mode\\\",\\\"project\\\"),sessions:B(\\\"mode\\\",\\\"sessions\\\"),settings:B(\\\"mode\\\",\\\"settings\\\")},TJ={project:{ref:L.project,regions:f},sessions:{ref:L.sessions,regions:f},settings:{ref:L.settings,regions:f}},g=(J,Q,Y)=>({id:J,ref:B(\\\"resource-kind\\\",J),label:Q,menuSlots:Y}),h=[{id:\\\"headerPrimary\\\",placement:\\\"header-primary\\\",access:\\\"public\\\"},{id:\\\"headerOverflow\\\",placement:\\\"header-overflow\\\",access:\\\"public\\\"}],v={project:g(\\\"project\\\",\\\"Extension\\\",h),session:g(\\\"session\\\",\\\"Session\\\",h),workspace:g(\\\"workspace\\\",\\\"Workspace\\\",h)},P={project:v.project.ref,session:v.session.ref,workspace:v.workspace.ref},R={start:B(\\\"page\\\",\\\"start\\\"),sessions:B(\\\"page\\\",\\\"sessions\\\"),session:B(\\\"page\\\",\\\"session\\\"),workspaces:B(\\\"page\\\",\\\"workspaces\\\"),workspace:B(\\\"page\\\",\\\"workspace\\\")},CJ={start:{ref:R.start,mode:L.project,path:\\\"\\\",primary:{cardinality:\\\"one\\\",resourceKinds:[]}},sessions:{ref:R.sessions,mode:L.sessions,path:\\\"sessions\\\",primary:{cardinality:\\\"one\\\",resourceKinds:[]}},session:{ref:R.session,mode:L.sessions,path:\\\"session\\\",primary:{cardinality:\\\"one\\\",resourceKinds:[\\\"session\\\",\\\"session-draft\\\"]}},workspaces:{ref:R.workspaces,mode:L.project,path:\\\"workspaces\\\",primary:{cardinality:\\\"one\\\",resourceKinds:[]}},workspace:{ref:R.workspace,mode:L.project,path:\\\"workspace\\\",primary:{cardinality:\\\"many\\\",resourceKinds:[\\\"workspace\\\"]}}},OJ={projectSession:B(\\\"placement\\\",\\\"project-session\\\")},KJ={projectSession:{ref:OJ.projectSession,mode:L.project,cardinality:\\\"many\\\",resourceKinds:[\\\"session\\\",\\\"session-draft\\\"]}},RJ={projectSettings:B(\\\"settings-panel\\\",\\\"project.settings\\\"),statusBarLeading:B(\\\"status-bar-item\\\",\\\"status-bar.leading\\\"),statusBarTrailing:B(\\\"status-bar-item\\\",\\\"status-bar.trailing\\\")};var i=(J)=>({...J,kind:\\\"command\\\"}),IJ=Object.assign(i,{forExtension:(J)=>(Q)=>i({extensionId:`${J.publisher}.${J.name}`,id:Q})}),BJ=(J)=>({...J,kind:\\\"event\\\"}),x=(J,Q)=>({id:J,kind:Q.kind,label:Q.label,description:Q.description,metadata:Q.metadata}),O=(J)=>BJ({extensionId:\\\"pstdio\\\",id:J}),T=(J,Q)=>x(`${J.id}.${Q}`,{kind:\\\"menu\\\"}),EJ={sidenav:x(\\\"project.sidenav\\\",{kind:\\\"panel\\\"}),headerPrimary:T(P.project,\\\"headerPrimary\\\"),headerOverflow:T(P.project,\\\"headerOverflow\\\"),settingsPanels:x(\\\"project.settingsPanels\\\",{kind:\\\"settings\\\"})},wJ={headerPrimary:T(P.session,\\\"headerPrimary\\\"),headerOverflow:T(P.session,\\\"headerOverflow\\\")},xJ={headerPrimary:T(P.workspace,\\\"headerPrimary\\\"),headerOverflow:T(P.workspace,\\\"headerOverflow\\\"),sidenav:x(\\\"workspace.sidenav\\\",{kind:\\\"panel\\\"})},SJ={opened:O(\\\"project.opened\\\")},bJ={started:O(\\\"session.started\\\"),resumed:O(\\\"session.resumed\\\"),awaitingInput:O(\\\"session.awaitingInput\\\"),succeeded:O(\\\"session.succeeded\\\"),failed:O(\\\"session.failed\\\"),completed:O(\\\"session.completed\\\")},yJ={created:O(\\\"workspace.created\\\"),provision:O(\\\"workspace.provision\\\"),ready:O(\\\"workspace.ready\\\"),archived:O(\\\"workspace.archived\\\"),deleted:O(\\\"workspace.deleted\\\")},kJ={removed:O(\\\"worktree.removed\\\")},fJ={committed:O(\\\"git.committed\\\"),rebased:O(\\\"git.rebased\\\"),merged:O(\\\"git.merged\\\"),conflicted:O(\\\"git.conflicted\\\")};var NJ=[\\\"commands.execute\\\",\\\"navigation.open\\\",\\\"placement.close\\\",\\\"notification.show\\\",\\\"notification.action\\\",\\\"notification.resolve\\\",\\\"notification.dismiss\\\",\\\"preferences.get\\\",\\\"preferences.set\\\",\\\"extension.settings.all\\\",\\\"extension.settings.get\\\",\\\"extension.settings.set\\\",\\\"extension.settings.delete\\\",\\\"terminal.session\\\",\\\"files.upload\\\",\\\"files.list\\\",\\\"files.delete\\\"],jJ=[\\\"artifacts.read\\\"],MJ=[\\\"host.dispatchKeyboardEvent\\\"],gJ=[...NJ,...jJ,...MJ];var F=(J)=>(Q)=>({...Q,ref:{kind:J,id:Q.id}}),hJ=F(\\\"view\\\"),vJ=F(\\\"view-menu\\\"),mJ=F(\\\"placement\\\"),cJ=F(\\\"resource-kind\\\");var pJ=F(\\\"navigation-item\\\"),uJ=F(\\\"navigation-tree\\\"),dJ=F(\\\"mode\\\");var lJ=F(\\\"status-bar-item\\\"),rJ=F(\\\"status\\\"),iJ=F(\\\"settings-panel\\\"),aJ=F(\\\"activity-item\\\"),sJ=F(\\\"settings-section\\\"),oJ=F(\\\"command-palette-resource\\\"),tJ=F(\\\"keybinding\\\"),nJ=F(\\\"schedule\\\"),eJ=F(\\\"artifact-mount\\\"),JQ=F(\\\"template-type\\\"),QQ=F(\\\"template\\\"),YQ=F(\\\"skill\\\"),ZQ=F(\\\"theme\\\"),$Q=F(\\\"file-icon-theme\\\"),GQ=F(\\\"workspace-type\\\"),XQ=F(\\\"harness\\\"),zQ=F(\\\"connection\\\");var a=(J,Q,Y)=>({call:async($,...X)=>{try{return await J({method:$,params:X[0]})}catch(Z){if(Z instanceof Error)throw Z;throw Error(w(Z).message)}},onEvent:Q,extensionId:Y}),s=(J)=>{let Q=J,Y=new Set;return{get:()=>Q,subscribe:($)=>{return Y.add($),()=>Y.delete($)},set:($)=>{Q=$;for(let X of Y)X(Q)}}};var o=\\\"pstdio-extension-mount\\\",WJ=()=>{let J=new Map;return{get length(){return J.size},clear:()=>J.clear(),getItem:(Q)=>J.get(Q)??null,key:(Q)=>Array.from(J.keys())[Q]??null,removeItem:(Q)=>J.delete(Q),setItem:(Q,Y)=>J.set(Q,Y)}},LJ=()=>{for(let J of[\\\"localStorage\\\",\\\"sessionStorage\\\"])try{window[J]}catch{Object.defineProperty(window,J,{configurable:!0,value:WJ()})}},t=(J,Q)=>{let Y=document.documentElement,$=J===\\\"dark\\\"?\\\"light\\\":\\\"dark\\\";Y.classList.remove($),Y.classList.add(J),Y.setAttribute(\\\"data-theme\\\",J),Y.style.colorScheme=J;for(let[X,Z]of Object.entries(Q))if(X.startsWith(\\\"--\\\"))Y.style.setProperty(X,Z)},_J=(J)=>{for(let Q of J){let Y=document.createElement(\\\"link\\\");Y.rel=\\\"stylesheet\\\",Y.href=Q,document.head.appendChild(Y)}},VJ=()=>{let J=document.getElementById(o);if(!J)J=document.createElement(\\\"div\\\"),J.id=o,J.style.height=\\\"100%\\\",J.style.width=\\\"100%\\\",document.body.appendChild(J);return J},DJ=(J)=>J instanceof HTMLInputElement||J instanceof HTMLTextAreaElement||J instanceof HTMLSelectElement||J instanceof HTMLElement&&J.isContentEditable,AJ=async()=>{LJ();let J=s(void 0),Q=new Map,Y=(G,U)=>{let z=Q.get(G)??new Set;return z.add(U),Q.set(G,z),()=>{z.delete(U)}},$,X=!1,Z=await l.connect({init:async(G)=>{try{t(G.theme,G.themeVariables),_J(G.styles),J.set(G.props);let U=VJ(),z=await import(G.moduleUrl),N=z.default??(z.mount?z:void 0);if(!N?.mount)throw Error(\\\"Extension module does not export a default view (defineExtensionView).\\\");let _=a((q)=>Z.remote.call(q),Y,G.extensionId),j=await N.mount(U,_,J);if($=typeof j===\\\"function\\\"?j:void 0,!X)X=!0,document.addEventListener(\\\"keydown\\\",(q)=>{if(!q.ctrlKey&&!q.metaKey&&!q.altKey)return;if(DJ(q.target)&&!q.shiftKey)return;Z.remote.call({method:\\\"host.dispatchKeyboardEvent\\\",params:{key:q.key,code:q.code,ctrlKey:q.ctrlKey,metaKey:q.metaKey,altKey:q.altKey,shiftKey:q.shiftKey,repeat:q.repeat}}).catch(()=>{})},!0)}catch(U){let z=w(U);throw Z.remote.runtimeError(z),U instanceof Error?U:Error(z.message)}},themeUpdate:(G)=>{t(G.theme,G.variables)},propsUpdate:(G)=>{J.set(G.props)},hostEvent:(G)=>{for(let U of Q.get(G.scope)??[])U(G.payload)}});Z.remote.ready({}),window.addEventListener(\\\"beforeunload\\\",()=>{$?.()})};AJ();\\n\"","const MOUNT_ID = \"pstdio-extension-mount\";\n\nconst escapeAttribute = (value: string) =>\n value.replaceAll(\"&\", \"&amp;\").replaceAll('\"', \"&quot;\").replaceAll(\"<\", \"&lt;\");\n\nconst escapeScriptContent = (value: string) => value.replaceAll(\"</script\", \"<\\\\/script\").replaceAll(\"<!--\", \"<\\\\!--\");\n\nconst renderRuntimeHostDocument = (scriptTag: string) => `<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <style>\n html, body {\n height: 100%;\n margin: 0;\n background: transparent;\n }\n body {\n overflow-x: hidden !important;\n overflow-y: auto !important;\n }\n #${MOUNT_ID} {\n height: 100%;\n width: 100%;\n display: block;\n min-height: 0;\n }\n </style>\n </head>\n <body>\n <div id=\"${MOUNT_ID}\"></div>\n ${scriptTag}\n </body>\n</html>\n`;\n\nexport const getExtensionRuntimeScriptUrl = () => new URL(\"./runtime.bundle.js\", import.meta.url).href;\n\nexport const renderExtensionRuntimeHtml = (scriptUrl: string) =>\n renderRuntimeHostDocument(`<script src=\"${escapeAttribute(scriptUrl)}\"></script>`);\n\nexport const renderInlineExtensionRuntimeHtml = (runtimeScript: string) =>\n renderRuntimeHostDocument(`<script>${escapeScriptContent(runtimeScript)}</script>`);\n","import runtimeScript from \"pstdio-extensions/bridge/webview-runtime.bundle.js?raw\";\n\nexport {\n renderExtensionRuntimeHtml,\n renderInlineExtensionRuntimeHtml,\n} from \"pstdio-extensions/bridge/webview-runtime-html\";\n\n// The guest runtime bundle is inlined here so a host app can serve it without\n// depending on the private pstdio-extensions package.\nexport const getExtensionRuntimeScript = () => runtimeScript;\n"],"names":["runtimeScript","MOUNT_ID","escapeAttribute","value","replaceAll","escapeScriptContent","renderRuntimeHostDocument","scriptTag","renderExtensionRuntimeHtml","scriptUrl","renderInlineExtensionRuntimeHtml","getExtensionRuntimeScript"],"mappings":"AAAA,MAAAA,IAAe,89VCATC,IAAW,0BAEXC,IAAkBA,CAACC,MACvBA,EAAMC,WAAW,KAAK,OAAO,EAAEA,WAAW,KAAK,QAAQ,EAAEA,WAAW,KAAK,MAAM,GAE3EC,IAAsBA,CAACF,MAAkBA,EAAMC,WAAW,aAAY,YAAY,EAAEA,WAAW,QAAQ,QAAQ,GAE/GE,IAA4BA,CAACC,MAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAehDN,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eASFA,CAAQ;AAAA,MACjBM,CAAS;AAAA;AAAA;AAAA,GAOFC,IAA6BA,CAACC,MACzCH,EAA0B,gBAAgBJ,EAAgBO,CAAS,CAAC,cAAa,GAEtEC,IAAmCA,CAACV,MAC/CM,EAA0B,WAAWD,EAAoBL,CAAa,CAAC,YAAW,GClCvEW,IAA4BA,MAAMX;"}
@@ -0,0 +1,12 @@
1
+ const n = (e) => ["workbench", "header", e, "leading"], a = (e) => ["workbench", "header", e, "trailing"], o = (e) => ["workbench", "regionTabs", e, "leading"], r = (e) => ["workbench", "regionTabs", e, "add"], t = ["workbench", "commandPalette"], c = n("nav"), h = a("nav"), s = (e) => ["workbench", "resource", e, "context"];
2
+ export {
3
+ a,
4
+ r as b,
5
+ o as c,
6
+ c as d,
7
+ h as e,
8
+ n as h,
9
+ s as r,
10
+ t as w
11
+ };
12
+ //# sourceMappingURL=workbench-menu-paths-B_QJzcNU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workbench-menu-paths-B_QJzcNU.js","sources":["../src/core/registries/menus/workbench-menu-paths.ts"],"sourcesContent":["import type { MenuPath } from \"./menu-registry\";\n\nexport const headerLeadingMenuPath = (region: string): MenuPath => [\"workbench\", \"header\", region, \"leading\"];\n\nexport const headerTrailingMenuPath = (region: string): MenuPath => [\"workbench\", \"header\", region, \"trailing\"];\n\nexport const workbenchRegionTabLeadingMenuPath = (region: string): MenuPath => [\n \"workbench\",\n \"regionTabs\",\n region,\n \"leading\",\n];\n\nexport const workbenchRegionTabAddMenuPath = (region: string): MenuPath => [\"workbench\", \"regionTabs\", region, \"add\"];\n\nexport const workbenchCommandPaletteMenuPath = [\"workbench\", \"commandPalette\"] as const satisfies MenuPath;\n\nexport const workbenchTopHeaderLeadingMenuPath = headerLeadingMenuPath(\"nav\");\n\nexport const workbenchTopHeaderTrailingMenuPath = headerTrailingMenuPath(\"nav\");\n\nexport const resourceContextMenuPath = (resourceKind: string): MenuPath => [\n \"workbench\",\n \"resource\",\n resourceKind,\n \"context\",\n];\n"],"names":["headerLeadingMenuPath","region","headerTrailingMenuPath","workbenchRegionTabLeadingMenuPath","workbenchRegionTabAddMenuPath","workbenchCommandPaletteMenuPath","workbenchTopHeaderLeadingMenuPath","workbenchTopHeaderTrailingMenuPath","resourceContextMenuPath","resourceKind"],"mappings":"AAEO,MAAMA,IAAwBA,CAACC,MAA6B,CAAC,aAAa,UAAUA,GAAQ,SAAS,GAE/FC,IAAyBA,CAACD,MAA6B,CAAC,aAAa,UAAUA,GAAQ,UAAU,GAEjGE,IAAoCA,CAACF,MAA6B,CAC7E,aACA,cACAA,GACA,SAAS,GAGEG,IAAgCA,CAACH,MAA6B,CAAC,aAAa,cAAcA,GAAQ,KAAK,GAEvGI,IAAkC,CAAC,aAAa,gBAAgB,GAEhEC,IAAoCN,EAAsB,KAAK,GAE/DO,IAAqCL,EAAuB,KAAK,GAEjEM,IAA0BA,CAACC,MAAmC,CACzE,aACA,YACAA,GACA,SAAS;"}