diff --git a/.github/workflows/buildext.yaml b/.github/workflows/buildext.yaml index b3670af..46d9b3f 100644 --- a/.github/workflows/buildext.yaml +++ b/.github/workflows/buildext.yaml @@ -38,12 +38,12 @@ jobs: - name: Create ZIP for Extension run: | cd dist/ext - zip ../../ArchiveWeb.page-${{ steps.package-version.outputs.current-version }}-extension.zip -r ./ + zip ../../Packrat-${{ steps.package-version.outputs.current-version }}-extension.zip -r ./ - name: Upload Extension ZIP to GitHub uses: softprops/action-gh-release@v1 with: - files: ArchiveWeb.page-${{ steps.package-version.outputs.current-version }}-extension.zip + files: Packrat-${{ steps.package-version.outputs.current-version }}-extension.zip tag_name: v${{ steps.package-version.outputs.current-version }} fail_on_unmatched_files: true draft: true @@ -51,7 +51,7 @@ jobs: - name: Upload Extension ZIP to Chrome Web Store uses: mnao305/chrome-extension-upload@3.0.0 with: - file-path: ArchiveWeb.page-${{ steps.package-version.outputs.current-version }}-extension.zip + file-path: Packrat-${{ steps.package-version.outputs.current-version }}-extension.zip extension-id: fpeoodllldobpkbkabpblcfaogecpndd client-id: ${{ secrets.CHROME_WEBSTORE_CLIENT_ID }} client-secret: ${{ secrets.CHROME_WEBSTORE_CLIENT_SECRET }} diff --git a/README.md b/README.md index 925f512..aeace25 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,19 @@

- ArchiveWebpage + Packrat by OPFN

-ArchiveWeb.page is a JavaScript based application for interactive, high-fidelity web archiving that runs directly in the browser. The system can be used as a Chrome/Chromium based browser extension and also as a standalone Electron app. +Packrat is an browser extension for Chromium-based browsers that lets you create high-fidelity web archives out of your browsing history. -The system creates, stores, and replays high-fidelity web archives stored directly in the browser's storage (via IndexedDB). - -For more detailed info on how to use the extension and standalone app, see the [ArchiveWeb.page User Guide](https://archiveweb.page/guide). - -The browser extension is available on the [Chrome Web Store](https://chrome.google.com/webstore/detail/webrecorder/fpeoodllldobpkbkabpblcfaogecpndd). - -Downloads for the desktop are are available on the [GitHub Releases page](https://github.com/webrecorder/archiveweb.page/releases). +Packrat is available on the Chrome Web Store. ## Architecture -The extension makes use of the Chrome debugging protocol to capture and save network traffic, and extends the [ReplayWeb.page](https://github.com/webrecorder/replayweb.page) UI and the [wabac.js](https://github.com/webrecorder/wabac.js) service worker system for replay and storage. +Packrat is based on Webrecorder's [ArchiveWeb.page](https://webrecorder.net/archivewebpage) which uses the Chrome debugging protocol to capture and save network traffic. Like ArchiveWeb.page, Packrat also uses Webrecorder's [ReplayWeb.page](https://webrecorder.net/replaywebpage) viewer to replay archived content. ## Development -The Chromium extension and Electron app are built from the same source code for ease of development. - ### Prerequisites - Node >=12 @@ -31,26 +23,19 @@ The Chromium extension and Electron app are built from the same source code for To build the extension or Electron app locally for development, do the following: -1. Clone this repo: - ```sh - git clone https://github.com/webrecorder/archiveweb.page.git - ``` -2. Change the working directory: - ```sh - cd archiveweb.page - ``` -3. Install dependencies: +1. Clone this repo and `cd` to the working directory +2. Install dependencies: ```sh yarn install ``` -4. Make development build: +3. Create a development build: ```sh yarn build-dev ``` + OR + Run `yarn start-ext` to update the build automatically as you make changes -The development build can now be used to develop the extension or Electron app. - -### Developing the Chromium extension +### Adding the development extension to Chrome To install the extension locally, load the development build as an unpacked extension: @@ -58,46 +43,5 @@ To install the extension locally, load the development build as an unpacked exte 2. Choose 'Load Unpacked Extension' and point to the `./dist/ext` directory in your local copy of this repo. -3. Click the extension icon to show the extension popup, start archiving, etc... - -#### Update extension on code changes - -To watch source code files and recompile the development build on change, run: - -```sh -yarn run start-ext -``` - -Now, saving changes to source will automatically rebuild the `dist/ext` directory. - -After making changes, the extension still needs to be reloaded in the browser. - -1. From the Chrome extensions page, click the reload button to load the latest version. - -2. Click the extension icon to show the extension popup, start recording, etc... The dev build of the extension will be a different color from the production version. - -### Developing the Electron app - -To start the Electron app using development build: - -```sh -yarn run start-electron -``` - -The Electron app will open recording in a new window. It is is designed to support Flash, better support for IPFS sharing. - -#### Update app on change - -Currently, the dev workflow for the Electron app does not support automatically rebuilding on file changes. - -After making changes, rerun `yarn run build-dev` and `yarn run start-electron` to view your changes in the app. - -## Standalone Build - -To create a platform-specific binary, run: - -```sh -yarn run pack -``` - -The standalone app will then be available in the `./dist/` directory. +> [!NOTE] +> You'll still have to refresh the extension from chrome://extensions as you make changes, even if you're using live reloading. diff --git a/package.json b/package.json index c80b57a..53380cb 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { - "name": "@webrecorder/archivewebpage", - "productName": "ArchiveWeb.page", + "name": "@opfn/packrat", + "productName": "Packrat", "version": "0.15.0", "main": "index.js", - "description": "Create Web Archives directly in your browser", + "description": "Create an archive of every page you browse", "repository": { "type": "git", "url": "git+https://github.com/webrecorder/archiveweb.page.git" }, - "author": "Webrecorder Software", + "author": "OPFN", "license": "AGPL-3.0-or-later", "dependencies": { "@fortawesome/fontawesome-free": "^5.13.0", diff --git a/src/assets/brand/archivewebpage-lockup-color-dynamic.svg b/src/assets/brand/archivewebpage-lockup-color-dynamic.svg deleted file mode 100644 index c287f42..0000000 --- a/src/assets/brand/archivewebpage-lockup-color-dynamic.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/brand/archivewebpage-lockup-color.svg b/src/assets/brand/archivewebpage-lockup-color.svg deleted file mode 100644 index 2a2cf74..0000000 --- a/src/assets/brand/archivewebpage-lockup-color.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/brand/packrat-lockup-color-dynamic.svg b/src/assets/brand/packrat-lockup-color-dynamic.svg new file mode 100644 index 0000000..db99ab1 --- /dev/null +++ b/src/assets/brand/packrat-lockup-color-dynamic.svg @@ -0,0 +1 @@ + diff --git a/src/assets/brand/packrat-lockup-color.svg b/src/assets/brand/packrat-lockup-color.svg new file mode 100644 index 0000000..7b120bc --- /dev/null +++ b/src/assets/brand/packrat-lockup-color.svg @@ -0,0 +1 @@ + diff --git a/src/ext/manifest.json b/src/ext/manifest.json index 35a34ff..9d254f9 100644 --- a/src/ext/manifest.json +++ b/src/ext/manifest.json @@ -1,6 +1,6 @@ { - "name": "Webrecorder ArchiveWeb.page", - "description": "Create high-fidelity web archives directly in your browser", + "name": "Packrat", + "description": "Save a copy of every webpage you browse and share them with others!", "version": "$VERSION", "permissions": [ "debugger", @@ -24,7 +24,7 @@ "default_icon": { "32": "$ICON" }, - "default_title": "Webrecorder ArchiveWeb.page" + "default_title": "Packrat" }, "side_panel": { "default_path": "sidepanel.html" diff --git a/src/sw/api.ts b/src/sw/api.ts index 5745934..9226cf4 100644 --- a/src/sw/api.ts +++ b/src/sw/api.ts @@ -11,7 +11,7 @@ type RouteMatch = Record; declare let self: ServiceWorkerGlobalScope; -const DEFAULT_SOFTWARE_STRING = `Webrecorder ArchiveWeb.page ${__AWP_VERSION__}, using warcio.js ${__WARCIO_VERSION__}`; +const DEFAULT_SOFTWARE_STRING = `Packrat ${__AWP_VERSION__}, using warcio.js ${__WARCIO_VERSION__}`; // =========================================================================== class ExtAPI extends API { diff --git a/src/sw/downloader.ts b/src/sw/downloader.ts index 6fbbb28..8ff7839 100644 --- a/src/sw/downloader.ts +++ b/src/sw/downloader.ts @@ -267,7 +267,7 @@ class Downloader { this.alreadyDecoded = !coll.config["decode"] && !coll.config["loadUrl"]; - this.softwareString = softwareString || "ArchiveWeb.page"; + this.softwareString = softwareString || "Packrat"; this.uuidNamespace = uuidNamespace || DEFAULT_UUID_NAMESPACE; diff --git a/src/sw/keystore.ts b/src/sw/keystore.ts index a02206f..7262bb8 100644 --- a/src/sw/keystore.ts +++ b/src/sw/keystore.ts @@ -107,7 +107,7 @@ export class Signer { constructor(softwareString: string, opts: { cacheSig?: boolean } = {}) { this._store = new KeyStore(); - this.softwareString = softwareString || "ArchiveWeb.page"; + this.softwareString = softwareString || "Packrat"; this.cacheSig = opts.cacheSig || false; } diff --git a/src/ui/app.ts b/src/ui/app.ts index 05095a0..d2455a0 100644 --- a/src/ui/app.ts +++ b/src/ui/app.ts @@ -19,8 +19,8 @@ import "./coll-index"; import { BtrixClient } from "./upload"; import wrRec from "../assets/icons/recLogo.svg"; -import awpLogo from "../assets/brand/archivewebpage-icon-color.svg"; -import awpBrandLockupColor from "../assets/brand/archivewebpage-lockup-color.svg"; +// import awpLogo from "../assets/brand/archivewebpage-icon-color.svg"; +// import awpBrandLockupColor from "../assets/brand/archivewebpage-lockup-color.svg"; import prettyBytes from "pretty-bytes"; import { diff --git a/src/ui/recordembed.ts b/src/ui/recordembed.ts index 1b61917..1d26eb0 100644 --- a/src/ui/recordembed.ts +++ b/src/ui/recordembed.ts @@ -33,7 +33,7 @@ export class RecordEmbed extends Embed { this.replaybase = "./replay/"; this.replayfile = "record.html"; this.mainElementName = "archive-web-page-app"; - this.appName = "Embedded ArchiveWeb.page"; + this.appName = "Embedded Packrat"; this.embed = "default"; this.noWebWorker = true; diff --git a/src/ui/upload.ts b/src/ui/upload.ts index 023d15c..d0c47de 100644 --- a/src/ui/upload.ts +++ b/src/ui/upload.ts @@ -394,7 +394,7 @@ class BtrixUploader extends LitElement { const now = new Date().toLocaleString(); urlObj.searchParams.set( "notes", - `Uploaded by ArchiveWeb.page ${VERSION} at ${now}`, + `Uploaded by Packrat ${VERSION} at ${now}`, ); const url = urlObj.href; diff --git a/static/icon-dev.png b/static/icon-dev.png index d701bf3..80c63ac 100644 Binary files a/static/icon-dev.png and b/static/icon-dev.png differ diff --git a/static/icon.png b/static/icon.png index 301ae4c..118c83c 100644 Binary files a/static/icon.png and b/static/icon.png differ diff --git a/static/replayIcon.png b/static/replayIcon.png deleted file mode 100644 index cc565c8..0000000 Binary files a/static/replayIcon.png and /dev/null differ diff --git a/webpack.config.js b/webpack.config.js index 5c52dad..d88fe8a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -13,7 +13,7 @@ const AWP_PACKAGE = require("./package.json"); const RWP_PACKAGE = require("./node_modules/replaywebpage/package.json"); const WARCIO_PACKAGE = require("./node_modules/warcio/package.json"); -const BANNER = `[name].js is part of the Webrecorder ArchiveWeb.page (https://archiveweb.page) Copyright (C) 2020-${new Date().getFullYear()}, Webrecorder Software. Licensed under the Affero General Public License v3.`; +const BANNER = `[name].js is part of Packrat Copyright (C) 2025-${new Date().getFullYear()}, OPFN. Licensed under the Affero General Public License v3.`; const manifest = require("./src/ext/manifest.json");