@vibecook/ghosttea-electron 0.11.0 → 0.12.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/links.d.ts +9 -0
- package/dist/links.d.ts.map +1 -0
- package/dist/links.js +25 -0
- package/dist/links.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +1 -0
- package/dist/main.js.map +1 -1
- package/dist/preload.d.ts +1 -0
- package/dist/preload.d.ts.map +1 -1
- package/dist/preload.js +1 -0
- package/dist/preload.js.map +1 -1
- package/package.json +3 -3
package/dist/links.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IpcMain, IpcRenderer, Shell, WebContents } from "electron";
|
|
2
|
+
/** Register only the app's own terminal WebContents; subframes cannot invoke this bridge. */
|
|
3
|
+
export declare function installGhostteaLinkHost(ipcMain: IpcMain, shell: Pick<Shell, "openExternal">, isTrusted: (sender: WebContents) => boolean): {
|
|
4
|
+
dispose(): void;
|
|
5
|
+
};
|
|
6
|
+
export declare function createGhostteaLinkBridge(ipcRenderer: IpcRenderer): {
|
|
7
|
+
openExternal(url: string): Promise<void>;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAsB,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK7F,6FAA6F;AAC7F,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,EAClC,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,GAC1C;IAAE,OAAO,IAAI,IAAI,CAAA;CAAE,CASrB;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,WAAW,GAAG;IAAE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAQ/G"}
|
package/dist/links.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { terminalLinkUrl } from "@vibecook/ghosttea-protocol";
|
|
2
|
+
const OPEN_LINK_CHANNEL = "ghosttea:links:open";
|
|
3
|
+
/** Register only the app's own terminal WebContents; subframes cannot invoke this bridge. */
|
|
4
|
+
export function installGhostteaLinkHost(ipcMain, shell, isTrusted) {
|
|
5
|
+
ipcMain.handle(OPEN_LINK_CHANNEL, async (event, value) => {
|
|
6
|
+
if (event.senderFrame !== event.sender.mainFrame || !isTrusted(event.sender))
|
|
7
|
+
throw new Error("Untrusted terminal link sender");
|
|
8
|
+
const url = terminalLinkUrl(value);
|
|
9
|
+
if (!url)
|
|
10
|
+
throw new TypeError("Unsupported terminal link URL");
|
|
11
|
+
await shell.openExternal(url);
|
|
12
|
+
});
|
|
13
|
+
return { dispose: () => ipcMain.removeHandler(OPEN_LINK_CHANNEL) };
|
|
14
|
+
}
|
|
15
|
+
export function createGhostteaLinkBridge(ipcRenderer) {
|
|
16
|
+
return {
|
|
17
|
+
openExternal: async (value) => {
|
|
18
|
+
const url = terminalLinkUrl(value);
|
|
19
|
+
if (!url)
|
|
20
|
+
throw new TypeError("Unsupported terminal link URL");
|
|
21
|
+
await ipcRenderer.invoke(OPEN_LINK_CHANNEL, url);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.js","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEhD,6FAA6F;AAC7F,MAAM,UAAU,uBAAuB,CACrC,OAAgB,EAChB,KAAkC,EAClC,SAA2C;IAE3C,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAyB,EAAE,KAAc,EAAE,EAAE;QACpF,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAC/D,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,WAAwB;IAC/D,OAAO;QACL,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;YAC/D,MAAM,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/main.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export { allSettledWithin } from "./deadline.js";
|
|
|
6
6
|
export { ghostteaEditCommand, installGhostteaEditShortcuts, type GhostteaEditCommand, type GhostteaKeyInput, } from "./edit-commands.js";
|
|
7
7
|
export { TerminalSupervisor, type GhostteaBinary, type TerminalSupervisorOptions } from "./supervisor.js";
|
|
8
8
|
export type { TerminalDaemonConnection } from "./types.js";
|
|
9
|
+
export { installGhostteaLinkHost } from "./links.js";
|
|
9
10
|
//# sourceMappingURL=main.d.ts.map
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,KAAK,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EACL,wBAAwB,EACxB,mCAAmC,EACnC,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,KAAK,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC1G,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,KAAK,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EACL,wBAAwB,EACxB,mCAAmC,EACnC,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,KAAK,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC1G,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -5,4 +5,5 @@ export { installGhostteaClipboardHost } from "./clipboard.js";
|
|
|
5
5
|
export { allSettledWithin } from "./deadline.js";
|
|
6
6
|
export { ghostteaEditCommand, installGhostteaEditShortcuts, } from "./edit-commands.js";
|
|
7
7
|
export { TerminalSupervisor } from "./supervisor.js";
|
|
8
|
+
export { installGhostteaLinkHost } from "./links.js";
|
|
8
9
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAuC,MAAM,cAAc,CAAC;AAC5F,OAAO,EACL,wBAAwB,EACxB,mCAAmC,GAMpC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAsC,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAA8B,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAG7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAuD,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAuC,MAAM,cAAc,CAAC;AAC5F,OAAO,EACL,wBAAwB,EACxB,mCAAmC,GAMpC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAsC,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAA8B,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAG7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAuD,MAAM,iBAAiB,CAAC;AAG1G,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/preload.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IpcRenderer } from "electron";
|
|
2
2
|
export { createGhostteaClipboardBridge, type GhostteaClipboardBridge } from "./clipboard.js";
|
|
3
3
|
export declare function forwardGhostteaRendererPorts(ipcRenderer: IpcRenderer, channel?: string): () => void;
|
|
4
|
+
export { createGhostteaLinkBridge } from "./links.js";
|
|
4
5
|
//# sourceMappingURL=preload.d.ts.map
|
package/dist/preload.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,SAAmB,GAAG,MAAM,IAAI,CAM7G"}
|
|
1
|
+
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,SAAmB,GAAG,MAAM,IAAI,CAM7G;AAED,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/preload.js
CHANGED
|
@@ -6,4 +6,5 @@ export function forwardGhostteaRendererPorts(ipcRenderer, channel = "terminal-po
|
|
|
6
6
|
ipcRenderer.on(channel, listener);
|
|
7
7
|
return () => ipcRenderer.removeListener(channel, listener);
|
|
8
8
|
}
|
|
9
|
+
export { createGhostteaLinkBridge } from "./links.js";
|
|
9
10
|
//# sourceMappingURL=preload.js.map
|
package/dist/preload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAgC,MAAM,gBAAgB,CAAC;AAG7F,MAAM,UAAU,4BAA4B,CAAC,WAAwB,EAAE,OAAO,GAAG,gBAAgB;IAC/F,MAAM,QAAQ,GAAG,CAAC,KAAuB,EAAQ,EAAE;QACjD,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAyC,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1G,CAAC,CAAC;IACF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAgC,MAAM,gBAAgB,CAAC;AAG7F,MAAM,UAAU,4BAA4B,CAAC,WAAwB,EAAE,OAAO,GAAG,gBAAgB;IAC/F,MAAM,QAAQ,GAAG,CAAC,KAAuB,EAAQ,EAAE;QACjD,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAyC,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1G,CAAC,CAAC;IACF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibecook/ghosttea-electron",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Electron lifecycle and direct renderer transport for Ghosttea.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "James Yong",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"prepublishOnly": "npm run build"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@vibecook/ghosttea-client": "0.
|
|
68
|
-
"@vibecook/ghosttea-protocol": "0.
|
|
67
|
+
"@vibecook/ghosttea-client": "0.12.0",
|
|
68
|
+
"@vibecook/ghosttea-protocol": "0.12.0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependencies": {
|
|
71
71
|
"electron": ">=35"
|