Commit Graph
246 Commits
Author SHA1 Message Date
Henry Wilkinson 4059f6258d fix: Allow CDX file loading 2025-01-15 14:54:31 -05:00
sua yooandemma 09239285a1 fix: Support description markdown and longer length (#385)
Fixes https://github.com/webrecorder/replayweb.page/issues/381

## Changes

- Renders description as markdown
- Shows "Collection name" and "About this collection" labels when
description is present
- Fixes overflow issue where bottom few pixels of embed is cut off
- Hides description in mobile view

Co-authored-by: emma <hi@emma.cafe>
2024-12-31 19:49:42 -08:00
Emma Segal-Grossman c2ebbed7dc Rename exported Embed to ReplayWebPage, and export EmbedReplayEvent type (#384)
Closes #376
2024-12-23 16:12:45 -05:00
2f798eeacb Update Site Links and Branding (#375)
Partially addresses https://github.com/webrecorder/website/issues/133

- Adds link to ReplayWeb.page marketing site instead of the docs on the
homepage to better explain the product to new users
- Updates embed receipt with company logo
- Minor capitalization fixes and copy updates.

### Screenshots

<img width="677" alt="Screenshot 2024-11-23 at 2 10 38 AM"
src="https://github.com/user-attachments/assets/1f1fef82-12fb-460c-9757-cf0cb70bc281">

<img width="696" alt="Screenshot 2024-11-23 at 2 15 20 AM"
src="https://github.com/user-attachments/assets/2991bd43-d563-492e-9575-5201ff31a91e">

---------

Co-authored-by: Ilya Kreymer <ikreymer@users.noreply.github.com>
Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
2024-12-11 16:45:43 -05:00
Ilya Kreymer 9fa008bab2 Nested WACZ + embed reloading fix (#374)
- Loading: Fix for loading nested WACZ files (via wabac.js 2.20.7)
- Embeds: Support full reload on embeds via fullReload() call on embed
web component
2024-11-22 17:58:44 -08:00
Henry Wilkinson 218c1ed14f Minor docs updates & Link Updates (#361)
### Changes
- Fix docs edit URL
- Update links to new webrecorder.net pages
2024-11-01 09:43:27 -07:00
Ilya Kreymer 95c9be6c5b Support for import as module, wabac.js 2.20 (#364)
- Extensibility for AWP (customizable toolbar, pass replay iframe messages to parent)
- Support export as module, build separate index.js for module in addition to ui.js
- Update to wabac.js 2.20.0
- bump to 2.2.0
2024-10-16 20:22:11 -07:00
Henry WilkinsonandIlya Kreymer 28fd66b289 Update src/item-index.ts
Co-authored-by: Ilya Kreymer <ikreymer@users.noreply.github.com>
2024-09-18 22:01:52 -04:00
Henry WilkinsonandIlya Kreymer 2241b4a76a Update src/item-index.ts
Co-authored-by: Ilya Kreymer <ikreymer@users.noreply.github.com>
2024-09-18 22:00:46 -04:00
Henry Wilkinson e53c74dc51 Updates "No archives yet?" text
Gives new users links to our tools for making web archives!
2024-08-26 14:04:14 +01:00
Ilya Kreymer ce9447c861 deps: update to wabac.js 2.19.2 (wombat 3.7.10) (#348)
includes sharepoint fidelity (fixes #273)
ui: default URL resources search to 'prefix' (as contains only works after prefix search)
version: bump to 2.1.1
2024-07-05 13:02:24 -07:00
Ilya Kreymer 11ca78c5b6 Remove multiTs from location hash (#340)
Just keep as regular property on Item, as no need to read it from user
input, as multiTs is looked up from wabac API.
2024-06-21 15:46:47 -07:00
Ilya Kreymer 105562abf9 add window message notifications for embeds: (fixes #333) (#335)
- add 'replayNotFoundError' field to 'urlchange' (propagating
'archive-not-found' postMessage message from wabac.js) to embed frame, with url/ts, for 404
pages
- propagate 'page-loading' with loading true/false, to indicate when a
page started/finished loading. (URL not available here)
- Only send one urlchange event per URL change (keep track of change).
- Also ensure multi timestamp change uses replaceHistory to avoid an extra
navigation.
- replay-web-page embed: send rwp-url-change and rwp-page-loading custom events from webcomponent

Fixes #333
2024-06-21 14:47:18 -07:00
Emma Segal-Grossman 1feee354c7 Configure package exports explicitly (#336)
Closes #337
Blocks https://github.com/webrecorder/archiveweb.page/issues/198

Adds a dedicated `misc` export, as well as explicitly exporting the
`electron-*` files and the `index.html` file. This restricts imports to
only these files, and allows us to not have to exactly match webpack
configs between RWP and AWP.
2024-06-18 21:41:21 -04:00
Ilya Kreymer 2700797b6a Resource search remove auto-added http prefix (#334)
- remove previous optimization that auto-added 'https://' prefix to search
queries, which resulted in 'urn:' resources not being searchable.
also caused unintuitive behavior, where 'ht' would show no results while
'http' would, now fixed. Results in more predictable search results in
the end.
- Also default to contains instead of prefix search by default
2024-06-18 18:38:48 -07:00
sua yoo 9cfeca3428 Upgrade Shoelace & Lit (#329)
Related to https://github.com/webrecorder/browsertrix/issues/1836 --
Upgrades Shoelace and Lit to match browsertrix.
version: bump to 2.0.2
2024-06-12 11:48:08 -07:00
Ilya Kreymer 7229609ed0 2.0.1 work - fidelity + build improvements (#327)
Fidelity improvements (via wabac.js and wombat):
- fixes ebay carousel #326 (via wombat)
- partial fix to error page escaping #323 (via wabac)
- fixes to reddit pages #317 
- fixes to twitter/x replay (via wabac / wombat)

Build improvements:
- run mkdocs gh-deploy --force in gh action, instead of publish-docs to avoid accidental updates
- auto install ruffle from download script, remove from git, add 'update-ruffle' script
- update to latest ruffle which doesn't inject setImmeidate/ clearImmediate to avoid interference with certain sites, fixing fidelity on some sites (including twitter/x)
- remove unused src/sw.ts
- deps: wabac.js to 2.18.2

bump to 2.0.1
2024-06-09 17:38:38 -07:00
Ilya Kreymer 14462c1506 final fixes + changelist for 2.0.0!
- package: add adblock/adblock.gz to npm package
- electron: remove ./site/
- add CHANGES for 2.0.0
2024-04-10 18:38:38 -07:00
Ilya Kreymer 0814e28778 Adblock Support for Embeds (#308)
Fixes #307 

- Adds optional adblock support, via wabac.js (dependent on
webrecorder/wabac.js#167).
- For now, adblock enabled only for embeds via the `useAdblock`
attribute, and can be enabled per archived item.
- By default, adblock filter rules from
[EasyList](https://easylist.to/easylist/easylist.txt) are used, however,
a custom filter rules file can be used via `adblockRulesUrl` attribute
(default is ./adblock/adblock.gz)
- Added `fetch-adblock.sh` script to fetch latest easylist, filter out
`##` rules and compress to `./adblock/adblock.gz`
- Not yet possible to enable adblock for standalone browsing via
replayweb.page
- bumps version to 2.0.0-beta.3
2024-04-10 16:27:04 -07:00
Ilya Kreymer 92343d59f7 Site reorg: Remove site/ subpath (#306)
Unfortunately, for proper package pathing, need to remove the `site/`
subpath. This includes:
- Moving everything back into root
- Adding a `copy-site.sh` script to copy resources into `mkdocs/site/`
before building the site with mkdocs.
- Also update examples to ensure all are loading the local sw.js / ui.js
- Consolidate examples in `docs/examples`
- Consolidate assets under src/assets/
- Move `favicons` to root
- Reformat and relint
- Tests: update playwright tests to use mkdocs output, add test for
embed in docs
- bump to 2.0.0-beta.2
2024-04-09 23:07:23 -07:00
Ilya Kreymer 01a6ebc5b6 Electron Fix for 2.0.0 (#304)
- build UI.js to site/ directly (build electron to dist/)
- no longer need to copy favicons
- load site assets directly from site/
2024-04-09 15:33:43 -07:00
Henry WilkinsonandIlya Kreymer 00f01222a7 Adds sl-copy-button fontawesome icons (#302)
- Changes `sl-copy-button` icons to use fontawesome equivalents so they
fit in with everything else in ReplayWebpage
- Converts sl-icon to use fa-icon for error icon
- Adds missing whitespace

Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
2024-04-09 15:01:10 -07:00
Ilya KreymerandHenry Wilkinson 858f9d61bb Convert URL encoded images to inline SVGs with fa-icon (#303)
Avoid data: URL loading and just inject SVG inline directly for logo, receipt and loader
Additional favicon path fixes

---------
Co-authored-by: Henry Wilkinson <henry@wilkinson.graphics>
2024-04-09 15:00:08 -07:00
Henry WilkinsonandIlya Kreymer cbe98c4fa1 Reasonably Scoped Branding Update (#299)
- Adds TsconfigPathsPlugin
- Custom icons, branding assets, and favicons now all live under
`/src/assets` in organized folders (Mirrors Browsertrix folder
organization and naming)
- Assets can now be referenced with `import: varName from
~assets/assetpath` app wide!
- SVGs continue to use `svg-inline-loader`, favicons are copied to
`/site/favicons` on app build
- Adds favicons to the main `index.html` page for ReplayWeb.page and
`embed.html` example page
- Replace README header with new branding
  - Lives under /assets because it's not app related
- Adds new webmanifest app icons
- Adds new Electron app .icns (macOS ) and .png (Windows & Linux) app
icons
- Replaces globe icon in the embed receipt with ReplayWebpage icon!
  - Adds lockup to the footer section
- Removes logo animation
- Removes logo values from `renderErrorReport()` in swmanager.ts in
favour of additional import statements

---------
Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
2024-04-08 18:47:17 -07:00
Henry Wilkinson ef6c748170 2.0 UX Changes (#295)
Partially addresses #237
- Unhides the load button on smaller screen sizes
  - There's no way to actually load new web archives when this is hidden
- Minor text updates
  - Renames MIME Type to Media Type
  - Punctuation fixes
- Reorder main application controls (#237)
  - Group navigation related controls together on the left side
  - Move full screen to the right side
  - Enable navigation controls on mobile
- Renames URLs tab to Resources - now that we have more space (because we moved the archived item info
to a dialog), we can make these titles visible when space is available to do so!
  - This is now in-line with the docs (both current and new!)
2024-04-07 14:52:15 -07:00
Henry WilkinsonandIlya Kreymer 88ca04e52e Add example links to exploring section (#298)
- Moves example WARC files to /site/examples
- Adds example link for full text search
- Adds example link for searching resources
- Updates example docs link on the app homepage, sends to the project
showcase section
- Link fix
- .gitignore update
---------

Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
2024-04-07 14:48:58 -07:00
Henry Wilkinson d276609ffe Removes WBN file options
WBN files are unsupported and don't work but are still allowed to be selected by users and are still displayed as valid options.

No longer!
2024-03-19 12:05:51 -04:00
Ilya Kreymerandemma 6051a2a414 feature: allow embed <replay-web-page> to also support updating favicons from replay (#287)
It may be useful to be able to have <replay-web-page> embed also take
over the favicons for the page, propagating them from the replay (eg. if
in a single page app where replay takes up most of the view).

This PR adds a `updateFavicons` attribute, used as `<replay-web-page ...
updateFavicons>` to have icons propagated from the replay to the
top-level frame. (This may be especially useful with `deepLink` option,
which allows for linking directly to archived pages)

Details:
  - enabled via 'updateFavicons' attribute on <replay-web-page>
- pass icons via postMessage() update, adding type to embed message to
allow different types of message
  - currently supporting 'urlchange' and 'favicons' message types
- add shared updateFaviconLinks() in misc.ts, used by both embed and
main app

---------
Co-authored-by: emma <hi@emma.cafe>
2024-03-07 21:28:50 -08:00
Emma Segal-Grossman 5c7b914e69 Typescript config parity with Browsertrix repo (#289)
Follow-up from #288 

This matches the strictness rules with the Browsertrix repo,
specifically `noImplicitAny`, and then adds `// @ts-expect-error`s to
suppress existing errors this change raises. This'll help us keep code
quality high moving forward.

Going to just directly merge this once it passes CI; as with #288, this
doesn't change any code, just comments.
2024-03-07 21:12:26 -05:00
Emma Segal-Grossman 40d84f3383 ESLint parity with the Browsertrix repo (#288)
This copies the rules from the Browsertrix repo, and uses
[`suppress-eslint-errors`](https://www.npmjs.com/package/suppress-eslint-errors)
to suppose the violations. I'll take a pass at cleaning this up at some
point in the future, and let's do our best to address these in the
future as we come across them :)

This'll help ensure new code being added to this repo is held to the
same standard as code in Browsertrix's frontend.
2024-03-07 20:12:50 -05:00
Emma Segal-Grossman b39d17d637 Tab list disappears with an empty WARC (#284)
Closes #283 

Not too sure what the root of the problem actually is, but removing the
overflow seems to fix it, though it does change the sizing somewhat.
I've adjusted the padding to compensate, so it should look the same as
it did before.

The source rules are coming from Bulma, which I don't know super well,
so I don't mind overriding it in this context rather than trying to fix
the underlying issue here.
2024-02-21 19:21:45 -08:00
Emma Segal-Grossman a63390f10c Update NPM packaging, linting, and a bunch of types (#275)
Preparation for
https://github.com/webrecorder/archiveweb.page/issues/198 /
https://github.com/webrecorder/archiveweb.page/pull/199.

## Changes

- Organizes published files more cleanly, using `dist/types` folder as
the target for type declarations and sourcemaps
- Configures type field in `package.json`
- Updates ESLint & its config
  - Sets up type-informed linting rules mirroring browsertrix
- Adds a bunch of other useful eslint and eslint-typescript rules, and
applies auto-fixes to the codebase
- Cleans up a bunch of types throughout the codebase, particularly parts
of the code used by ArchiveWebPage
- Changes `ItemIndex#_deleting` from `private` to `protected` so that a
part of AWP that extends it can do so properly
- Makes a bunch of previously-implied [non-null
assertions](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#non-null-assertion-operator-postfix-)
explicit
- Updates `URLResource` and `ItemType` types (and renames `Item` →
`ItemType` to disambiguate from the `Item` class)
- Removes `node-sass` and replaces it with `sass-embedded` for much
quicker installs and compilation
2024-02-06 18:50:12 -08:00
Emma Segal-Grossman a40471128f Fix missed rename, and improve types (#276)
Fixes a missed rename, in `src/item-index.ts`: I'd renamed `coll` to
`item` but missed updating it in the `update` method's
`changedProperties` map.

This PR fixes that, and adds better typing to all of the instances of
`changedProperties` by using
[`PropertyValues<this>`](https://lit.dev/docs/components/lifecycle/#typescript-types-for-changedproperties),
and implementing class properties for missing Lit properties.
2024-01-05 18:32:22 -08:00
emma 3056ec79e4 Merge branch 'main' into dev-2.0.0 2023-11-29 23:12:32 -05:00
sua yoo 49246fee61 chore: convert sw.js to typescript 2023-11-29 15:54:44 -05:00
Ilya Kreymer c7b2fd74fb fix: ensure default index.html is served for app, only serve wabac.js index page when in embed mode, fixes #251 (#253)
bump to 1.8.13
2023-11-29 15:54:18 -05:00
Ilya Kreymer 5a36b32a95 loading: keep 'serveIndex' query arg on all sw.js loads, not just in embed.js (#242)
fixes embed 'purge cache + reload'
bump to 1.8.12
2023-11-29 15:54:05 -05:00
sua yooandemma 03fefc85a5 Migrate electron files to typescript (#267)
- Switches electron src files to typescript with minimum typing required
for build
- Adds webpack-merge for shared typescript build config and jsdoc types
- Minor README changes

---------

Co-authored-by: emma <hi@emma.cafe>
2023-11-29 15:53:48 -05:00
Emma Segal-Grossman ad38694598 Typescript migration part 2 (#261)
Converts everything to typescript, adding `@ts-expect-error`s where
necessary. Also makes some progress converting elements to use
decorators, but we're not fully there yet — I think it'll make sense to
continue to do that in future PRs, rather than doing it all in one go,
just so that we can keep up with the dev branch.
2023-11-29 15:53:48 -05:00
emma e9438eb724 improve typescript and linting usage across codebase
add ts-lit-plugin and eslint-typescript

disable no-invalid-css rule

fix a bunch of errors raised by eslint and typescript

run prettier & eslint on the remaining files

remove unused imports

split coll-index into index and info components...
and rename "coll" -> "item" for these.
also includes some fixes for previously-undocumented properties used on
non-ts elements.

extract labeled fields into separate component...
and make a few type improvements too

swap custom copy button for shoelace one

rename a few more missed things
2023-11-29 15:53:46 -05:00
emma e7b86626df move archive info into a dialog in dropdown menu (#235)
using sl-dialog and sl-button for components

show error message when coll info is missing

rework info popup to better match 2.0 design

remove extra comment i forgot
2023-11-29 15:52:12 -05:00
Ilya Kreymer 31dbe00b76 fix: ensure default index.html is served for app, only serve wabac.js index page when in embed mode, fixes #251 (#253)
bump to 1.8.13
2023-10-06 14:30:42 -07:00
sua yoo 4d55efa341 Migrate ReplayWebApp, Coll and Replay to TS (#233) 2023-09-18 10:43:29 -07:00
Ilya Kreymer 81e81dceae loading: keep 'serveIndex' query arg on all sw.js loads, not just in embed.js (#242)
fixes embed 'purge cache + reload'
bump to 1.8.12
2023-09-12 21:36:18 -07:00
sua yoo 79d2f1585c Show snapshot timestamp in location bar (#228)
- Shows how many snapshots are available per page in URL bar
- Allows users to navigate through snapshots through timestamp dropdown
- Refactors coll.js and pageutils to typescript
2023-09-07 10:42:21 -07:00
sua yoo 73e7da4c7c Show page thumbnails in pages list (#221)
* convert pages / pageentry to ts
* render page icon
* adjust for smaller screen
* show favicon even if thumbnail exists
2023-09-05 17:26:16 -07:00
sua yoo 1e579845b5 chore: enable svg import 2023-09-05 17:26:16 -07:00
sua yoo 2d0b163148 Upgrade Lit to 2.8 and add Shoelace styles (#206) 2023-09-05 17:25:42 -07:00
sua yoo b7406189bb Add Typescript to build (#207) 2023-09-05 17:24:08 -07:00
Ilya Kreymer 8e715cdf54 deps: update to wabac.js 2.16.12, use default index html loading (#232)
wabac.js now serves the correct index for RWP, don't need to inject custom html
bump to 1.8.11, update CHANGELIST
2023-09-05 18:43:02 -04:00