dsh-browser-plus 0.0.0-stage → 0.5.1
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/CHANGELOG.md +153 -0
- package/LICENSE +22 -0
- package/NOTICE.md +7 -0
- package/README.en.md +119 -0
- package/README.md +118 -2
- package/assets/dsh-browser-plus-256.png +0 -0
- package/assets/dsh-browser-plus-512.png +0 -0
- package/assets/dsh-browser-plus-small.svg +9 -0
- package/assets/dsh-browser-plus.ico +0 -0
- package/assets/dsh-browser-plus.svg +11 -0
- package/assets/readme-workspace.png +0 -0
- package/client/index.js +185 -0
- package/cordis.patch.yml +41 -0
- package/docs/MIGRATION.md +48 -0
- package/docs/README.md +22 -0
- package/docs/SOAK-CHECKLIST.md +98 -0
- package/docs/architecture.md +88 -0
- package/docs/tool-reference.md +126 -0
- package/docs/user-guide.md +137 -0
- package/docs/why-browser.md +45 -0
- package/lib/browser/runtime.d.ts +238 -0
- package/lib/browser/runtime.js +330 -0
- package/lib/browser/types.d.ts +758 -0
- package/lib/browser/types.js +18 -0
- package/lib/browser-electron/auth-cookies.d.ts +54 -0
- package/lib/browser-electron/auth-cookies.js +83 -0
- package/lib/browser-electron/chrome-state.d.ts +211 -0
- package/lib/browser-electron/chrome-state.js +12 -0
- package/lib/browser-electron/entry.d.ts +73 -0
- package/lib/browser-electron/entry.js +65 -0
- package/lib/browser-electron/fingerprint.d.ts +29 -0
- package/lib/browser-electron/fingerprint.js +42 -0
- package/lib/browser-electron/host-main.d.ts +19 -0
- package/lib/browser-electron/host-main.js +2691 -0
- package/lib/browser-electron/icon.d.ts +11 -0
- package/lib/browser-electron/icon.js +23 -0
- package/lib/browser-electron/page-chrome.d.ts +21 -0
- package/lib/browser-electron/page-chrome.js +2269 -0
- package/lib/browser-electron/provider.d.ts +767 -0
- package/lib/browser-electron/provider.js +2825 -0
- package/lib/browser-electron/remote-host.d.ts +145 -0
- package/lib/browser-electron/remote-host.js +993 -0
- package/lib/browser-electron/task-summary.d.ts +2 -0
- package/lib/browser-electron/task-summary.js +12 -0
- package/lib/browser-electron/task-thumbnail.d.ts +11 -0
- package/lib/browser-electron/task-thumbnail.js +9 -0
- package/lib/browser-electron/write-guard.d.ts +41 -0
- package/lib/browser-electron/write-guard.js +123 -0
- package/lib/client.js +185 -0
- package/lib/command-browser/index.d.ts +20 -0
- package/lib/command-browser/index.js +35 -0
- package/lib/http-browser/index.d.ts +28 -0
- package/lib/http-browser/index.js +110 -0
- package/lib/index.d.ts +27 -0
- package/lib/index.js +25 -0
- package/lib/task-todos/index.d.ts +25 -0
- package/lib/task-todos/index.js +100 -0
- package/lib/tool-browser/index.d.ts +31 -0
- package/lib/tool-browser/index.js +2026 -0
- package/package.json +120 -4
- package/screenshots.json +3 -0
- package/scripts/build-client.mjs +20 -0
- package/scripts/build-icons.mjs +80 -0
- package/scripts/capture-window.ps1 +79 -0
- package/scripts/crop-image.ps1 +20 -0
- package/scripts/smoke-browser-tools.mjs +2051 -0
- package/scripts/smoke-chrome-world.mjs +65 -0
- package/scripts/smoke-electron-host.mjs +50 -0
- package/scripts/test-orb-drag.mjs +83 -0
- package/src/browser/runtime.ts +506 -0
- package/src/browser/types.ts +741 -0
- package/src/browser-electron/auth-cookies.ts +125 -0
- package/src/browser-electron/chrome-state.ts +192 -0
- package/src/browser-electron/entry.ts +125 -0
- package/src/browser-electron/fingerprint.ts +45 -0
- package/src/browser-electron/host-main.ts +2526 -0
- package/src/browser-electron/icon.ts +26 -0
- package/src/browser-electron/page-chrome.ts +2281 -0
- package/src/browser-electron/provider.ts +3366 -0
- package/src/browser-electron/remote-host.ts +1051 -0
- package/src/browser-electron/task-summary.ts +10 -0
- package/src/browser-electron/task-thumbnail.ts +17 -0
- package/src/browser-electron/write-guard.ts +134 -0
- package/src/command-browser/index.ts +61 -0
- package/src/http-browser/index.ts +139 -0
- package/src/index.ts +65 -0
- package/src/task-todos/index.ts +114 -0
- package/src/tool-browser/index.ts +2071 -0
- package/src/types/electron-shim.d.ts +143 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ambient declaration for the `electron` module used by the self-hosted
|
|
3
|
+
* browser host (`host-main.ts`). The electron package is an optional peer
|
|
4
|
+
* dependency (present in desktop-shell environments), so it is not in
|
|
5
|
+
* devDependencies; this shim keeps typechecking self-contained.
|
|
6
|
+
* @module dsh-browser-plus/types/electron-shim
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
declare module 'electron' {
|
|
10
|
+
export interface WebContentsDebugger {
|
|
11
|
+
attach(version: string): void
|
|
12
|
+
detach(): void
|
|
13
|
+
sendCommand(method: string, params?: Record<string, unknown>): Promise<unknown>
|
|
14
|
+
on(event: 'message', listener: (event: unknown, method: string, params: Record<string, unknown>) => void): void
|
|
15
|
+
}
|
|
16
|
+
export interface DownloadItem {
|
|
17
|
+
setSavePath(path: string): void
|
|
18
|
+
}
|
|
19
|
+
export interface Cookie {
|
|
20
|
+
domain: string
|
|
21
|
+
path: string
|
|
22
|
+
secure: boolean
|
|
23
|
+
httpOnly: boolean
|
|
24
|
+
name: string
|
|
25
|
+
value: string
|
|
26
|
+
expirationDate?: number
|
|
27
|
+
}
|
|
28
|
+
export interface CookieSetter {
|
|
29
|
+
url: string
|
|
30
|
+
name: string
|
|
31
|
+
value: string
|
|
32
|
+
domain?: string
|
|
33
|
+
path?: string
|
|
34
|
+
secure?: boolean
|
|
35
|
+
httpOnly?: boolean
|
|
36
|
+
expirationDate?: number
|
|
37
|
+
}
|
|
38
|
+
export interface WebRequestHeadersDetails {
|
|
39
|
+
requestHeaders: Record<string, string>
|
|
40
|
+
}
|
|
41
|
+
export interface Session {
|
|
42
|
+
once(event: 'will-download', listener: (event: Event, item: DownloadItem) => void): void
|
|
43
|
+
setUserAgent(userAgent: string, acceptLanguages?: string): void
|
|
44
|
+
fetch(url: string, options?: { signal?: AbortSignal }): Promise<{
|
|
45
|
+
readonly ok: boolean
|
|
46
|
+
readonly headers: { get(name: string): string | null }
|
|
47
|
+
arrayBuffer(): Promise<ArrayBuffer>
|
|
48
|
+
}>
|
|
49
|
+
readonly webRequest: {
|
|
50
|
+
onBeforeSendHeaders(listener: (details: WebRequestHeadersDetails, callback: (response: { requestHeaders: Record<string, string> }) => void) => void): void
|
|
51
|
+
}
|
|
52
|
+
readonly cookies: {
|
|
53
|
+
get(filter: Record<string, unknown>): Promise<Cookie[]>
|
|
54
|
+
set(details: CookieSetter): Promise<void>
|
|
55
|
+
remove(url: string, name: string): Promise<void>
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export const session: {
|
|
59
|
+
readonly defaultSession: Session
|
|
60
|
+
fromPartition(partition: string, options?: Record<string, unknown>): Session
|
|
61
|
+
}
|
|
62
|
+
export interface NativeImage {
|
|
63
|
+
resize(options: { width: number }): NativeImage
|
|
64
|
+
toJPEG(quality: number): Buffer
|
|
65
|
+
toPNG(): Buffer
|
|
66
|
+
getSize(): { width: number; height: number }
|
|
67
|
+
}
|
|
68
|
+
export interface WebContents {
|
|
69
|
+
readonly id: number
|
|
70
|
+
readonly navigationHistory: {
|
|
71
|
+
back(): void
|
|
72
|
+
canGoBack(): boolean
|
|
73
|
+
canGoForward(): boolean
|
|
74
|
+
forward(): void
|
|
75
|
+
}
|
|
76
|
+
isDestroyed(): boolean
|
|
77
|
+
getTitle(): string
|
|
78
|
+
getZoomFactor(): number
|
|
79
|
+
setZoomFactor(factor: number): void
|
|
80
|
+
reload(): void
|
|
81
|
+
stop(): void
|
|
82
|
+
readonly debugger: WebContentsDebugger
|
|
83
|
+
readonly session: Session
|
|
84
|
+
close(): void
|
|
85
|
+
downloadURL(url: string): void
|
|
86
|
+
capturePage(): Promise<NativeImage>
|
|
87
|
+
executeJavaScript(code: string, userGesture?: boolean): Promise<unknown>
|
|
88
|
+
loadURL(url: string): Promise<void>
|
|
89
|
+
getURL(): string
|
|
90
|
+
setWindowOpenHandler(handler: (details: { url: string }) => { action: 'deny' | 'allow' }): void
|
|
91
|
+
on(event: 'did-navigate' | 'did-navigate-in-page', listener: (event: unknown, url?: string) => void): this
|
|
92
|
+
on(event: 'did-finish-load' | 'did-start-loading' | 'did-stop-loading' | 'page-title-updated', listener: () => void): this
|
|
93
|
+
on(event: 'page-favicon-updated', listener: (event: unknown, favicons: string[]) => void): this
|
|
94
|
+
}
|
|
95
|
+
export interface WebContentsView {
|
|
96
|
+
readonly webContents: WebContents
|
|
97
|
+
setBounds(bounds: { x: number; y: number; width: number; height: number }): void
|
|
98
|
+
setVisible(visible: boolean): void
|
|
99
|
+
setBackgroundColor(color: string): void
|
|
100
|
+
getVisible(): boolean
|
|
101
|
+
getBounds(): { x: number; y: number; width: number; height: number }
|
|
102
|
+
}
|
|
103
|
+
export interface BrowserWindow {
|
|
104
|
+
readonly contentView: {
|
|
105
|
+
addChildView(view: WebContentsView): void
|
|
106
|
+
removeChildView(view: WebContentsView): void
|
|
107
|
+
readonly children: WebContentsView[]
|
|
108
|
+
}
|
|
109
|
+
getBounds(): { x: number; y: number; width: number; height: number }
|
|
110
|
+
getContentSize(): [number, number]
|
|
111
|
+
setMenu(menu: unknown | null): void
|
|
112
|
+
isVisible(): boolean
|
|
113
|
+
isMinimized(): boolean
|
|
114
|
+
isFocused(): boolean
|
|
115
|
+
show(): void
|
|
116
|
+
restore(): void
|
|
117
|
+
focus(): void
|
|
118
|
+
setTitle(title: string): void
|
|
119
|
+
isDestroyed(): boolean
|
|
120
|
+
on(event: 'closed', listener: () => void): this
|
|
121
|
+
on(event: 'resize' | 'restore' | 'show' | 'maximize' | 'unmaximize', listener: () => void): this
|
|
122
|
+
off(event: 'closed', listener: () => void): this
|
|
123
|
+
off(event: 'resize', listener: () => void): this
|
|
124
|
+
}
|
|
125
|
+
export const app: {
|
|
126
|
+
whenReady(): Promise<void>
|
|
127
|
+
exit(code?: number): void
|
|
128
|
+
/** Electron derives each view UA from this; assigning it is how the host masks. */
|
|
129
|
+
userAgentFallback: string
|
|
130
|
+
getLocale(): string
|
|
131
|
+
getPath(name: string): string
|
|
132
|
+
setPath(name: string, path: string): void
|
|
133
|
+
dock?: { setIcon(path: string): void }
|
|
134
|
+
}
|
|
135
|
+
export interface BrowserWindowConstructor {
|
|
136
|
+
new(options?: Record<string, unknown>): BrowserWindow
|
|
137
|
+
}
|
|
138
|
+
export interface WebContentsViewConstructor {
|
|
139
|
+
new(options?: Record<string, unknown>): WebContentsView
|
|
140
|
+
}
|
|
141
|
+
export const BrowserWindow: BrowserWindowConstructor
|
|
142
|
+
export const WebContentsView: WebContentsViewConstructor
|
|
143
|
+
}
|