From 224a4d0bcc945a12b6c4bcbd416db6a5cfcf996f Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Mon, 14 Oct 2024 16:03:01 -0700 Subject: [PATCH] update to wabac.js 2.20.0-beta.4 add new file.path lookup via contextBridge --- package.json | 2 +- src/chooser.ts | 12 +++++++++++- src/electron-preload.ts | 11 ++++++++--- src/types.ts | 2 +- webpack.config.js | 2 +- yarn.lock | 8 ++++---- 6 files changed, 26 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 7d82ff16..84ac7f8d 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^5.15.4", "@shoelace-style/shoelace": "~2.15.1", - "@webrecorder/wabac": "^2.20.0-beta.3", + "@webrecorder/wabac": "^2.20.0-beta.4", "bulma": "^0.9.3", "electron-log": "^4.4.1", "electron-updater": "^6.3.2", diff --git a/src/chooser.ts b/src/chooser.ts index 61818dc3..de65aaf9 100644 --- a/src/chooser.ts +++ b/src/chooser.ts @@ -5,9 +5,15 @@ import fasUpload from "@fortawesome/fontawesome-free/svgs/solid/upload.svg"; import { customElement, property } from "lit/decorators.js"; export interface FileWithPath extends File { - readonly path: string; + path: string; } +declare let window: Window & { + electron?: { + getPath: (file: File) => string; + }; +}; + // =========================================================================== @customElement("wr-chooser") export class Chooser extends LitElement { @@ -89,6 +95,10 @@ export class Chooser extends LitElement { setFile(file: FileWithPath) { this.file = file; // file.path only available in electron app + if (IS_APP && window.electron?.getPath) { + this.file.path = window.electron.getPath(this.file); + } + this.fileDisplayName = "file://" + (file.path || file.name); } diff --git a/src/electron-preload.ts b/src/electron-preload.ts index b71fac37..b1329e42 100644 --- a/src/electron-preload.ts +++ b/src/electron-preload.ts @@ -3,9 +3,14 @@ import { CollectionLoader } from "@webrecorder/wabac/swlib"; import { type IpcRendererEvent } from "electron"; -const { ipcRenderer, contextBridge } = require("electron"); - -contextBridge.exposeInMainWorld("electron", { IS_APP: true }); +const { ipcRenderer, contextBridge, webUtils } = require("electron"); + +contextBridge.exposeInMainWorld("electron", { + IS_APP: true, + getPath(file: File) { + return webUtils.getPathForFile(file); + }, +}); const dbs = {}; diff --git a/src/types.ts b/src/types.ts index b6e2e335..91d07704 100644 --- a/src/types.ts +++ b/src/types.ts @@ -16,7 +16,7 @@ export type URLResource = { export type Page = URLResource; export type ItemType = { - filename: string; + filename?: string; sourceUrl: string; replayPrefix: string; apiPrefix: string; diff --git a/webpack.config.js b/webpack.config.js index 21dcccfa..33d7982b 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -125,7 +125,7 @@ const browserConfig = (env, argv) => { }, entry, optimization, - devtool: argv.mode === "production" ? undefined : "source-map", + //devtool: argv.mode === "production" ? undefined : "source-map", output: { path: path.join(__dirname), filename: "[name].js", diff --git a/yarn.lock b/yarn.lock index d3f12282..81304443 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1021,10 +1021,10 @@ resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== -"@webrecorder/wabac@^2.20.0-beta.3": - version "2.20.0-beta.3" - resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.20.0-beta.3.tgz#034cd07078270537028104ba407ae5b7baa2dd20" - integrity sha512-/s98zVZFn8+0btTwsb2kRiwyfLZxPyWwKclsrpFQvyUCsvrQsTTKVbHTpictAlmyknOIdkrLqqWK4ScYTs39Xg== +"@webrecorder/wabac@^2.20.0-beta.4": + version "2.20.0-beta.4" + resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.20.0-beta.4.tgz#c60fcd00f449cca52ce1a0bef305a06922c9e3e8" + integrity sha512-enHYcZoqs7cOu2tdTqVeB/zB27uL4wmCMzvF55bJqdB8d5zgPpY+/fpRA3eLxGrPc0nFYAjsI/aNaa62FH7WKQ== dependencies: "@peculiar/asn1-ecc" "^2.3.4" "@peculiar/asn1-schema" "^2.3.3"