@silo-code/sdk 0.23.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dnd-service.d.ts +1 -1
- package/dist/editor-service.d.ts +3 -3
- package/dist/event.d.ts +1 -1
- package/dist/extension-storage.d.ts +1 -1
- package/dist/file-service.d.ts +1 -1
- package/dist/index.d.ts +30 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/layout-service.d.ts +1 -1
- package/dist/permissions.d.ts +6 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js.map +1 -1
- package/dist/process-service.d.ts +1 -1
- package/dist/processes-service.d.ts +1 -1
- package/dist/terminal-service.d.ts +3 -3
- package/dist/theme-service.d.ts +3 -3
- package/dist/types.d.ts +24 -16
- package/dist/types.d.ts.map +1 -1
- package/dist/use-service-state.d.ts +1 -1
- package/dist/webview-service.d.ts +164 -0
- package/dist/webview-service.d.ts.map +1 -0
- package/dist/webview-service.js +2 -0
- package/dist/webview-service.js.map +1 -0
- package/dist/workspace-service.d.ts +3 -3
- package/package.json +2 -2
- package/src/index.ts +11 -0
- package/src/permissions.ts +11 -1
- package/src/types.ts +8 -0
- package/src/webview-service.ts +178 -0
package/dist/dnd-service.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type React from "react";
|
|
2
|
-
import type { Disposable } from "./types";
|
|
2
|
+
import type { Disposable } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Well-known MIME types for Silo drag payloads. Use these constants (rather than
|
|
5
5
|
* raw strings) so drags interoperate across extensions and built-ins.
|
package/dist/editor-service.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Disposable } from "./types";
|
|
2
|
-
import type { Event } from "./event";
|
|
3
|
-
import type { EditorMode } from "./domain-types";
|
|
1
|
+
import type { Disposable } from "./types.js";
|
|
2
|
+
import type { Event } from "./event.js";
|
|
3
|
+
import type { EditorMode } from "./domain-types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Options for the editor open methods.
|
|
6
6
|
*
|
package/dist/event.d.ts
CHANGED
package/dist/file-service.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -15,33 +15,34 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @packageDocumentation
|
|
17
17
|
*/
|
|
18
|
-
export type { Disposable, DockPanelApi, DockPanelProps, EditorProps, EditorCapabilities, Editor, NewFileTemplate, FileType, Command, MenuId, MenuItemContribution, Keybinding, SidePanelProps, SidePanel, DockPanelKind, StatusItem, SettingsPage, ExtensionContext, Extension, ExtensionManifest, ExtensionHandle, } from "./types";
|
|
19
|
-
export type { Workspace, EditorMode, EditorRecord, SidePanelSlot, } from "./domain-types";
|
|
20
|
-
export type { WorkspaceService, WorkspaceState, CreateWorkspaceInput, WorkspaceStatusRow, WorkspaceStatusProvider, WorkspaceSectionProps, WorkspaceSectionProvider, WorkspaceBadge, WorkspaceBadgeProvider, } from "./workspace-service";
|
|
21
|
-
export type { EditorService, EditorSaveHandlers, OpenFileOptions, EditorViewInfo, OpenDiffSpec, DiffContent, DiffContentRequest, DiffContentProvider, ActiveEditorInfo, EditorsState, EditorSaveEvent, } from "./editor-service";
|
|
22
|
-
export type { LayoutService, LayoutState, SidePanelColumnState, SideLocation, } from "./layout-service";
|
|
23
|
-
export type { ProcessService, ProcessSession, ProcessSpawnOptions, ProcessExecOptions, ProcessExecResult, } from "./process-service";
|
|
24
|
-
export type { ProcessesService, ProcessInfo, ProcessStats, } from "./processes-service";
|
|
25
|
-
export type { TerminalService, CreateTerminalInput, TerminalKind, TerminalRecord, TerminalTabDecoration, TerminalTabDecorationProvider, OscEvent, } from "./terminal-service";
|
|
26
|
-
export type { FileService, FileMeta, FileChangeKind, FileChangeEvent, } from "./file-service";
|
|
27
|
-
export type { SearchService, SearchOptions, SearchMatch, SearchFileResult, SearchResponse, } from "./search-service";
|
|
28
|
-
export type { Permission } from "./permissions";
|
|
29
|
-
export { PathDeniedError } from "./permissions";
|
|
30
|
-
export type { ThemeService, ThemeState, ThemePreset, ResolvedTheme, ThemeBase, ThemeVars, CustomTheme, ThemeExport, } from "./theme-service";
|
|
31
|
-
export type { ExtensionStorage, ExtensionStorageScopes, } from "./extension-storage";
|
|
32
|
-
export type { DndService, DndItem, DndMime, DragInit, DndMode, DropContext, DropTargetHandlers, } from "./dnd-service";
|
|
33
|
-
export { DND_MIME } from "./dnd-service";
|
|
34
|
-
export type { UiService, FileFilter, MenuItem, MenuItemTrailing, MenuSeparator, MenuHeader, MenuEntry, ShowMenuOptions, ConfirmOptions, PromptOptions, ModalOptions, NotifyAction, NotifyOptions, } from "./ui-service";
|
|
35
|
-
export { NetworkError } from "./network-service";
|
|
36
|
-
export type { NetworkService, NetworkRequestOptions, NetworkResponse, NetworkBytesResponse, } from "./network-service";
|
|
37
|
-
export type {
|
|
38
|
-
export type {
|
|
39
|
-
export type {
|
|
40
|
-
export type {
|
|
41
|
-
export {
|
|
42
|
-
export {
|
|
43
|
-
export {
|
|
44
|
-
export
|
|
45
|
-
export {
|
|
46
|
-
export
|
|
18
|
+
export type { Disposable, DockPanelApi, DockPanelProps, EditorProps, EditorCapabilities, Editor, NewFileTemplate, FileType, Command, MenuId, MenuItemContribution, Keybinding, SidePanelProps, SidePanel, DockPanelKind, StatusItem, SettingsPage, ExtensionContext, Extension, ExtensionManifest, ExtensionHandle, } from "./types.js";
|
|
19
|
+
export type { Workspace, EditorMode, EditorRecord, SidePanelSlot, } from "./domain-types.js";
|
|
20
|
+
export type { WorkspaceService, WorkspaceState, CreateWorkspaceInput, WorkspaceStatusRow, WorkspaceStatusProvider, WorkspaceSectionProps, WorkspaceSectionProvider, WorkspaceBadge, WorkspaceBadgeProvider, } from "./workspace-service.js";
|
|
21
|
+
export type { EditorService, EditorSaveHandlers, OpenFileOptions, EditorViewInfo, OpenDiffSpec, DiffContent, DiffContentRequest, DiffContentProvider, ActiveEditorInfo, EditorsState, EditorSaveEvent, } from "./editor-service.js";
|
|
22
|
+
export type { LayoutService, LayoutState, SidePanelColumnState, SideLocation, } from "./layout-service.js";
|
|
23
|
+
export type { ProcessService, ProcessSession, ProcessSpawnOptions, ProcessExecOptions, ProcessExecResult, } from "./process-service.js";
|
|
24
|
+
export type { ProcessesService, ProcessInfo, ProcessStats, } from "./processes-service.js";
|
|
25
|
+
export type { TerminalService, CreateTerminalInput, TerminalKind, TerminalRecord, TerminalTabDecoration, TerminalTabDecorationProvider, OscEvent, } from "./terminal-service.js";
|
|
26
|
+
export type { FileService, FileMeta, FileChangeKind, FileChangeEvent, } from "./file-service.js";
|
|
27
|
+
export type { SearchService, SearchOptions, SearchMatch, SearchFileResult, SearchResponse, } from "./search-service.js";
|
|
28
|
+
export type { Permission } from "./permissions.js";
|
|
29
|
+
export { PathDeniedError } from "./permissions.js";
|
|
30
|
+
export type { ThemeService, ThemeState, ThemePreset, ResolvedTheme, ThemeBase, ThemeVars, CustomTheme, ThemeExport, } from "./theme-service.js";
|
|
31
|
+
export type { ExtensionStorage, ExtensionStorageScopes, } from "./extension-storage.js";
|
|
32
|
+
export type { DndService, DndItem, DndMime, DragInit, DndMode, DropContext, DropTargetHandlers, } from "./dnd-service.js";
|
|
33
|
+
export { DND_MIME } from "./dnd-service.js";
|
|
34
|
+
export type { UiService, FileFilter, MenuItem, MenuItemTrailing, MenuSeparator, MenuHeader, MenuEntry, ShowMenuOptions, ConfirmOptions, PromptOptions, ModalOptions, NotifyAction, NotifyOptions, } from "./ui-service.js";
|
|
35
|
+
export { NetworkError } from "./network-service.js";
|
|
36
|
+
export type { NetworkService, NetworkRequestOptions, NetworkResponse, NetworkBytesResponse, } from "./network-service.js";
|
|
37
|
+
export type { WebviewService, WebFrame, WebviewNavType, WebviewNavigateEvent, WebviewRect, PickedElement, } from "./webview-service.js";
|
|
38
|
+
export type { SystemService, SystemInfo } from "./system-service.js";
|
|
39
|
+
export type { LogService, LogLevel } from "./output-service.js";
|
|
40
|
+
export type { ContextKeys } from "./context-keys.js";
|
|
41
|
+
export type { Event } from "./event.js";
|
|
42
|
+
export { path } from "./path.js";
|
|
43
|
+
export { Tooltip } from "./Tooltip.js";
|
|
44
|
+
export { useServiceState } from "./use-service-state.js";
|
|
45
|
+
export type { ReactiveService } from "./use-service-state.js";
|
|
46
|
+
export { useFocusGroup, focusGroupNextIndex } from "./use-focus-group.js";
|
|
47
|
+
export type { FocusGroup, FocusGroupOptions, FocusGroupContainerProps, FocusGroupItemProps, FocusGroupOrientation, FocusGroupNavQuery, } from "./use-focus-group.js";
|
|
47
48
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,23 +15,23 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @packageDocumentation
|
|
17
17
|
*/
|
|
18
|
-
export { PathDeniedError } from "./permissions";
|
|
19
|
-
export { DND_MIME } from "./dnd-service";
|
|
18
|
+
export { PathDeniedError } from "./permissions.js";
|
|
19
|
+
export { DND_MIME } from "./dnd-service.js";
|
|
20
20
|
// Server-side HTTP client — bypasses CORS, readable response headers.
|
|
21
|
-
export { NetworkError } from "./network-service";
|
|
21
|
+
export { NetworkError } from "./network-service.js";
|
|
22
22
|
// Pure path utilities — cross-platform replacement for `node:path` (banned in
|
|
23
23
|
// extensions). All outputs use forward-slash separators. Both "/" and "\" are
|
|
24
24
|
// accepted as input. Exported as a namespaced `path` object.
|
|
25
|
-
export { path } from "./path";
|
|
25
|
+
export { path } from "./path.js";
|
|
26
26
|
// Tooltip — the same styled hover popup the host uses in the status bar.
|
|
27
27
|
// Extensions use this instead of native `title` attributes to match host chrome.
|
|
28
|
-
export { Tooltip } from "./Tooltip";
|
|
28
|
+
export { Tooltip } from "./Tooltip.js";
|
|
29
29
|
// Runtime helpers. The one blessed way for an extension to read a `ctx`
|
|
30
30
|
// service's reactive state in React — replaces hand-rolled useSyncExternalStore.
|
|
31
|
-
export { useServiceState } from "./use-service-state";
|
|
31
|
+
export { useServiceState } from "./use-service-state.js";
|
|
32
32
|
// Headless keyboard navigation for a focus group (list / menu / toolbar / …):
|
|
33
33
|
// one tab stop, arrow/Home/End movement, the WebKit-safe keyboard ring. The
|
|
34
34
|
// `focusGroupNextIndex` helper is the pure roving-index core for widgets that
|
|
35
35
|
// can't use the focus-driven hook (e.g. menus driven by a document listener).
|
|
36
|
-
export { useFocusGroup, focusGroupNextIndex } from "./use-focus-group";
|
|
36
|
+
export { useFocusGroup, focusGroupNextIndex } from "./use-focus-group.js";
|
|
37
37
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA2GH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA6BhD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAoBzC,sEAAsE;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA2GH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA6BhD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAoBzC,sEAAsE;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAkCjD,8EAA8E;AAC9E,8EAA8E;AAC9E,6DAA6D;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,yEAAyE;AACzE,iFAAiF;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wEAAwE;AACxE,iFAAiF;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/layout-service.d.ts
CHANGED
package/dist/permissions.d.ts
CHANGED
|
@@ -11,11 +11,16 @@
|
|
|
11
11
|
* - `network` — make outbound network requests. Declarative consent only until
|
|
12
12
|
* sandboxed execution lands (in-process code can reach the network directly);
|
|
13
13
|
* declare it so the capability is reviewable and shown at install.
|
|
14
|
+
* - `webview` — use {@link ExtensionContext.webview} to get real DOM access,
|
|
15
|
+
* script execution, and native pixel capture inside an iframe you own,
|
|
16
|
+
* including cross-origin content. Declare it because this reaches into
|
|
17
|
+
* arbitrary embedded pages, not because it touches the filesystem/network
|
|
18
|
+
* directly.
|
|
14
19
|
*
|
|
15
20
|
* @category Extension Contract
|
|
16
21
|
* @public
|
|
17
22
|
*/
|
|
18
|
-
export type Permission = "fs:read" | "fs:write" | "process" | "network";
|
|
23
|
+
export type Permission = "fs:read" | "fs:write" | "process" | "network" | "webview";
|
|
19
24
|
/**
|
|
20
25
|
* Thrown by {@link FileService} and {@link ProcessService} when an extension
|
|
21
26
|
* touches a path — or runs a process with a working directory — outside the open
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAKA
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,UAAU,GACV,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAS3C"}
|
package/dist/permissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,qEAAqE;
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,qEAAqE;AA+BrE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAIxC,YAAY,IAAY,EAAE,OAAgB;QACxC,KAAK,CAAC,OAAO,IAAI,kCAAkC,IAAI,EAAE,CAAC,CAAC;QAJ7D,8DAA8D;QACrD;;;;;WAAa;QAIpB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,4EAA4E;QAC5E,4EAA4E;QAC5E,yCAAyC;QACzC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from "react";
|
|
2
|
-
import type { Disposable } from "./types";
|
|
3
|
-
import type { TerminalKind, TerminalRecord } from "./domain-types";
|
|
2
|
+
import type { Disposable } from "./types.js";
|
|
3
|
+
import type { TerminalKind, TerminalRecord } from "./domain-types.js";
|
|
4
4
|
/**
|
|
5
5
|
* A parsed OSC (Operating System Command) escape sequence emitted by a
|
|
6
6
|
* terminal program. Delivered by {@link TerminalService.subscribeOsc}.
|
|
@@ -20,7 +20,7 @@ export interface OscEvent {
|
|
|
20
20
|
/** The raw payload string after the code and its separating semicolon. */
|
|
21
21
|
payload: string;
|
|
22
22
|
}
|
|
23
|
-
export type { TerminalKind, TerminalRecord } from "./domain-types";
|
|
23
|
+
export type { TerminalKind, TerminalRecord } from "./domain-types.js";
|
|
24
24
|
/**
|
|
25
25
|
* A decoration that an extension can attach to a terminal tab — a small icon
|
|
26
26
|
* with an optional tooltip and semantic color. Registered via
|
package/dist/theme-service.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Disposable } from "./types";
|
|
2
|
-
import type { ThemeBase, ThemeVars, CustomTheme, ThemeExport } from "./domain-types";
|
|
3
|
-
export type { ThemeBase, ThemeVars, CustomTheme, ThemeExport, } from "./domain-types";
|
|
1
|
+
import type { Disposable } from "./types.js";
|
|
2
|
+
import type { ThemeBase, ThemeVars, CustomTheme, ThemeExport } from "./domain-types.js";
|
|
3
|
+
export type { ThemeBase, ThemeVars, CustomTheme, ThemeExport, } from "./domain-types.js";
|
|
4
4
|
/**
|
|
5
5
|
* A selectable theme contributed via {@link ThemeService.registerPreset}.
|
|
6
6
|
* Built-in presets (Tokyo Night, Solarized Light, Gruvbox Dark, …) are
|
package/dist/types.d.ts
CHANGED
|
@@ -25,22 +25,23 @@
|
|
|
25
25
|
* @packageDocumentation
|
|
26
26
|
*/
|
|
27
27
|
import type React from "react";
|
|
28
|
-
import type { ContextKeys } from "./context-keys";
|
|
29
|
-
import type { WorkspaceService } from "./workspace-service";
|
|
30
|
-
import type { EditorService } from "./editor-service";
|
|
31
|
-
import type { LayoutService } from "./layout-service";
|
|
32
|
-
import type { ProcessService } from "./process-service";
|
|
33
|
-
import type { ProcessesService } from "./processes-service";
|
|
34
|
-
import type { TerminalService } from "./terminal-service";
|
|
35
|
-
import type { FileService } from "./file-service";
|
|
36
|
-
import type { SearchService } from "./search-service";
|
|
37
|
-
import type { ThemeService, ThemePreset } from "./theme-service";
|
|
38
|
-
import type { DndService } from "./dnd-service";
|
|
39
|
-
import type { UiService } from "./ui-service";
|
|
40
|
-
import type { NetworkService } from "./network-service";
|
|
41
|
-
import type {
|
|
42
|
-
import type {
|
|
43
|
-
import type {
|
|
28
|
+
import type { ContextKeys } from "./context-keys.js";
|
|
29
|
+
import type { WorkspaceService } from "./workspace-service.js";
|
|
30
|
+
import type { EditorService } from "./editor-service.js";
|
|
31
|
+
import type { LayoutService } from "./layout-service.js";
|
|
32
|
+
import type { ProcessService } from "./process-service.js";
|
|
33
|
+
import type { ProcessesService } from "./processes-service.js";
|
|
34
|
+
import type { TerminalService } from "./terminal-service.js";
|
|
35
|
+
import type { FileService } from "./file-service.js";
|
|
36
|
+
import type { SearchService } from "./search-service.js";
|
|
37
|
+
import type { ThemeService, ThemePreset } from "./theme-service.js";
|
|
38
|
+
import type { DndService } from "./dnd-service.js";
|
|
39
|
+
import type { UiService } from "./ui-service.js";
|
|
40
|
+
import type { NetworkService } from "./network-service.js";
|
|
41
|
+
import type { WebviewService } from "./webview-service.js";
|
|
42
|
+
import type { SystemService } from "./system-service.js";
|
|
43
|
+
import type { LogService } from "./output-service.js";
|
|
44
|
+
import type { ExtensionStorage, ExtensionStorageScopes } from "./extension-storage.js";
|
|
44
45
|
/**
|
|
45
46
|
* The teardown handle returned by every `register*` call on
|
|
46
47
|
* {@link ExtensionContext}. Calling {@link Disposable.dispose | dispose}
|
|
@@ -616,6 +617,13 @@ export interface ExtensionContext {
|
|
|
616
617
|
* loading a URL. See {@link NetworkService} for the full API.
|
|
617
618
|
*/
|
|
618
619
|
readonly net: NetworkService;
|
|
620
|
+
/**
|
|
621
|
+
* Real DOM access, navigation control, and native pixel capture inside an
|
|
622
|
+
* `<iframe>` you own — including cross-origin content the browser's
|
|
623
|
+
* same-origin policy would otherwise fully sandbox. Requires the
|
|
624
|
+
* `"webview"` {@link Permission}. See {@link WebviewService}.
|
|
625
|
+
*/
|
|
626
|
+
readonly webview: WebviewService;
|
|
619
627
|
/**
|
|
620
628
|
* Static host-platform metadata — the OS, CPU architecture, and running Silo
|
|
621
629
|
* version. Values are baked into the binary at build time and never change
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import type { Disposable } from "./types.js";
|
|
2
|
+
import type { Event } from "./event.js";
|
|
3
|
+
/**
|
|
4
|
+
* The kind of in-frame navigation reported by {@link WebFrame.onNavigate}.
|
|
5
|
+
*
|
|
6
|
+
* - `"load"` — a full document load (the initial navigation, or any
|
|
7
|
+
* non-SPA link click / `location.href` assignment).
|
|
8
|
+
* - `"push"` / `"replace"` — `history.pushState` / `history.replaceState`,
|
|
9
|
+
* the SPA route-change primitives (React Router, Vue Router, etc.).
|
|
10
|
+
* - `"pop"` — a `popstate` event (back/forward within the SPA).
|
|
11
|
+
* - `"hash"` — a `hashchange` event.
|
|
12
|
+
*
|
|
13
|
+
* @category Core Types
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export type WebviewNavType = "push" | "replace" | "pop" | "load" | "hash";
|
|
17
|
+
/**
|
|
18
|
+
* One navigation event from {@link WebFrame.onNavigate}.
|
|
19
|
+
*
|
|
20
|
+
* @category Core Types
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
export interface WebviewNavigateEvent {
|
|
24
|
+
/** The kind of navigation — see {@link WebviewNavType}. */
|
|
25
|
+
type: WebviewNavType;
|
|
26
|
+
/** The frame's URL after the navigation. */
|
|
27
|
+
url: string;
|
|
28
|
+
/**
|
|
29
|
+
* `true` on the first event reported by a freshly created document — i.e.
|
|
30
|
+
* this event is the result of a full document load, whoever initiated it.
|
|
31
|
+
* `false` for every subsequent event from the same document (SPA route
|
|
32
|
+
* changes, the page's own `replaceState` calls, hash changes).
|
|
33
|
+
*
|
|
34
|
+
* This matters because frameworks commonly call `history.replaceState`
|
|
35
|
+
* while booting, so a single full-page navigation can report a `"replace"`
|
|
36
|
+
* event *before* its `"load"`. Without this flag a consumer tracking its
|
|
37
|
+
* own history stack can't tell that boot-time `"replace"` (a brand-new
|
|
38
|
+
* page — usually a new history entry) apart from a genuine in-page
|
|
39
|
+
* `replaceState` (rewrite the current entry).
|
|
40
|
+
*/
|
|
41
|
+
newDocument: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A rectangle in frame-relative CSS pixels — the coordinate space
|
|
45
|
+
* `getBoundingClientRect()` returns inside the frame's own document. Used by
|
|
46
|
+
* {@link WebFrame.captureRect} (e.g. for a picked element or a marquee
|
|
47
|
+
* selection) and returned as part of {@link PickedElement}.
|
|
48
|
+
*
|
|
49
|
+
* @category Core Types
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
export interface WebviewRect {
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
width: number;
|
|
56
|
+
height: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The result of {@link WebFrame.pickElement} — what the user clicked while
|
|
60
|
+
* picking.
|
|
61
|
+
*
|
|
62
|
+
* @category Core Types
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
export interface PickedElement {
|
|
66
|
+
/** A CSS selector breadcrumb from `<html>` down to the clicked element (tag + up to 2 classes per level). */
|
|
67
|
+
selector: string;
|
|
68
|
+
/** The element's trimmed text content, truncated to 200 characters. */
|
|
69
|
+
text: string;
|
|
70
|
+
/** The element's frame-relative bounding rect — pass to {@link WebFrame.captureRect} to screenshot just this element. */
|
|
71
|
+
rect: WebviewRect;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A live connection to an embedded frame's content, returned by
|
|
75
|
+
* {@link WebviewService.attach}. Dispose it (or let `ctx.subscriptions`
|
|
76
|
+
* dispose it) when your panel unmounts.
|
|
77
|
+
*
|
|
78
|
+
* @category Consumer Services
|
|
79
|
+
* @public
|
|
80
|
+
*/
|
|
81
|
+
export interface WebFrame extends Disposable {
|
|
82
|
+
/** The frame's current URL, updated on every {@link onNavigate} event. `null` before the first load. */
|
|
83
|
+
readonly url: string | null;
|
|
84
|
+
/** Subscribe to in-frame navigation — the only way to track SPA route changes and full loads alike. See {@link WebviewNavType}. */
|
|
85
|
+
onNavigate: Event<WebviewNavigateEvent>;
|
|
86
|
+
/**
|
|
87
|
+
* Fires when a navigation lands on what looks like a frame-blocked page —
|
|
88
|
+
* sites sending `X-Frame-Options` / `frame-ancestors` don't error, WebKit
|
|
89
|
+
* (and other engines) just commit an empty document at the target URL, so
|
|
90
|
+
* this is a heuristic (empty title + no body content after load), not a
|
|
91
|
+
* definitive diagnosis. Treat it as "this page probably won't work
|
|
92
|
+
* embedded — offer to open it in a browser instead."
|
|
93
|
+
*/
|
|
94
|
+
onBlocked: Event<void>;
|
|
95
|
+
/** Navigate the frame back in its history, if possible. */
|
|
96
|
+
back(): void;
|
|
97
|
+
/** Navigate the frame forward in its history, if possible. */
|
|
98
|
+
forward(): void;
|
|
99
|
+
/** Reload the frame's current page. */
|
|
100
|
+
reload(): void;
|
|
101
|
+
/**
|
|
102
|
+
* Run JavaScript inside the frame and resolve with its result. A single
|
|
103
|
+
* expression's value is returned (e.g. `"document.title"`,
|
|
104
|
+
* `"location.href"`, `"document.querySelectorAll('a').length"`) — matching
|
|
105
|
+
* how a devtools console evaluates. Multi-statement code runs but only
|
|
106
|
+
* returns a value if it ends in an explicit `return`-compatible form.
|
|
107
|
+
* The result must be structured-clone-safe (no DOM nodes, functions, etc.).
|
|
108
|
+
*/
|
|
109
|
+
exec<T = unknown>(code: string): Promise<T>;
|
|
110
|
+
/**
|
|
111
|
+
* Enter interactive element-pick mode: the user hovers to highlight and
|
|
112
|
+
* clicks to select, or presses Escape to cancel. Resolves with the picked
|
|
113
|
+
* element, or `null` if cancelled. No timeout — this is inherently
|
|
114
|
+
* user-paced.
|
|
115
|
+
*/
|
|
116
|
+
pickElement(): Promise<PickedElement | null>;
|
|
117
|
+
/**
|
|
118
|
+
* Cancel an in-flight {@link pickElement} call — exits pick mode in the
|
|
119
|
+
* frame and resolves the pending `pickElement()` promise with `null`. A
|
|
120
|
+
* no-op if no pick is active (including if it already ended, e.g. via
|
|
121
|
+
* Escape or a click).
|
|
122
|
+
*/
|
|
123
|
+
cancelPick(): void;
|
|
124
|
+
/** A native PNG snapshot of the frame's current visible viewport. */
|
|
125
|
+
capture(): Promise<Blob>;
|
|
126
|
+
/** A native PNG snapshot of a frame-relative sub-rect — e.g. a {@link PickedElement.rect} or a marquee selection. */
|
|
127
|
+
captureRect(rect: WebviewRect): Promise<Blob>;
|
|
128
|
+
/** A native PNG snapshot of the frame's entire scrollable document, stitched from scrolled captures. Scroll position is restored afterward. */
|
|
129
|
+
captureFullPage(): Promise<Blob>;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* The webview-bridge domain, exposed as {@link ExtensionContext.webview}.
|
|
133
|
+
* Requires the `"webview"` {@link Permission}.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```tsx
|
|
137
|
+
* function MyPanel({ ctx }: { ctx: ExtensionContext }) {
|
|
138
|
+
* const iframeRef = useRef<HTMLIFrameElement>(null);
|
|
139
|
+
* const frameRef = useRef<WebFrame | null>(null);
|
|
140
|
+
*
|
|
141
|
+
* useEffect(() => {
|
|
142
|
+
* if (!iframeRef.current) return;
|
|
143
|
+
* const frame = ctx.webview.attach(iframeRef.current);
|
|
144
|
+
* frameRef.current = frame;
|
|
145
|
+
* const sub = frame.onNavigate((e) => console.log(e.type, e.url));
|
|
146
|
+
* return () => { sub.dispose(); frame.dispose(); };
|
|
147
|
+
* }, []);
|
|
148
|
+
*
|
|
149
|
+
* return <iframe ref={iframeRef} src="https://example.com" />;
|
|
150
|
+
* }
|
|
151
|
+
* ```
|
|
152
|
+
*
|
|
153
|
+
* @category Consumer Services
|
|
154
|
+
* @public
|
|
155
|
+
*/
|
|
156
|
+
export interface WebviewService {
|
|
157
|
+
/**
|
|
158
|
+
* Attach the bridge to an iframe your panel owns. The iframe can be
|
|
159
|
+
* cross-origin — that's the point. Returns a {@link WebFrame}; call
|
|
160
|
+
* `.dispose()` (or push it onto `ctx.subscriptions`) when done with it.
|
|
161
|
+
*/
|
|
162
|
+
attach(frame: HTMLIFrameElement): WebFrame;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=webview-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webview-service.d.ts","sourceRoot":"","sources":["../src/webview-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAWrC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,IAAI,EAAE,cAAc,CAAC;IACrB,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;;;;OAYG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,6GAA6G;IAC7G,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,yHAAyH;IACzH,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAS,SAAQ,UAAU;IAC1C,wGAAwG;IACxG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mIAAmI;IACnI,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC;;;;;;;OAOG;IACH,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,2DAA2D;IAC3D,IAAI,IAAI,IAAI,CAAC;IACb,8DAA8D;IAC9D,OAAO,IAAI,IAAI,CAAC;IAChB,uCAAuC;IACvC,MAAM,IAAI,IAAI,CAAC;IACf;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,WAAW,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,UAAU,IAAI,IAAI,CAAC;IACnB,qEAAqE;IACrE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,qHAAqH;IACrH,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,+IAA+I;IAC/I,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,QAAQ,CAAC;CAC5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webview-service.js","sourceRoot":"","sources":["../src/webview-service.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Disposable } from "./types";
|
|
2
|
-
import type { Workspace } from "./domain-types";
|
|
3
|
-
export type { Workspace, TerminalRecord } from "./domain-types";
|
|
1
|
+
import type { Disposable } from "./types.js";
|
|
2
|
+
import type { Workspace } from "./domain-types.js";
|
|
3
|
+
export type { Workspace, TerminalRecord } from "./domain-types.js";
|
|
4
4
|
/**
|
|
5
5
|
* A single status row contributed by a {@link WorkspaceStatusProvider}.
|
|
6
6
|
* Rows appear below the path line in the Workspaces side panel.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silo-code/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "The public, types-first SDK for building Silo extensions — the only surface third-party extensions import.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Dave Weaver",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"vitest": "^4.1.7"
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
47
|
-
"build": "tsc -p tsconfig.build.json",
|
|
47
|
+
"build": "tsc -p tsconfig.build.json && node scripts/fix-esm-extensions.mjs",
|
|
48
48
|
"test": "vitest run",
|
|
49
49
|
"test:watch": "vitest"
|
|
50
50
|
},
|
package/src/index.ts
CHANGED
|
@@ -179,6 +179,17 @@ export type {
|
|
|
179
179
|
NetworkBytesResponse,
|
|
180
180
|
} from "./network-service";
|
|
181
181
|
|
|
182
|
+
// The webview-bridge domain: real DOM access, navigation control, and native
|
|
183
|
+
// pixel capture inside an iframe you own, including cross-origin content.
|
|
184
|
+
export type {
|
|
185
|
+
WebviewService,
|
|
186
|
+
WebFrame,
|
|
187
|
+
WebviewNavType,
|
|
188
|
+
WebviewNavigateEvent,
|
|
189
|
+
WebviewRect,
|
|
190
|
+
PickedElement,
|
|
191
|
+
} from "./webview-service";
|
|
192
|
+
|
|
182
193
|
// Static host-platform metadata: OS, CPU arch, and Silo version.
|
|
183
194
|
export type { SystemService, SystemInfo } from "./system-service";
|
|
184
195
|
|
package/src/permissions.ts
CHANGED
|
@@ -16,11 +16,21 @@
|
|
|
16
16
|
* - `network` — make outbound network requests. Declarative consent only until
|
|
17
17
|
* sandboxed execution lands (in-process code can reach the network directly);
|
|
18
18
|
* declare it so the capability is reviewable and shown at install.
|
|
19
|
+
* - `webview` — use {@link ExtensionContext.webview} to get real DOM access,
|
|
20
|
+
* script execution, and native pixel capture inside an iframe you own,
|
|
21
|
+
* including cross-origin content. Declare it because this reaches into
|
|
22
|
+
* arbitrary embedded pages, not because it touches the filesystem/network
|
|
23
|
+
* directly.
|
|
19
24
|
*
|
|
20
25
|
* @category Extension Contract
|
|
21
26
|
* @public
|
|
22
27
|
*/
|
|
23
|
-
export type Permission =
|
|
28
|
+
export type Permission =
|
|
29
|
+
| "fs:read"
|
|
30
|
+
| "fs:write"
|
|
31
|
+
| "process"
|
|
32
|
+
| "network"
|
|
33
|
+
| "webview";
|
|
24
34
|
|
|
25
35
|
/**
|
|
26
36
|
* Thrown by {@link FileService} and {@link ProcessService} when an extension
|
package/src/types.ts
CHANGED
|
@@ -38,6 +38,7 @@ import type { ThemeService, ThemePreset } from "./theme-service";
|
|
|
38
38
|
import type { DndService } from "./dnd-service";
|
|
39
39
|
import type { UiService } from "./ui-service";
|
|
40
40
|
import type { NetworkService } from "./network-service";
|
|
41
|
+
import type { WebviewService } from "./webview-service";
|
|
41
42
|
import type { SystemService } from "./system-service";
|
|
42
43
|
import type { LogService } from "./output-service";
|
|
43
44
|
import type {
|
|
@@ -639,6 +640,13 @@ export interface ExtensionContext {
|
|
|
639
640
|
* loading a URL. See {@link NetworkService} for the full API.
|
|
640
641
|
*/
|
|
641
642
|
readonly net: NetworkService;
|
|
643
|
+
/**
|
|
644
|
+
* Real DOM access, navigation control, and native pixel capture inside an
|
|
645
|
+
* `<iframe>` you own — including cross-origin content the browser's
|
|
646
|
+
* same-origin policy would otherwise fully sandbox. Requires the
|
|
647
|
+
* `"webview"` {@link Permission}. See {@link WebviewService}.
|
|
648
|
+
*/
|
|
649
|
+
readonly webview: WebviewService;
|
|
642
650
|
/**
|
|
643
651
|
* Static host-platform metadata — the OS, CPU architecture, and running Silo
|
|
644
652
|
* version. Values are baked into the binary at build time and never change
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { Disposable } from "./types";
|
|
2
|
+
import type { Event } from "./event";
|
|
3
|
+
|
|
4
|
+
// `ctx.webview` — real DOM access, navigation control, and native pixel
|
|
5
|
+
// capture inside an `<iframe>` your panel owns, including cross-origin
|
|
6
|
+
// content that the browser's same-origin policy would otherwise fully
|
|
7
|
+
// sandbox. The host achieves this by injecting a handshake-gated script into
|
|
8
|
+
// every frame (a Tauri all-frames init script reaches subframes the browser
|
|
9
|
+
// itself can't be reached from) and talking to it over `postMessage`; none of
|
|
10
|
+
// that machinery is visible here — `attach` just gives you a working
|
|
11
|
+
// `WebFrame`. Requires the `"webview"` {@link Permission}.
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The kind of in-frame navigation reported by {@link WebFrame.onNavigate}.
|
|
15
|
+
*
|
|
16
|
+
* - `"load"` — a full document load (the initial navigation, or any
|
|
17
|
+
* non-SPA link click / `location.href` assignment).
|
|
18
|
+
* - `"push"` / `"replace"` — `history.pushState` / `history.replaceState`,
|
|
19
|
+
* the SPA route-change primitives (React Router, Vue Router, etc.).
|
|
20
|
+
* - `"pop"` — a `popstate` event (back/forward within the SPA).
|
|
21
|
+
* - `"hash"` — a `hashchange` event.
|
|
22
|
+
*
|
|
23
|
+
* @category Core Types
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
export type WebviewNavType = "push" | "replace" | "pop" | "load" | "hash";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* One navigation event from {@link WebFrame.onNavigate}.
|
|
30
|
+
*
|
|
31
|
+
* @category Core Types
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
export interface WebviewNavigateEvent {
|
|
35
|
+
/** The kind of navigation — see {@link WebviewNavType}. */
|
|
36
|
+
type: WebviewNavType;
|
|
37
|
+
/** The frame's URL after the navigation. */
|
|
38
|
+
url: string;
|
|
39
|
+
/**
|
|
40
|
+
* `true` on the first event reported by a freshly created document — i.e.
|
|
41
|
+
* this event is the result of a full document load, whoever initiated it.
|
|
42
|
+
* `false` for every subsequent event from the same document (SPA route
|
|
43
|
+
* changes, the page's own `replaceState` calls, hash changes).
|
|
44
|
+
*
|
|
45
|
+
* This matters because frameworks commonly call `history.replaceState`
|
|
46
|
+
* while booting, so a single full-page navigation can report a `"replace"`
|
|
47
|
+
* event *before* its `"load"`. Without this flag a consumer tracking its
|
|
48
|
+
* own history stack can't tell that boot-time `"replace"` (a brand-new
|
|
49
|
+
* page — usually a new history entry) apart from a genuine in-page
|
|
50
|
+
* `replaceState` (rewrite the current entry).
|
|
51
|
+
*/
|
|
52
|
+
newDocument: boolean;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* A rectangle in frame-relative CSS pixels — the coordinate space
|
|
57
|
+
* `getBoundingClientRect()` returns inside the frame's own document. Used by
|
|
58
|
+
* {@link WebFrame.captureRect} (e.g. for a picked element or a marquee
|
|
59
|
+
* selection) and returned as part of {@link PickedElement}.
|
|
60
|
+
*
|
|
61
|
+
* @category Core Types
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
export interface WebviewRect {
|
|
65
|
+
x: number;
|
|
66
|
+
y: number;
|
|
67
|
+
width: number;
|
|
68
|
+
height: number;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* The result of {@link WebFrame.pickElement} — what the user clicked while
|
|
73
|
+
* picking.
|
|
74
|
+
*
|
|
75
|
+
* @category Core Types
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
export interface PickedElement {
|
|
79
|
+
/** A CSS selector breadcrumb from `<html>` down to the clicked element (tag + up to 2 classes per level). */
|
|
80
|
+
selector: string;
|
|
81
|
+
/** The element's trimmed text content, truncated to 200 characters. */
|
|
82
|
+
text: string;
|
|
83
|
+
/** The element's frame-relative bounding rect — pass to {@link WebFrame.captureRect} to screenshot just this element. */
|
|
84
|
+
rect: WebviewRect;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* A live connection to an embedded frame's content, returned by
|
|
89
|
+
* {@link WebviewService.attach}. Dispose it (or let `ctx.subscriptions`
|
|
90
|
+
* dispose it) when your panel unmounts.
|
|
91
|
+
*
|
|
92
|
+
* @category Consumer Services
|
|
93
|
+
* @public
|
|
94
|
+
*/
|
|
95
|
+
export interface WebFrame extends Disposable {
|
|
96
|
+
/** The frame's current URL, updated on every {@link onNavigate} event. `null` before the first load. */
|
|
97
|
+
readonly url: string | null;
|
|
98
|
+
/** Subscribe to in-frame navigation — the only way to track SPA route changes and full loads alike. See {@link WebviewNavType}. */
|
|
99
|
+
onNavigate: Event<WebviewNavigateEvent>;
|
|
100
|
+
/**
|
|
101
|
+
* Fires when a navigation lands on what looks like a frame-blocked page —
|
|
102
|
+
* sites sending `X-Frame-Options` / `frame-ancestors` don't error, WebKit
|
|
103
|
+
* (and other engines) just commit an empty document at the target URL, so
|
|
104
|
+
* this is a heuristic (empty title + no body content after load), not a
|
|
105
|
+
* definitive diagnosis. Treat it as "this page probably won't work
|
|
106
|
+
* embedded — offer to open it in a browser instead."
|
|
107
|
+
*/
|
|
108
|
+
onBlocked: Event<void>;
|
|
109
|
+
/** Navigate the frame back in its history, if possible. */
|
|
110
|
+
back(): void;
|
|
111
|
+
/** Navigate the frame forward in its history, if possible. */
|
|
112
|
+
forward(): void;
|
|
113
|
+
/** Reload the frame's current page. */
|
|
114
|
+
reload(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Run JavaScript inside the frame and resolve with its result. A single
|
|
117
|
+
* expression's value is returned (e.g. `"document.title"`,
|
|
118
|
+
* `"location.href"`, `"document.querySelectorAll('a').length"`) — matching
|
|
119
|
+
* how a devtools console evaluates. Multi-statement code runs but only
|
|
120
|
+
* returns a value if it ends in an explicit `return`-compatible form.
|
|
121
|
+
* The result must be structured-clone-safe (no DOM nodes, functions, etc.).
|
|
122
|
+
*/
|
|
123
|
+
exec<T = unknown>(code: string): Promise<T>;
|
|
124
|
+
/**
|
|
125
|
+
* Enter interactive element-pick mode: the user hovers to highlight and
|
|
126
|
+
* clicks to select, or presses Escape to cancel. Resolves with the picked
|
|
127
|
+
* element, or `null` if cancelled. No timeout — this is inherently
|
|
128
|
+
* user-paced.
|
|
129
|
+
*/
|
|
130
|
+
pickElement(): Promise<PickedElement | null>;
|
|
131
|
+
/**
|
|
132
|
+
* Cancel an in-flight {@link pickElement} call — exits pick mode in the
|
|
133
|
+
* frame and resolves the pending `pickElement()` promise with `null`. A
|
|
134
|
+
* no-op if no pick is active (including if it already ended, e.g. via
|
|
135
|
+
* Escape or a click).
|
|
136
|
+
*/
|
|
137
|
+
cancelPick(): void;
|
|
138
|
+
/** A native PNG snapshot of the frame's current visible viewport. */
|
|
139
|
+
capture(): Promise<Blob>;
|
|
140
|
+
/** A native PNG snapshot of a frame-relative sub-rect — e.g. a {@link PickedElement.rect} or a marquee selection. */
|
|
141
|
+
captureRect(rect: WebviewRect): Promise<Blob>;
|
|
142
|
+
/** A native PNG snapshot of the frame's entire scrollable document, stitched from scrolled captures. Scroll position is restored afterward. */
|
|
143
|
+
captureFullPage(): Promise<Blob>;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* The webview-bridge domain, exposed as {@link ExtensionContext.webview}.
|
|
148
|
+
* Requires the `"webview"` {@link Permission}.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```tsx
|
|
152
|
+
* function MyPanel({ ctx }: { ctx: ExtensionContext }) {
|
|
153
|
+
* const iframeRef = useRef<HTMLIFrameElement>(null);
|
|
154
|
+
* const frameRef = useRef<WebFrame | null>(null);
|
|
155
|
+
*
|
|
156
|
+
* useEffect(() => {
|
|
157
|
+
* if (!iframeRef.current) return;
|
|
158
|
+
* const frame = ctx.webview.attach(iframeRef.current);
|
|
159
|
+
* frameRef.current = frame;
|
|
160
|
+
* const sub = frame.onNavigate((e) => console.log(e.type, e.url));
|
|
161
|
+
* return () => { sub.dispose(); frame.dispose(); };
|
|
162
|
+
* }, []);
|
|
163
|
+
*
|
|
164
|
+
* return <iframe ref={iframeRef} src="https://example.com" />;
|
|
165
|
+
* }
|
|
166
|
+
* ```
|
|
167
|
+
*
|
|
168
|
+
* @category Consumer Services
|
|
169
|
+
* @public
|
|
170
|
+
*/
|
|
171
|
+
export interface WebviewService {
|
|
172
|
+
/**
|
|
173
|
+
* Attach the bridge to an iframe your panel owns. The iframe can be
|
|
174
|
+
* cross-origin — that's the point. Returns a {@link WebFrame}; call
|
|
175
|
+
* `.dispose()` (or push it onto `ctx.subscriptions`) when done with it.
|
|
176
|
+
*/
|
|
177
|
+
attach(frame: HTMLIFrameElement): WebFrame;
|
|
178
|
+
}
|