@pstdio/workbench 0.41.0 → 0.43.0-nightly.20261011183426
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/dist/extensions.d.ts +15 -9
- package/dist/extensions.js +323 -250
- package/dist/extensions.js.map +1 -1
- package/dist/{file-renderer-view-CiuJ_aMB.js → file-renderer-view-CTVhwDGe.js} +26 -26
- package/dist/{file-renderer-view-CiuJ_aMB.js.map → file-renderer-view-CTVhwDGe.js.map} +1 -1
- package/dist/{index-Dh0tRr9k.d.ts → index-dbYXNnIr.d.ts} +79 -8
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1668 -1625
- package/dist/index.js.map +1 -1
- package/dist/{kanban-presentation-C21WIlnn.d.ts → kanban-presentation-DnZgAsZo.d.ts} +1 -1
- package/dist/navigation-tree-registry-CIwRvLFJ.js +120 -0
- package/dist/navigation-tree-registry-CIwRvLFJ.js.map +1 -0
- package/dist/react-vsxj0hQ2.js +10718 -0
- package/dist/react-vsxj0hQ2.js.map +1 -0
- package/dist/react.d.ts +53 -12
- package/dist/react.js +2 -2
- package/dist/storage.d.ts +1 -1
- package/dist/webview-runtime.js +1 -1
- package/dist/{workbench-renderers-CUHzLWMx.js → workbench-renderers-Bj4sazP5.js} +94 -36
- package/dist/workbench-renderers-Bj4sazP5.js.map +1 -0
- package/package.json +4 -4
- package/dist/navigation-tree-registry-DkJ3i8ym.js +0 -106
- package/dist/navigation-tree-registry-DkJ3i8ym.js.map +0 -1
- package/dist/react-B-rd34kK.js +0 -9750
- package/dist/react-B-rd34kK.js.map +0 -1
- package/dist/workbench-renderers-CUHzLWMx.js.map +0 -1
package/dist/react.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as ReactResourceContextAction, i as ReactKanbanRendererContribution, n as ReactAttributesSource, r as ReactBoardColumnConfig, t as ReactAttributeDescriptor } from "./kanban-presentation-
|
|
1
|
+
import { Ct as PreferenceRegistry, Dt as PreferenceValue, Fi as CommandParamDescriptor, Fr as TreeAction, Gt as KeybindingSequence, I as WorkbenchModuleContribution, Ii as CommandParamOption, Jr as MenuPath, K as ThemePreferenceOption$1, Kr as WorkbenchPanelRenderInput, Li as CommandParamSchema, M as WorkbenchCore, N as WorkbenchCoreContributionContext, Ni as Command, Qr as WorkbenchFocusRegionId, Qt as WorkbenchTerminalController, St as PreferencePropertySchema, Tt as PreferenceScope, Xr as RegisteredMenuItem, Z as WorkbenchStatusRegistry, bi as WorkbenchRegion$1, ei as RegisteredPlaceholderContribution, er as RegisteredDataTableRendererContribution, ga as WorkbenchStore, ha as Disposable, hi as WorkbenchWidgetPlacement, ii as WorkbenchPanelInstance, qi as ResourceRef$1, ti as RegisteredWidgetContribution, zi as WorkbenchCommandExecutionContext } from "./index-dbYXNnIr.js";
|
|
2
|
+
import { a as ReactResourceContextAction, i as ReactKanbanRendererContribution, n as ReactAttributesSource, r as ReactBoardColumnConfig, t as ReactAttributeDescriptor } from "./kanban-presentation-DnZgAsZo.js";
|
|
3
|
+
import { ResourceAnchor, ResourceAnchorPage, ResourceAnchorQuery, ResourceRef } from "@pstdio/sdk/extensions";
|
|
3
4
|
import { ReactNode } from "react";
|
|
4
|
-
import { FileUploadValue, ParamEditorProps, ParamValue } from "@pstdio/ui/param-editor";
|
|
5
5
|
import { FileIconThemePreferenceOption, ResourceContextAction, ThemePreference, ThemePreferenceOption, ThemePreferenceStorage } from "@pstdio/ui";
|
|
6
|
+
import { FileUploadValue, ParamEditorProps, ParamValue } from "@pstdio/ui/param-editor";
|
|
6
7
|
import { BoxProps, IconProps } from "@chakra-ui/react";
|
|
7
8
|
import { TerminalBridge } from "@pstdio/ui/terminal";
|
|
8
9
|
//#region src/react/breadcrumb/breadcrumb-view.d.ts
|
|
@@ -50,6 +51,10 @@ interface CommandParamFieldProps {
|
|
|
50
51
|
context?: WorkbenchCommandExecutionContext;
|
|
51
52
|
disabled: boolean;
|
|
52
53
|
onChange: (value: CommandParamValue) => void;
|
|
54
|
+
/** Updates a compound field using its latest stored value. */
|
|
55
|
+
onUpdateValue?: (update: (current: CommandParamValue) => CommandParamValue) => void;
|
|
56
|
+
/** Reports host field validation to the containing command form. */
|
|
57
|
+
onValidationChange?: (error: string | undefined) => void;
|
|
53
58
|
}
|
|
54
59
|
type CommandParamFieldRenderer = (props: CommandParamFieldProps) => ReactNode;
|
|
55
60
|
export declare const CommandParamField: (props: Omit<CommandParamFieldProps, "context">) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -57,7 +62,7 @@ export declare const CommandParamField: (props: Omit<CommandParamFieldProps, "co
|
|
|
57
62
|
//#region src/react/command-palette/command-params-dialog.d.ts
|
|
58
63
|
interface CommandParamsRequest {
|
|
59
64
|
record: {
|
|
60
|
-
command: Pick<Command, "id" | "label" | "description" | "params">;
|
|
65
|
+
command: Pick<Command, "id" | "label" | "description" | "params" | "resourceMutation">;
|
|
61
66
|
};
|
|
62
67
|
action?: RegisteredMenuItem;
|
|
63
68
|
label: string;
|
|
@@ -83,7 +88,7 @@ export declare const commandParamName: (entry: CommandParamEntry) => string;
|
|
|
83
88
|
export declare const readCommandParamValue: (value: ParamValue, entry?: CommandParamEntry) => CommandParamValue;
|
|
84
89
|
//#endregion
|
|
85
90
|
//#region src/react/command-palette/use-command-options.d.ts
|
|
86
|
-
export declare const useCommandOptions: (schema: CommandParamSchema, values: Record<string, CommandParamValue>, execute: ExecuteOptionCommand | undefined, onChange: (key: string, value: CommandParamValue) => void) => {
|
|
91
|
+
export declare const useCommandOptions: (schema: CommandParamSchema, values: Record<string, CommandParamValue>, execute: ExecuteOptionCommand | undefined, onChange: (key: string, value: CommandParamValue) => void, resolved?: Record<string, unknown>) => {
|
|
87
92
|
states: Record<string, CommandOptionState>;
|
|
88
93
|
validate: (next: {
|
|
89
94
|
[x: string]: CommandParamValue;
|
|
@@ -151,13 +156,13 @@ interface WorkbenchMenuItem {
|
|
|
151
156
|
readOnly?: true;
|
|
152
157
|
}
|
|
153
158
|
interface WorkbenchMenuItemContext {
|
|
154
|
-
resource?: ResourceRef | undefined;
|
|
159
|
+
resource?: ResourceRef$1 | undefined;
|
|
155
160
|
}
|
|
156
161
|
export declare const listWorkbenchMenuItems: (workbench: WorkbenchCore, menuPath: MenuPath, context?: WorkbenchMenuItemContext) => WorkbenchMenuItem[];
|
|
157
162
|
//#endregion
|
|
158
163
|
//#region src/react/menus/resource-actions.d.ts
|
|
159
|
-
export declare const createWorkbenchResourceActions: (workbench: WorkbenchCoreContributionContext, resource: ResourceRef) => ResourceContextAction[];
|
|
160
|
-
export declare const useWorkbenchResourceActionResolver: (workbench: WorkbenchCoreContributionContext) => (resource: ResourceRef) => ResourceContextAction[];
|
|
164
|
+
export declare const createWorkbenchResourceActions: (workbench: WorkbenchCoreContributionContext, resource: ResourceRef$1) => ResourceContextAction[];
|
|
165
|
+
export declare const useWorkbenchResourceActionResolver: (workbench: WorkbenchCoreContributionContext) => (resource: ResourceRef$1) => ResourceContextAction[];
|
|
161
166
|
//#endregion
|
|
162
167
|
//#region src/react/notifications/notification-host.d.ts
|
|
163
168
|
interface WorkbenchNotificationHostProps {
|
|
@@ -249,7 +254,7 @@ interface WorkbenchTreeViewProps {
|
|
|
249
254
|
workbench: WorkbenchCore;
|
|
250
255
|
treeViewId: string;
|
|
251
256
|
activeNodeId?: string | null;
|
|
252
|
-
resource?: ResourceRef;
|
|
257
|
+
resource?: ResourceRef$1;
|
|
253
258
|
viewId?: string;
|
|
254
259
|
renderParamField?: CommandParamFieldRenderer;
|
|
255
260
|
onOpenResourceError?: (error: unknown) => void;
|
|
@@ -264,6 +269,42 @@ interface WorkbenchConnectionProviderProps {
|
|
|
264
269
|
}
|
|
265
270
|
export declare const WorkbenchConnectionProvider: (props: WorkbenchConnectionProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
266
271
|
//#endregion
|
|
272
|
+
//#region src/react/resource-links/resource-links-types.d.ts
|
|
273
|
+
interface ResourceLinkCandidate {
|
|
274
|
+
resource: ResourceRef;
|
|
275
|
+
description?: string;
|
|
276
|
+
open?: () => void | Promise<void>;
|
|
277
|
+
}
|
|
278
|
+
interface ResourceLinksService {
|
|
279
|
+
list(input: ResourceAnchorQuery): Promise<ResourceAnchorPage>;
|
|
280
|
+
add(source: ResourceRef, targets: ResourceAnchor[]): Promise<void>;
|
|
281
|
+
remove(source: ResourceRef, targets: ResourceRef[]): Promise<void>;
|
|
282
|
+
search(query: string, signal?: AbortSignal): Promise<ResourceLinkCandidate[]>;
|
|
283
|
+
resolve(resources: ResourceRef[], signal?: AbortSignal): Promise<ResourceLinkCandidate[]>;
|
|
284
|
+
subscribe(listener: () => void): () => void;
|
|
285
|
+
}
|
|
286
|
+
//#endregion
|
|
287
|
+
//#region src/react/resource-links/related-resources.d.ts
|
|
288
|
+
interface RelatedResourcesProps {
|
|
289
|
+
resource: ResourceRef;
|
|
290
|
+
service: ResourceLinksService;
|
|
291
|
+
onClose(): void;
|
|
292
|
+
}
|
|
293
|
+
export declare const RelatedResources: (props: RelatedResourcesProps) => import("react/jsx-runtime").JSX.Element;
|
|
294
|
+
//#endregion
|
|
295
|
+
//#region src/react/resource-links/resource-links-module.d.ts
|
|
296
|
+
interface WorkbenchResourceLinksOptions {
|
|
297
|
+
canonicalize(resource: ResourceRef): ResourceRef | undefined;
|
|
298
|
+
createService(resource: ResourceRef): ResourceLinksService;
|
|
299
|
+
}
|
|
300
|
+
export declare const resourceLinksCommandId = "workbench.resources.links";
|
|
301
|
+
export declare const createWorkbenchResourceLinksModule: (options: WorkbenchResourceLinksOptions) => {
|
|
302
|
+
id: string;
|
|
303
|
+
activate(ctx: WorkbenchCoreContributionContext): {
|
|
304
|
+
dispose: () => void;
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
//#endregion
|
|
267
308
|
//#region src/react/settings/settings-resources.d.ts
|
|
268
309
|
export declare const WORKBENCH_SETTINGS_OPEN_COMMAND_ID = "workbench.settings.open";
|
|
269
310
|
//#endregion
|
|
@@ -321,7 +362,7 @@ export declare const WORKBENCH_TERMINAL_PANEL_SIZE: {
|
|
|
321
362
|
minPx: number;
|
|
322
363
|
};
|
|
323
364
|
interface OpenWorkbenchTerminalOptions {
|
|
324
|
-
resource?: ResourceRef;
|
|
365
|
+
resource?: ResourceRef$1;
|
|
325
366
|
reveal?: boolean;
|
|
326
367
|
}
|
|
327
368
|
export declare const openWorkbenchTerminal: (ctx: WorkbenchCoreContributionContext, input?: OpenWorkbenchTerminalOptions) => WorkbenchPanelInstance;
|
|
@@ -338,7 +379,7 @@ export declare const createWorkbenchTerminalModule: () => WorkbenchModuleContrib
|
|
|
338
379
|
//#region src/react/terminal/workbench-terminal-panel.d.ts
|
|
339
380
|
interface ControllerTerminalBridgeOptions {
|
|
340
381
|
getBindingId?: () => string | undefined;
|
|
341
|
-
getResource?: () => ResourceRef | undefined;
|
|
382
|
+
getResource?: () => ResourceRef$1 | undefined;
|
|
342
383
|
getTitle?: () => string | undefined;
|
|
343
384
|
}
|
|
344
385
|
export declare const createControllerTerminalBridge: (terminal: WorkbenchTerminalController, options?: ControllerTerminalBridgeOptions) => TerminalBridge;
|
|
@@ -434,5 +475,5 @@ export declare const disposeWorkbenchModuleHostRegistrations: (registrations: Ma
|
|
|
434
475
|
export declare const syncWorkbenchModuleHostRegistrations: (workbench: WorkbenchCore, registrations: Map<string, WorkbenchModuleHostRegistration>, modules: readonly WorkbenchModuleContribution[]) => void;
|
|
435
476
|
export declare const WorkbenchModuleHost: (props: WorkbenchModuleHostProps) => null;
|
|
436
477
|
//#endregion
|
|
437
|
-
export type { CommandFilesParamValue, CommandOptionState, CommandParamEntry, CommandParamFieldProps, CommandParamFieldRenderer, CommandParamValue, ExecuteOptionCommand, PreferenceParamEntry, ReactAttributeDescriptor, ReactAttributesSource, ReactBoardColumnConfig, ReactKanbanRendererContribution, ReactResourceContextAction, TreeActionParamsRequest, WorkbenchHotkeyRegistration, WorkbenchMenuItem, WorkbenchModuleHostProps, WorkbenchModuleHostRegistration, WorkbenchOverlayWidgetConfig, WorkbenchPanelRenderInput, WorkbenchPreferencesFormProps, WorkbenchSettingsModuleOptions };
|
|
478
|
+
export type { CommandFilesParamValue, CommandOptionState, CommandParamEntry, CommandParamFieldProps, CommandParamFieldRenderer, CommandParamValue, ExecuteOptionCommand, PreferenceParamEntry, ReactAttributeDescriptor, ReactAttributesSource, ReactBoardColumnConfig, ReactKanbanRendererContribution, ReactResourceContextAction, ResourceLinkCandidate, ResourceLinksService, TreeActionParamsRequest, WorkbenchHotkeyRegistration, WorkbenchMenuItem, WorkbenchModuleHostProps, WorkbenchModuleHostRegistration, WorkbenchOverlayWidgetConfig, WorkbenchPanelRenderInput, WorkbenchPreferencesFormProps, WorkbenchResourceLinksOptions, WorkbenchSettingsModuleOptions };
|
|
438
479
|
export {};
|
package/dist/react.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as v, S as y, T as b, U as x, V as S, W as C, X as w, Y as T, Z as E, _ as D, at as O, b as k, ct as A, d as j,
|
|
2
|
-
export {
|
|
1
|
+
import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as v, S as y, T as b, U as x, V as S, W as C, X as w, Y as T, Z as E, _ as D, at as O, b as k, ct as A, d as j, dt as M, et as N, f as P, g as F, h as I, i as L, it as R, j as z, k as B, lt as V, m as H, n as U, nt as W, ot as G, p as K, q, r as J, rt as Y, st as X, t as Z, tt as Q, ut as $, v as ee, w as te, x as ne, y as re, z as ie } from "./react-vsxj0hQ2.js";
|
|
2
|
+
export { Y as CommandOptionStatus, N as CommandParamField, p as RelatedResources, b as WORKBENCH_SETTINGS_NAV_WIDGET_ID, B as WORKBENCH_SETTINGS_OPEN_COMMAND_ID, a as WORKBENCH_SETTINGS_PANEL_WIDGET_ID, i as WORKBENCH_SETTINGS_WIDGET_ID, I as WORKBENCH_TERMINAL_OPEN_COMMAND_ID, F as WORKBENCH_TERMINAL_PANEL_SIZE, D as WORKBENCH_TERMINAL_WIDGET_ID, L as Workbench, r as WorkbenchAttachedSidePanel, R as WorkbenchBreadcrumbView, _ as WorkbenchCommandPalette, v as WorkbenchConnectionProvider, f as WorkbenchDataTableView, te as WorkbenchFloatingSidePanel, E as WorkbenchFocusRegion, T as WorkbenchHeaderActions, M as WorkbenchIcon, d as WorkbenchKeybindingDispatcher, Z as WorkbenchModuleHost, c as WorkbenchNotificationHost, j as WorkbenchOverlayLayer, g as WorkbenchPreferencesForm, n as WorkbenchRegion, ie as WorkbenchRegionTabs, k as WorkbenchTerminalPanel, K as WorkbenchThemeProvider, P as WorkbenchThemeScope, m as WorkbenchTreeView, S as WorkbenchWidgetHost, y as WorkflowStatusSettings, G as buildCommandParamInitialValues, Q as commandParamName, X as createCommandFilesParamValue, ne as createControllerTerminalBridge, s as createTreeContextMenuItems, q as createWorkbenchHotkeyRegistrations, x as createWorkbenchResourceActions, t as createWorkbenchResourceLinksModule, h as createWorkbenchSettingsModule, ee as createWorkbenchTerminalModule, U as disposeWorkbenchModuleHostRegistrations, A as isCommandFilesParamValue, V as listCommandParamEntries, w as listWorkbenchMenuItems, $ as normalizeCommandParamValues, u as normalizeWorkbenchKeybinding, re as openWorkbenchTerminal, o as paramValueToPreference, l as preferenceSchemaToParams, W as readCommandParamValue, z as resourceLinksCommandId, J as syncWorkbenchModuleHostRegistrations, e as useCommandOptions, C as useWorkbenchResourceActionResolver, O as useWorkbenchStore, H as useWorkbenchThemePreferences };
|
package/dist/storage.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $r as LayoutPersistenceAdapter, B as WorkbenchPersistenceAdapter, Ur as TreeRendererPersistenceAdapter, fn as WorkbenchPanelMenuStatePersistenceAdapter, it as WorkbenchStatusBarPersistenceAdapter, vn as WorkbenchPageLocationPersistence } from "./index-dbYXNnIr.js";
|
|
2
2
|
//#region src/storage/local-storage-persistence-helpers.d.ts
|
|
3
3
|
interface WorkbenchStorageLike {
|
|
4
4
|
readonly length?: number;
|
package/dist/webview-runtime.js
CHANGED
|
@@ -27,7 +27,7 @@ var e = "pstdio-extension-mount", t = (e) => e.replaceAll("&", "&").replaceA
|
|
|
27
27
|
${t}
|
|
28
28
|
</body>
|
|
29
29
|
</html>
|
|
30
|
-
`, i = (e) => r(`<script src="${t(e)}"><\/script>`), a = (e) => r(`<script>${n(e)}<\/script>`), o = () => "// Generated by packages/pstdio-extensions/scripts/build-runtime.ts\nfunction te(){let e=globalThis;if(e.window!==void 0&&e.document!==void 0)return\"browser\";if(e.WorkerGlobalScope!==void 0&&e.self!==void 0&&e.self instanceof e.WorkerGlobalScope||e.window===void 0&&e.self!==void 0&&typeof e.importScripts==\"function\")return\"worker\";let t=e.process;if(t&&typeof t==\"object\"){let n=t.versions??{},s=t.release?.name;if(n.bun||s===\"bun\"||e.Bun!==void 0)return\"bun\";if(n.node&&s===\"node\")return\"node\"}return e.Bun===void 0?\"browser\":\"bun\"}function M(){return te()}function B(){return M()===\"worker\"}function z(){let e=M();return e===\"node\"||e===\"bun\"}function ne(){return window.self!==window.top}function re(e){let t={};return function n(s,i=\"\"){Object.keys(s).forEach((r)=>{let o=i?`${i}.${r}`:r;s[r]===Object(s[r])&&n(s[r],o),typeof s[r]==\"function\"&&(t[o]=s[r],delete s[r])})}(e),t}function se(e){return!e||e===\"null\"?\"*\":e}function oe(e,t,n){if(!e||typeof e!=\"object\")return e;let s=Array.isArray(t)?t:t.split(\".\").map((r)=>r.match(/^\\d+$/)?Number(r):r),i=e;for(let r=0;r<s.length;r++){let o=s[r];r===s.length-1?i[o]=n:((!i[o]||typeof i[o]!=\"object\")&&(i[o]=typeof s[r+1]==\"number\"?[]:{}),i=i[o])}return e}function ie(e=10){let t=\"\";for(let n=0;n<e;n++)t+=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".charAt(Math.floor(Math.random()*62));return t}var V=M(),P=null;if(V===\"node\"||V===\"bun\")try{let e=globalThis.require;P=e?.(\"node:worker_threads\")?.parentPort??null}catch{}function ae(){if(z())return P;if(B())return self;if(ne())return window.parent;throw Error(\"No valid target found for postMessage\")}function C(e,t,n,s){if(!e)throw Error(\"Rimless Error: No target specified for postMessage\");if(z()&&e===P){e.postMessage(t,{transfer:s});return}if(B()){e.postMessage(t,{transfer:s});return}if(e.postMessage){e.postMessage(t,{targetOrigin:se(n),transfer:s});return}throw Error(\"Rimless Error: Invalid target for postMessage\")}function G(e){return P!==null&&e===P}function L(e,t,n){G(e)?e.on(t,n):(\"addEventListener\"in e)&&e.addEventListener(t,n)}function O(e,t,n){G(e)?e.off(t,n):(\"removeEventListener\"in e)&&e.removeEventListener(t,n)}function N(e){return e.data||e}var S=function(e){return e.MESSAGE=\"message\",e}({}),y=function(e){return e.HANDSHAKE_REQUEST=\"RIMLESS/HANDSHAKE_REQUEST\",e.HANDSHAKE_REPLY=\"RIMLESS/HANDSHAKE_REPLY\",e.RPC_REQUEST=\"RIMLESS/RPC_REQUEST\",e.RPC_RESOLVE=\"RIMLESS/RPC_RESOLVE\",e.RPC_REJECT=\"RIMLESS/RPC_REJECT\",e}({}),b=Symbol();function ce(e={},t,n,s,i){let r=[];for(let[o,d]of Object.entries(e)){async function a(p){let{action:E,callID:m,connectionID:f,callName:w,args:v=[]}=N(p);if(E!==y.RPC_REQUEST||!m||!w||w!==o||f!==t)return;let g={action:y.RPC_RESOLVE,callID:m,callName:w,connectionID:f,error:null,result:null},R;try{g.result=await d(...v,i),g.result?.[b]&&(R=g.result[b]??[],delete g.result[b])}catch(A){g.action=y.RPC_REJECT,g.error=JSON.parse(JSON.stringify(A,Object.getOwnPropertyNames(A)))}C(s,g,p?.origin,R)}L(n,S.MESSAGE,a),r.push(()=>O(n,S.MESSAGE,a))}return()=>r.forEach((o)=>o())}function de(e,t,n,s=[],i,r){return(...o)=>new Promise((d,a)=>{let p=ie();function E(w){let{callID:v,connectionID:g,callName:R,result:A,error:ee,action:W}=N(w);if(!(!v||!R)&&R===e&&v===p&&g===t){if(W===y.RPC_RESOLVE)return d(A);if(W===y.RPC_REJECT)return a(ee)}}let m={action:y.RPC_REQUEST,args:o,callID:p,callName:e,connectionID:t},f=o.reduce((w,v)=>v[b]?.length?w.concat(v[b]):w,o[b]??[]);L(i,S.MESSAGE,E),s.push(()=>O(i,S.MESSAGE,E)),C(r,m,n?.origin,f)})}function le(e={},t=[],n,s,i,r){let o={...e},d=[];for(let a of t)oe(o,a,de(a,n,s,d,i,r));return{remote:o,unregisterRemote:()=>d.forEach((a)=>a())}}function fe(e={},t){return new Promise(async(n)=>{let s=re(e),i=ae(),r=self||window;async function o(d){let a=N(d);if(a?.action!==y.HANDSHAKE_REPLY)return;let{remote:p,unregisterRemote:E}=le(a.schema,a.methodNames,a.connectionID,d,r,i),m=ce(s,a.connectionID,r,i,p);return await t?.onConnectionSetup?.(p),C(i,{action:y.HANDSHAKE_REPLY,connectionID:a.connectionID},d?.origin),n({remote:p,close:()=>{O(r,S.MESSAGE,o),E(),m()},id:a.connectionID})}L(r,S.MESSAGE,o),C(i,{action:y.HANDSHAKE_REQUEST,methodNames:Object.keys(s),schema:e})})}var F={connect:fe};var ue=(e)=>typeof e===\"object\"&&e!==null,J=(e)=>{try{let t=JSON.stringify(e);if(typeof t===\"string\"&&t.length>0)return t}catch{}try{return String(e)}catch{return\"Unknown error\"}},T=(e)=>{if(e instanceof Error)return{message:e.message,stack:e.stack};if(typeof e===\"string\")return{message:e};if(ue(e)){let t=typeof e.message===\"string\"?e.message:null,n=typeof e.stack===\"string\"?e.stack:void 0;if(t)return n?{message:t,stack:n}:{message:t};return{message:J(e)}}if(e===null||e===void 0)return{message:\"Unknown error\"};return{message:J(e)}};var H=\"(?:0|[1-9]\\\\d*)\",xe=new RegExp(`^\\\\^(${H}\\\\.${H}\\\\.${H})$`);var _=[\"sidenav\",\"main\",\"secondary\",\"side\"];var u=(e,t)=>({extensionId:\"pstdio\",kind:e,id:t}),h={project:u(\"mode\",\"project\"),sessions:u(\"mode\",\"sessions\"),settings:u(\"mode\",\"settings\")},Ae={project:{ref:h.project,regions:_},sessions:{ref:h.sessions,regions:_},settings:{ref:h.settings,regions:_}},U=(e,t,n)=>({id:e,ref:u(\"resource-kind\",e),label:t,menuSlots:n}),D=[{id:\"headerPrimary\",placement:\"header-primary\",access:\"public\"},{id:\"headerOverflow\",placement:\"header-overflow\",access:\"public\"}],K={project:U(\"project\",\"Extension\",D),session:U(\"session\",\"Session\",D),workspace:U(\"workspace\",\"Workspace\",D)},k={project:K.project.ref,session:K.session.ref,workspace:K.workspace.ref},x={start:u(\"page\",\"start\"),sessions:u(\"page\",\"sessions\"),session:u(\"page\",\"session\"),workspaces:u(\"page\",\"workspaces\"),workspace:u(\"page\",\"workspace\")},Ce={start:{ref:x.start,mode:h.project,path:\"\",primary:{cardinality:\"one\",resourceKinds:[]}},sessions:{ref:x.sessions,mode:h.sessions,path:\"sessions\",primary:{cardinality:\"one\",resourceKinds:[]}},session:{ref:x.session,mode:h.sessions,path:\"session\",primary:{cardinality:\"one\",resourceKinds:[\"session\",\"session-draft\"]}},workspaces:{ref:x.workspaces,mode:h.project,path:\"workspaces\",primary:{cardinality:\"one\",resourceKinds:[]}},workspace:{ref:x.workspace,mode:h.project,path:\"workspace\",primary:{cardinality:\"many\",resourceKinds:[\"workspace\"]}}},pe={projectSession:u(\"placement\",\"project-session\")},Te={projectSession:{ref:pe.projectSession,mode:h.project,cardinality:\"many\",resourceKinds:[\"session\",\"session-draft\"]}},je={projectSettings:u(\"settings-panel\",\"project.settings\"),statusBarLeading:u(\"status-bar-item\",\"status-bar.leading\"),statusBarTrailing:u(\"status-bar-item\",\"status-bar.trailing\")};var q=(e)=>({...e,kind:\"command\"}),Me=Object.assign(q,{forExtension:(e)=>(t)=>q({extensionId:`${e.publisher}.${e.name}`,id:t})}),me=(e)=>({...e,kind:\"event\"}),j=(e,t)=>({id:e,kind:t.kind,label:t.label,description:t.description,metadata:t.metadata}),l=(e)=>me({extensionId:\"pstdio\",id:e}),I=(e,t)=>j(`${e.id}.${t}`,{kind:\"menu\"}),Le={sidenav:j(\"project.sidenav\",{kind:\"panel\"}),headerPrimary:I(k.project,\"headerPrimary\"),headerOverflow:I(k.project,\"headerOverflow\"),settingsPanels:j(\"project.settingsPanels\",{kind:\"settings\"})},Oe={headerPrimary:I(k.session,\"headerPrimary\"),headerOverflow:I(k.session,\"headerOverflow\")},Ne={headerPrimary:I(k.workspace,\"headerPrimary\"),headerOverflow:I(k.workspace,\"headerOverflow\"),sidenav:j(\"workspace.sidenav\",{kind:\"panel\"})},$e={opened:l(\"project.opened\")},He={sessionsChanged:l(\"view.sessions.changed\"),workspacesChanged:l(\"view.workspaces.changed\"),repositoriesChanged:l(\"view.repositories.changed\")},_e={started:l(\"session.started\"),resumed:l(\"session.resumed\"),awaitingInput:l(\"session.awaitingInput\"),succeeded:l(\"session.succeeded\"),failed:l(\"session.failed\"),completed:l(\"session.completed\")},Ue={created:l(\"workspace.created\"),provision:l(\"workspace.provision\"),ready:l(\"workspace.ready\"),archived:l(\"workspace.archived\"),deleted:l(\"workspace.deleted\")},De={removed:l(\"worktree.removed\")},Ke={committed:l(\"git.committed\"),rebased:l(\"git.rebased\"),merged:l(\"git.merged\"),conflicted:l(\"git.conflicted\")};var ge=[\"clipboard.write\",\"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\"],ye=[\"artifacts.read\"],he=[\"host.dispatchKeyboardEvent\"],We=[...ge.filter((e)=>e!==\"clipboard.write\"),...ye,...he];var c=(e)=>(t)=>({...t,ref:{kind:e,id:t.id}}),Ve=c(\"view\"),Be=c(\"view-menu\"),ze=c(\"placement\"),Ge=c(\"resource-kind\");var Fe=c(\"navigation-item\"),Je=c(\"navigation-tree\"),qe=c(\"mode\");var Ye=c(\"status-bar-item\"),Qe=c(\"status\"),Xe=c(\"settings-panel\"),Ze=c(\"activity-item\"),et=c(\"settings-section\"),tt=c(\"command-palette-resource\"),nt=c(\"keybinding\"),rt=c(\"schedule\"),st=c(\"artifact-mount\"),ot=c(\"template-type\"),it=c(\"template\"),at=c(\"skill\"),ct=c(\"theme\"),dt=c(\"file-icon-theme\"),lt=c(\"workspace-type\"),ft=c(\"harness\"),ut=c(\"connection\");var Y=(e,t,n)=>({call:async(s,...i)=>{try{return await e({method:s,params:i[0]})}catch(r){if(r instanceof Error)throw r;throw Error(T(r).message)}},onEvent:t,extensionId:n}),Q=(e)=>{let t=e,n=new Set;return{get:()=>t,subscribe:(s)=>(n.add(s),()=>n.delete(s)),set:(s)=>{t=s;for(let i of n)i(t)}}};var X=\"pstdio-extension-mount\",Ee=()=>{let e=new Map;return{get length(){return e.size},clear:()=>e.clear(),getItem:(t)=>e.get(t)??null,key:(t)=>Array.from(e.keys())[t]??null,removeItem:(t)=>e.delete(t),setItem:(t,n)=>e.set(t,n)}},we=()=>{for(let e of[\"localStorage\",\"sessionStorage\"])try{window[e]}catch{Object.defineProperty(window,e,{configurable:!0,value:Ee()})}},Z=(e,t)=>{let n=document.documentElement,s=e===\"dark\"?\"light\":\"dark\";n.classList.remove(s),n.classList.add(e),n.setAttribute(\"data-theme\",e),n.style.colorScheme=e;for(let[i,r]of Object.entries(t))if(i.startsWith(\"--\"))n.style.setProperty(i,r)},ve=(e)=>{for(let t of e){let n=document.createElement(\"link\");n.rel=\"stylesheet\",n.href=t,document.head.appendChild(n)}},be=()=>{let e=document.getElementById(X);if(!e)e=document.createElement(\"div\"),e.id=X,e.style.height=\"100%\",e.style.width=\"100%\",document.body.appendChild(e);return e},Se=()=>{window.addEventListener(\"message\",(e)=>{let t=e.data?.action;if(typeof t!==\"string\"||!t.startsWith(\"RIMLESS/\"))return;if(e.source!==window.parent)e.stopImmediatePropagation()},{capture:!0})},ke=(e)=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLElement&&e.isContentEditable,Ie=async()=>{we(),Se();let e=Q(void 0),t=new Map,n=(o,d)=>{let a=t.get(o)??new Set;return a.add(d),t.set(o,a),()=>{a.delete(d)}},s,i=!1,r=await F.connect({init:async(o)=>{try{Z(o.theme,o.themeVariables),ve(o.styles),e.set(o.props);let d=be(),a=await import(o.moduleUrl),p=a.default??(a.mount?a:void 0);if(!p?.mount)throw Error(\"Extension module does not export a default view (defineExtensionView).\");let E=Y((f)=>r.remote.call(f),n,o.extensionId),m=await p.mount(d,E,e);if(s=typeof m===\"function\"?m:void 0,!i)i=!0,document.addEventListener(\"keydown\",(f)=>{if(!f.ctrlKey&&!f.metaKey&&!f.altKey)return;if(ke(f.target)&&!f.shiftKey)return;r.remote.call({method:\"host.dispatchKeyboardEvent\",params:{key:f.key,code:f.code,ctrlKey:f.ctrlKey,metaKey:f.metaKey,altKey:f.altKey,shiftKey:f.shiftKey,repeat:f.repeat}}).catch(()=>{})},!0)}catch(d){let a=T(d);throw r.remote.runtimeError(a),d instanceof Error?d:Error(a.message)}},themeUpdate:(o)=>{Z(o.theme,o.variables)},propsUpdate:(o)=>{e.set(o.props)},hostEvent:(o)=>{for(let d of t.get(o.scope)??[])d(o.payload)}});r.remote.ready({}),window.addEventListener(\"beforeunload\",()=>{s?.()})};Ie();\n";
|
|
30
|
+
`, i = (e) => r(`<script src="${t(e)}"><\/script>`), a = (e) => r(`<script>${n(e)}<\/script>`), o = () => "// Generated by packages/pstdio-extensions/scripts/build-runtime.ts\nfunction re(){let e=globalThis;if(e.window!==void 0&&e.document!==void 0)return\"browser\";if(e.WorkerGlobalScope!==void 0&&e.self!==void 0&&e.self instanceof e.WorkerGlobalScope||e.window===void 0&&e.self!==void 0&&typeof e.importScripts==\"function\")return\"worker\";let t=e.process;if(t&&typeof t==\"object\"){let n=t.versions??{},r=t.release?.name;if(n.bun||r===\"bun\"||e.Bun!==void 0)return\"bun\";if(n.node&&r===\"node\")return\"node\"}return e.Bun===void 0?\"browser\":\"bun\"}function M(){return re()}function z(){return M()===\"worker\"}function B(){let e=M();return e===\"node\"||e===\"bun\"}function se(){return window.self!==window.top}function oe(e){let t={};return function n(r,a=\"\"){Object.keys(r).forEach((s)=>{let o=a?`${a}.${s}`:s;r[s]===Object(r[s])&&n(r[s],o),typeof r[s]==\"function\"&&(t[o]=r[s],delete r[s])})}(e),t}function ie(e){return!e||e===\"null\"?\"*\":e}function ae(e,t,n){if(!e||typeof e!=\"object\")return e;let r=Array.isArray(t)?t:t.split(\".\").map((s)=>s.match(/^\\d+$/)?Number(s):s),a=e;for(let s=0;s<r.length;s++){let o=r[s];s===r.length-1?a[o]=n:((!a[o]||typeof a[o]!=\"object\")&&(a[o]=typeof r[s+1]==\"number\"?[]:{}),a=a[o])}return e}function ce(e=10){let t=\"\";for(let n=0;n<e;n++)t+=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".charAt(Math.floor(Math.random()*62));return t}var V=M(),x=null;if(V===\"node\"||V===\"bun\")try{let e=globalThis.require;x=e?.(\"node:worker_threads\")?.parentPort??null}catch{}function de(){if(B())return x;if(z())return self;if(se())return window.parent;throw Error(\"No valid target found for postMessage\")}function A(e,t,n,r){if(!e)throw Error(\"Rimless Error: No target specified for postMessage\");if(B()&&e===x){e.postMessage(t,{transfer:r});return}if(z()){e.postMessage(t,{transfer:r});return}if(e.postMessage){e.postMessage(t,{targetOrigin:ie(n),transfer:r});return}throw Error(\"Rimless Error: Invalid target for postMessage\")}function G(e){return x!==null&&e===x}function L(e,t,n){G(e)?e.on(t,n):(\"addEventListener\"in e)&&e.addEventListener(t,n)}function O(e,t,n){G(e)?e.off(t,n):(\"removeEventListener\"in e)&&e.removeEventListener(t,n)}function _(e){return e.data||e}var E=function(e){return e.MESSAGE=\"message\",e}({}),g=function(e){return e.HANDSHAKE_REQUEST=\"RIMLESS/HANDSHAKE_REQUEST\",e.HANDSHAKE_REPLY=\"RIMLESS/HANDSHAKE_REPLY\",e.RPC_REQUEST=\"RIMLESS/RPC_REQUEST\",e.RPC_RESOLVE=\"RIMLESS/RPC_RESOLVE\",e.RPC_REJECT=\"RIMLESS/RPC_REJECT\",e}({}),v=Symbol();function le(e={},t,n,r,a){let s=[];for(let[o,i]of Object.entries(e)){async function c(p){let{action:m,callID:h,connectionID:R,callName:I,args:w=[]}=_(p);if(m!==g.RPC_REQUEST||!h||!I||I!==o||R!==t)return;let f={action:g.RPC_RESOLVE,callID:h,callName:I,connectionID:R,error:null,result:null},C;try{f.result=await i(...w,a),f.result?.[v]&&(C=f.result[v]??[],delete f.result[v])}catch(k){f.action=g.RPC_REJECT,f.error=JSON.parse(JSON.stringify(k,Object.getOwnPropertyNames(k)))}A(r,f,p?.origin,C)}L(n,E.MESSAGE,c),s.push(()=>O(n,E.MESSAGE,c))}return()=>s.forEach((o)=>o())}function fe(e,t,n,r=new Set,a,s){return(...o)=>new Promise((i,c)=>{let p=ce();function m(){O(a,E.MESSAGE,h),r.delete(m)}function h(w){let{callID:f,connectionID:C,callName:k,result:te,error:ne,action:W}=_(w);if(!(!f||!k)&&k===e&&f===p&&C===t){if(W===g.RPC_RESOLVE)return m(),i(te);if(W===g.RPC_REJECT)return m(),c(ne)}}let R={action:g.RPC_REQUEST,args:o,callID:p,callName:e,connectionID:t},I=o.reduce((w,f)=>f[v]?.length?w.concat(f[v]):w,o[v]??[]);L(a,E.MESSAGE,h),r.add(m),A(s,R,n?.origin,I)})}function ue(e={},t=[],n,r,a,s){let o={...e},i=new Set;for(let c of t)ae(o,c,fe(c,n,r,i,a,s));return{remote:o,unregisterRemote:()=>i.forEach((c)=>c())}}function pe(e={},t){return new Promise(async(n)=>{let r=oe(e),a=de(),s=self||window;async function o(i){let c=_(i);if(c?.action!==g.HANDSHAKE_REPLY)return;let{remote:p,unregisterRemote:m}=ue(c.schema,c.methodNames,c.connectionID,i,s,a),h=le(r,c.connectionID,s,a,p);return await t?.onConnectionSetup?.(p),A(a,{action:g.HANDSHAKE_REPLY,connectionID:c.connectionID},i?.origin),n({remote:p,close:()=>{O(s,E.MESSAGE,o),m(),h()},id:c.connectionID})}L(s,E.MESSAGE,o),A(a,{action:g.HANDSHAKE_REQUEST,methodNames:Object.keys(r),schema:e})})}var J={connect:pe};var me=(e)=>typeof e===\"object\"&&e!==null,q=(e)=>{try{let t=JSON.stringify(e);if(typeof t===\"string\"&&t.length>0)return t}catch{}try{return String(e)}catch{return\"Unknown error\"}},T=(e)=>{if(e instanceof Error)return{message:e.message,stack:e.stack};if(typeof e===\"string\")return{message:e};if(me(e)){let t=typeof e.message===\"string\"?e.message:null,n=typeof e.stack===\"string\"?e.stack:void 0;if(t)return n?{message:t,stack:n}:{message:t};return{message:q(e)}}if(e===null||e===void 0)return{message:\"Unknown error\"};return{message:q(e)}};var N=\"(?:0|[1-9]\\\\d*)\",Ae=new RegExp(`^\\\\^(${N}\\\\.${N}\\\\.${N})$`);var H=[\"sidenav\",\"main\",\"secondary\",\"side\"];var u=(e,t)=>({extensionId:\"pstdio\",kind:e,id:t}),y={project:u(\"mode\",\"project\"),sessions:u(\"mode\",\"sessions\"),settings:u(\"mode\",\"settings\")},Te={project:{ref:y.project,regions:H},sessions:{ref:y.sessions,regions:H},settings:{ref:y.settings,regions:H}},U=(e,t,n)=>({id:e,ref:u(\"resource-kind\",e),label:t,menuSlots:n}),D=[{id:\"headerPrimary\",placement:\"header-primary\",access:\"public\"},{id:\"headerOverflow\",placement:\"header-overflow\",access:\"public\"}],K={project:U(\"project\",\"Extension\",D),session:U(\"session\",\"Session\",D),workspace:U(\"workspace\",\"Workspace\",D)},b={project:K.project.ref,session:K.session.ref,workspace:K.workspace.ref},P={start:u(\"page\",\"start\"),sessions:u(\"page\",\"sessions\"),session:u(\"page\",\"session\"),workspaces:u(\"page\",\"workspaces\"),workspace:u(\"page\",\"workspace\")},je={start:{ref:P.start,mode:y.project,path:\"\",primary:{cardinality:\"one\",resourceKinds:[]}},sessions:{ref:P.sessions,mode:y.sessions,path:\"sessions\",primary:{cardinality:\"one\",resourceKinds:[]}},session:{ref:P.session,mode:y.sessions,path:\"session\",primary:{cardinality:\"one\",resourceKinds:[\"session\",\"session-draft\"]}},workspaces:{ref:P.workspaces,mode:y.project,path:\"workspaces\",primary:{cardinality:\"one\",resourceKinds:[]}},workspace:{ref:P.workspace,mode:y.project,path:\"workspace\",primary:{cardinality:\"many\",resourceKinds:[\"workspace\"]}}},ge={projectSession:u(\"placement\",\"project-session\")},Me={projectSession:{ref:ge.projectSession,mode:y.project,cardinality:\"many\",resourceKinds:[\"session\",\"session-draft\"]}},Le={projectSettings:u(\"settings-panel\",\"project.settings\"),statusBarLeading:u(\"status-bar-item\",\"status-bar.leading\"),statusBarTrailing:u(\"status-bar-item\",\"status-bar.trailing\")};var F=(e)=>({...e,kind:\"command\"}),Oe=Object.assign(F,{forExtension:(e)=>(t)=>F({extensionId:`${e.publisher}.${e.name}`,id:t})}),ye=(e)=>({...e,kind:\"event\"}),j=(e,t)=>({id:e,kind:t.kind,label:t.label,description:t.description,metadata:t.metadata}),l=(e)=>ye({extensionId:\"pstdio\",id:e}),S=(e,t)=>j(`${e.id}.${t}`,{kind:\"menu\"}),$e={sidenav:j(\"project.sidenav\",{kind:\"panel\"}),headerPrimary:S(b.project,\"headerPrimary\"),headerOverflow:S(b.project,\"headerOverflow\"),settingsPanels:j(\"project.settingsPanels\",{kind:\"settings\"})},_e={headerPrimary:S(b.session,\"headerPrimary\"),headerOverflow:S(b.session,\"headerOverflow\")},Ne={headerPrimary:S(b.workspace,\"headerPrimary\"),headerOverflow:S(b.workspace,\"headerOverflow\"),sidenav:j(\"workspace.sidenav\",{kind:\"panel\"})},He={opened:l(\"project.opened\")},Ue={boardViewsChanged:l(\"view.board-views.changed\"),resourceAnchorsChanged:l(\"view.resource-anchors.changed\"),sessionsChanged:l(\"view.sessions.changed\"),workspacesChanged:l(\"view.workspaces.changed\"),repositoriesChanged:l(\"view.repositories.changed\")},De={started:l(\"session.started\"),resumed:l(\"session.resumed\"),awaitingInput:l(\"session.awaitingInput\"),succeeded:l(\"session.succeeded\"),failed:l(\"session.failed\"),completed:l(\"session.completed\")},Ke={created:l(\"workspace.created\"),provision:l(\"workspace.provision\"),ready:l(\"workspace.ready\"),archived:l(\"workspace.archived\"),deleted:l(\"workspace.deleted\")},We={removed:l(\"worktree.removed\")},Ve={committed:l(\"git.committed\"),rebased:l(\"git.rebased\"),merged:l(\"git.merged\"),conflicted:l(\"git.conflicted\")};var he=[\"clipboard.write\",\"commands.execute\",\"commands.stream\",\"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\"],we=[\"artifacts.read\"],ve=[\"host.dispatchKeyboardEvent\"],ze=[...he.filter((e)=>e!==\"clipboard.write\"),...we,...ve];var d=(e)=>(t)=>({...t,ref:{kind:e,id:t.id}}),Be=d(\"view\"),Ge=d(\"view-menu\"),Je=d(\"placement\"),qe=d(\"resource-kind\");var Fe=d(\"navigation-item\"),Ye=d(\"navigation-tree\"),Qe=d(\"mode\");var Xe=d(\"status-bar-item\"),Ze=d(\"status\"),et=d(\"settings-panel\"),tt=d(\"activity-item\"),nt=d(\"settings-section\"),rt=d(\"command-palette-resource\"),st=d(\"keybinding\"),ot=d(\"schedule\"),it=d(\"artifact-mount\"),at=d(\"template-type\"),ct=d(\"template\"),dt=d(\"skill\"),lt=d(\"theme\"),ft=d(\"file-icon-theme\"),ut=d(\"workspace-type\"),pt=d(\"harness\"),mt=d(\"connection\");var Y=(e,t,n)=>({call:async(r,...a)=>{try{return await e({method:r,params:a[0]})}catch(s){if(s instanceof Error)throw s;throw Error(T(s).message)}},onEvent:t,extensionId:n}),Q=(e)=>{let t=e,n=new Set;return{get:()=>t,subscribe:(r)=>(n.add(r),()=>n.delete(r)),set:(r)=>{t=r;for(let a of n)a(t)}}};var X=(e)=>{let t,n,r=!1;return{initialize:(a)=>{if(r)return Promise.resolve();return t??=e(a).then((s)=>{if(typeof s!==\"function\")return;if(r)s();else n=s}),t},dispose:()=>{r=!0,n?.(),n=void 0}}};var Z=\"pstdio-extension-mount\",Ee=()=>{let e=new Map;return{get length(){return e.size},clear:()=>e.clear(),getItem:(t)=>e.get(t)??null,key:(t)=>Array.from(e.keys())[t]??null,removeItem:(t)=>e.delete(t),setItem:(t,n)=>e.set(t,n)}},be=()=>{for(let e of[\"localStorage\",\"sessionStorage\"])try{window[e]}catch{Object.defineProperty(window,e,{configurable:!0,value:Ee()})}},ee=(e,t)=>{let n=document.documentElement,r=e===\"dark\"?\"light\":\"dark\";n.classList.remove(r),n.classList.add(e),n.setAttribute(\"data-theme\",e),n.style.colorScheme=e;for(let[a,s]of Object.entries(t))if(a.startsWith(\"--\"))n.style.setProperty(a,s)},Se=(e)=>{for(let t of e){let n=document.createElement(\"link\");n.rel=\"stylesheet\",n.href=t,document.head.appendChild(n)}},Ie=()=>{let e=document.getElementById(Z);if(!e)e=document.createElement(\"div\"),e.id=Z,e.style.height=\"100%\",e.style.width=\"100%\",document.body.appendChild(e);return e},ke=()=>{window.addEventListener(\"message\",(e)=>{let t=e.data?.action;if(typeof t!==\"string\"||!t.startsWith(\"RIMLESS/\"))return;if(e.source!==window.parent)e.stopImmediatePropagation()},{capture:!0})},xe=(e)=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLElement&&e.isContentEditable,Pe=async()=>{be(),ke();let e=Q(void 0),t=new Map,n=(o,i)=>{let c=t.get(o)??new Set;return c.add(i),t.set(o,c),()=>{c.delete(i)}},r=X(async(o)=>{Se(o.styles);let i=await import(o.moduleUrl),c=i.default??(i.mount?i:void 0);if(!c?.mount)throw Error(\"Extension module does not export a default view (defineExtensionView).\");let p=Y((m)=>s.remote.call(m),n,o.extensionId);return await c.mount(Ie(),p,e)}),a=!1,s=await J.connect({init:async(o)=>{try{if(ee(o.theme,o.themeVariables),e.set(o.props),await r.initialize(o),!a)a=!0,document.addEventListener(\"keydown\",(i)=>{if(!i.ctrlKey&&!i.metaKey&&!i.altKey)return;if(xe(i.target)&&!i.shiftKey)return;s.remote.call({method:\"host.dispatchKeyboardEvent\",params:{key:i.key,code:i.code,ctrlKey:i.ctrlKey,metaKey:i.metaKey,altKey:i.altKey,shiftKey:i.shiftKey,repeat:i.repeat}}).catch(()=>{})},!0)}catch(i){let c=T(i);throw s.remote.runtimeError(c),i instanceof Error?i:Error(c.message)}},themeUpdate:(o)=>{ee(o.theme,o.variables)},propsUpdate:(o)=>{e.set(o.props)},hostEvent:(o)=>{for(let i of t.get(o.scope)??[])i(o.payload)}});s.remote.ready({}),window.addEventListener(\"beforeunload\",()=>{r.dispose()})};Pe();\n";
|
|
31
31
|
//#endregion
|
|
32
32
|
export { o as getExtensionRuntimeScript, i as renderExtensionRuntimeHtml, a as renderInlineExtensionRuntimeHtml };
|
|
33
33
|
|
|
@@ -630,56 +630,113 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
|
|
|
630
630
|
"regionTabs",
|
|
631
631
|
e,
|
|
632
632
|
"add"
|
|
633
|
-
], He = ["workbench", "commandPalette"], Ue = B("nav"), We = V("nav"), Ge =
|
|
633
|
+
], He = ["workbench", "commandPalette"], Ue = B("nav"), We = V("nav"), Ge = [
|
|
634
|
+
"workbench",
|
|
635
|
+
"breadcrumb",
|
|
636
|
+
"location"
|
|
637
|
+
], Ke = (e) => [
|
|
634
638
|
"workbench",
|
|
635
639
|
"resource",
|
|
636
640
|
e,
|
|
637
641
|
"context"
|
|
638
|
-
],
|
|
642
|
+
], H = (e) => Array.isArray(e) ? e.map(H) : e && typeof e == "object" ? Object.fromEntries(Object.entries(e).sort(([e], [t]) => e.localeCompare(t)).map(([e, t]) => [e, H(t)])) : e, qe = (e) => {
|
|
643
|
+
if (e.kind === "command" && e.args && typeof e.args == "object" && !Array.isArray(e.args) && Object.keys(e.args).length === 0) {
|
|
644
|
+
let { args: t, ...n } = e;
|
|
645
|
+
return JSON.stringify(H(n));
|
|
646
|
+
}
|
|
647
|
+
return JSON.stringify(H(e));
|
|
648
|
+
}, U = /* @__PURE__ */ new WeakMap(), Je = (e, t) => {
|
|
649
|
+
U.set(e, t);
|
|
650
|
+
}, Ye = (e, t) => {
|
|
651
|
+
let n = U.get(e);
|
|
652
|
+
return t && n?.registryToken !== t ? void 0 : n;
|
|
653
|
+
}, Xe = {
|
|
639
654
|
project: "folder-root",
|
|
640
655
|
workspace: "computer",
|
|
641
656
|
worktree: "git-pull-request-draft",
|
|
642
657
|
settings: "settings",
|
|
643
658
|
kanbanRenderer: "table-properties"
|
|
644
|
-
},
|
|
645
|
-
let
|
|
659
|
+
}, W = (t, n) => {
|
|
660
|
+
let r = t;
|
|
661
|
+
for (let i of n.values()) e(i.resource) === e(t) && (r = "removed" in i.change ? void 0 : {
|
|
662
|
+
...t,
|
|
663
|
+
label: i.change.label
|
|
664
|
+
});
|
|
665
|
+
return r;
|
|
666
|
+
}, Ze = () => {
|
|
667
|
+
let t = u({
|
|
668
|
+
name: "workbench.resource-preview",
|
|
669
|
+
initialState: { changes: /* @__PURE__ */ new Map() }
|
|
670
|
+
}), n = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = (e) => {
|
|
671
|
+
let n = new Map(t.getState().changes);
|
|
672
|
+
n.delete(e), t.setState({ changes: n });
|
|
673
|
+
};
|
|
674
|
+
return {
|
|
675
|
+
store: t,
|
|
676
|
+
resolve(e) {
|
|
677
|
+
return W(e, t.getState().changes);
|
|
678
|
+
},
|
|
679
|
+
persist(t, r) {
|
|
680
|
+
let i = e(t), a = (n.get(i) ?? Promise.resolve()).catch(() => void 0).then(r);
|
|
681
|
+
return n.set(i, a), a.finally(() => {
|
|
682
|
+
n.get(i) === a && n.delete(i);
|
|
683
|
+
}).catch(() => void 0), a;
|
|
684
|
+
},
|
|
685
|
+
subscribeRefresh(e) {
|
|
686
|
+
return i.add(e), r(() => i.delete(e));
|
|
687
|
+
},
|
|
688
|
+
begin(e, n) {
|
|
689
|
+
let r = Symbol("resource mutation");
|
|
690
|
+
return t.setState({ changes: new Map([...t.getState().changes, [r, {
|
|
691
|
+
resource: e,
|
|
692
|
+
change: n
|
|
693
|
+
}]]) }), {
|
|
694
|
+
rollback: () => a(r),
|
|
695
|
+
async commit() {
|
|
696
|
+
await Promise.allSettled([...i].map((t) => t(e))), a(r);
|
|
697
|
+
}
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
};
|
|
701
|
+
}, G = (e) => "viewId" in e && e.type === "view", K = "resource_hierarchy_cycle", q = (e) => [...e].sort((e, t) => t.priority - e.priority || e.id.localeCompare(t.id)), Qe = (t, n, r) => {
|
|
702
|
+
let i = q(t), a = [n], o = /* @__PURE__ */ new Set([`resource:${e(n)}`]), s = n;
|
|
646
703
|
for (;;) {
|
|
647
704
|
let t = i.find((e) => e.canResolve(s))?.getParent(s);
|
|
648
705
|
if (!t) break;
|
|
649
|
-
let n =
|
|
706
|
+
let n = G(t) ? `view:${t.viewId}` : `resource:${e(t)}`;
|
|
650
707
|
if (o.has(n)) {
|
|
651
708
|
r({
|
|
652
|
-
code:
|
|
709
|
+
code: K,
|
|
653
710
|
path: [...a],
|
|
654
|
-
repeatedUri:
|
|
711
|
+
repeatedUri: G(t) ? n : e(t)
|
|
655
712
|
});
|
|
656
713
|
break;
|
|
657
714
|
}
|
|
658
|
-
if (a.unshift(t), o.add(n),
|
|
715
|
+
if (a.unshift(t), o.add(n), G(t)) break;
|
|
659
716
|
s = t;
|
|
660
717
|
}
|
|
661
718
|
return a;
|
|
662
|
-
},
|
|
719
|
+
}, J = "workbench.resource.type", Y = "workbench.resource.extensionId", X = "workbench.resource.id", Z = (e) => `workbench.resource.metadata.${e}`, Q = "workbench.selectionResourceKey", $e = (e) => typeof e == "string" || typeof e == "number" || typeof e == "boolean", $ = (e) => {
|
|
663
720
|
if (!e) return {};
|
|
664
721
|
let t = {
|
|
665
|
-
[
|
|
666
|
-
[
|
|
667
|
-
[
|
|
722
|
+
[J]: e.type,
|
|
723
|
+
[X]: e.id,
|
|
724
|
+
[Y]: e.extensionId
|
|
668
725
|
};
|
|
669
|
-
for (let [n, r] of Object.entries(e.metadata ?? {}))
|
|
726
|
+
for (let [n, r] of Object.entries(e.metadata ?? {})) $e(r) && (t[Z(n)] = r);
|
|
670
727
|
return t;
|
|
671
|
-
},
|
|
728
|
+
}, et = (e) => e === "workbench.resource.type" || e === "workbench.resource.extensionId" || e === "workbench.resource.id" || e.startsWith(Z("")), tt = (e, t) => {
|
|
672
729
|
let n = {};
|
|
673
|
-
for (let [t, r] of Object.entries(e))
|
|
730
|
+
for (let [t, r] of Object.entries(e)) et(t) || (n[t] = r);
|
|
674
731
|
return {
|
|
675
732
|
...n,
|
|
676
|
-
|
|
733
|
+
...$(t)
|
|
677
734
|
};
|
|
678
|
-
},
|
|
735
|
+
}, nt = (t) => ({ [Q]: e(t) }), rt = (t) => {
|
|
679
736
|
if (!t) return [];
|
|
680
|
-
let n = t.metadata?.[
|
|
737
|
+
let n = t.metadata?.[Q];
|
|
681
738
|
return typeof n != "string" || n === e(t) ? [e(t)] : [e(t), n];
|
|
682
|
-
},
|
|
739
|
+
}, it = (e = {}) => {
|
|
683
740
|
let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(), i = u({
|
|
684
741
|
name: "workbench.resources",
|
|
685
742
|
initialState: {
|
|
@@ -690,6 +747,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
|
|
|
690
747
|
});
|
|
691
748
|
return {
|
|
692
749
|
store: i,
|
|
750
|
+
preview: Ze(),
|
|
693
751
|
removed(n) {
|
|
694
752
|
e.remove?.(n, [...t].flatMap((e) => e(n)));
|
|
695
753
|
},
|
|
@@ -776,13 +834,13 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
|
|
|
776
834
|
});
|
|
777
835
|
},
|
|
778
836
|
listHierarchyProviders() {
|
|
779
|
-
return
|
|
837
|
+
return q(Object.values(i.getState().hierarchyProviders));
|
|
780
838
|
},
|
|
781
839
|
walkHierarchy(t) {
|
|
782
|
-
return t ?
|
|
840
|
+
return t ? Qe(Object.values(i.getState().hierarchyProviders), t, (e) => {
|
|
783
841
|
for (let t of n) t(e);
|
|
784
842
|
}).map((t) => {
|
|
785
|
-
if (!
|
|
843
|
+
if (!G(t)) return t;
|
|
786
844
|
let n = e.resolveView?.(t.viewId);
|
|
787
845
|
return n ? {
|
|
788
846
|
...t,
|
|
@@ -797,7 +855,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
|
|
|
797
855
|
});
|
|
798
856
|
}
|
|
799
857
|
};
|
|
800
|
-
},
|
|
858
|
+
}, at = (e, t = "view") => JSON.stringify([t, e.placementIdentity ? M(e.placementIdentity) : e.instanceId]), ot = async (e, t) => {
|
|
801
859
|
let n = new AbortController(), r = () => n.abort(t?.reason);
|
|
802
860
|
t?.aborted ? r() : t?.addEventListener("abort", r, { once: !0 });
|
|
803
861
|
let i;
|
|
@@ -817,16 +875,16 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
|
|
|
817
875
|
} finally {
|
|
818
876
|
t?.removeEventListener("abort", r);
|
|
819
877
|
}
|
|
820
|
-
},
|
|
878
|
+
}, st = (e) => e.replace(/^['"]|['"]$/g, ""), ct = (e, t) => {
|
|
821
879
|
let n = t.trim();
|
|
822
880
|
if (n.length === 0) return !0;
|
|
823
881
|
let r = n.match(/^([A-Za-z0-9_.-]+)\s*(==|!=)\s*(.+)$/);
|
|
824
882
|
if (r) {
|
|
825
|
-
let [, t, n, i] = r, a = e[t ?? ""], o =
|
|
883
|
+
let [, t, n, i] = r, a = e[t ?? ""], o = st(i ?? "");
|
|
826
884
|
return n === "==" ? String(a) === o : String(a) !== o;
|
|
827
885
|
}
|
|
828
886
|
return n.startsWith("!") ? !e[n.slice(1)] : !!e[n];
|
|
829
|
-
},
|
|
887
|
+
}, lt = (e, t) => !t || t.split("||").some((t) => t.split("&&").every((t) => ct(e, t))), ut = () => {
|
|
830
888
|
let e = u({
|
|
831
889
|
name: "workbench.context",
|
|
832
890
|
initialState: { values: {} }
|
|
@@ -890,29 +948,29 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
|
|
|
890
948
|
return { ...e.getState().values };
|
|
891
949
|
},
|
|
892
950
|
matches(t) {
|
|
893
|
-
return
|
|
951
|
+
return lt(e.getState().values, t);
|
|
894
952
|
}
|
|
895
953
|
};
|
|
896
|
-
},
|
|
954
|
+
}, dt = (e, t, n) => {
|
|
897
955
|
e.notifications.show({
|
|
898
956
|
level: "error",
|
|
899
957
|
title: `${t} failed`,
|
|
900
958
|
message: n instanceof Error ? n.message : String(n)
|
|
901
959
|
});
|
|
902
|
-
},
|
|
960
|
+
}, ft = async (e, t, n) => {
|
|
903
961
|
try {
|
|
904
962
|
await n();
|
|
905
963
|
} catch (n) {
|
|
906
|
-
|
|
964
|
+
dt(e, t, n);
|
|
907
965
|
}
|
|
908
|
-
},
|
|
909
|
-
|
|
910
|
-
},
|
|
911
|
-
let t =
|
|
966
|
+
}, pt = /* @__PURE__ */ new WeakMap(), mt = (e, t) => {
|
|
967
|
+
pt.set(e, t);
|
|
968
|
+
}, ht = (e) => {
|
|
969
|
+
let t = pt.get(e);
|
|
912
970
|
if (!t) throw Error("Workbench renderers are not initialized");
|
|
913
971
|
return t;
|
|
914
972
|
};
|
|
915
973
|
//#endregion
|
|
916
|
-
export {
|
|
974
|
+
export { C as $, He as A, je as B, Ye as C, d as Ct, V as D, i as Dt, B as E, s as Et, Re as F, xe as G, Ne as H, ze as I, Ee as J, Se as K, z as L, Be as M, Ue as N, Ke as O, r as Ot, We as P, ye as Q, Fe as R, Xe as S, f as St, qe as T, c as Tt, k as U, M as V, Te as W, ve as X, we as Y, be as Z, J as _, ue as _t, ut as a, ge as at, K as b, ne as bt, at as c, ae as ct, nt as d, ie as dt, S as et, rt as f, b as ft, Y as g, oe as gt, Z as h, se as ht, ft as i, x as it, Ve as j, Ge as k, it as l, re as lt, X as m, y as mt, mt as n, fe as nt, lt as o, le as ot, tt as p, h as pt, E as q, dt as r, he as rt, ot as s, ce as st, ht as t, pe as tt, $ as u, m as ut, Q as v, v as vt, Je as w, u as wt, W as x, ee as xt, G as y, p as yt, F as z };
|
|
917
975
|
|
|
918
|
-
//# sourceMappingURL=workbench-renderers-
|
|
976
|
+
//# sourceMappingURL=workbench-renderers-Bj4sazP5.js.map
|