Commit Graph
271 Commits
Author SHA1 Message Date
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
Ilya Kreymer d31c25c4de embed html: keep ui.js import in default embed html, not always possible to inject 2023-08-29 15:18:39 -07:00
Ilya Kreymer 16284ee198 Fix embed loading regression (#227)
* pass in the embed index.html (a page just containing <replay-app-main></replay-app-main>) to wabac.js via indexHtml query arg
to be served back at replay root
fixes regression in 1.8.9, fixes #226
* update CHANGES.md
* bump to wabac.js 2.16.11
2023-08-29 14:28:04 -07:00
Ilya Kreymer 2bc9fb0a15 Use published sw.js from wabac.js instead of rebuilding a custom version. (#223)
* sw: instead of rebuilding sw.js with slightly different settings (baked in index.html + ruffle.js cache),
can now just use the published sw.js release with custom queryArgs, injectScripts=ruffle/ruffle.js
index.html is cached automatically on-load
webpack: for dev server, still build 'sw.js' locally to allow dynamic updates when developing on a linked wabac.js
remove src/sw.js, as no longer used, just importing from wabac.js directly
bump to 1.8.9
2023-08-28 19:59:29 -07:00
Anish Lakhwara 2de4703908 feat: Multi WACZ json Front End Support (#214)
Better display for Multi WACZ collections, including showing:
- File size of combined WACZ
- List of all WACZ files (with downloadable links)
- Use collection title instead of filename for all names (collection index, breadcrumb, sidebar)
- Display collection description (if available) on sidebar + info page
2023-08-17 16:35:53 -07:00
sua yoo dd70bc722f Lint and fix Lit html (#216)
- Adds eslint lit plugin to catch linting errors in lit html
- Fixes linting errors
2023-08-16 18:57:11 -07:00
sua yoo 1893550274 Format src files with Prettier (#215)
Formats files in `src` with [prettier for consistent code style](https://prettier.io/docs/en/why-prettier) and adds npm script

Related to https://github.com/webrecorder/replayweb.page/issues/201
2023-08-16 18:21:18 -07:00
Matteo CargneluttiandHenry Wilkinson ca6c19ff0f Bugfix: "info" tab overflow is hidden (#197)
* Bugfix: "info" tab overflow is hidden

* add `height: fit-content` to info list

The scrollbar is added in the correct place, but without this the actual info text gets cut off based on the page size.

* Revert changes to compiled files

* re-commit compiled files

---------

Co-authored-by: Henry Wilkinson <henry@wilkinson.graphics>
2023-08-09 20:18:17 -07:00
Henry Wilkinson dbf8f90064 Reorder Archive Receipt Sections (#194)
* Reorder sections, move download above technical info
* Make the download button more prominent
2023-07-26 19:44:06 -07:00
Henry Wilkinson 2a2330e7f1 Adds the Observer Public Key field to Archive Info (#192) 2023-07-26 19:43:17 -07:00
Ilya Kreymer dbafc19522 ui: fix 'show non-seed pages' for multi wacz and for after first load (#187)
deps: bump to wabac.js 2.16.3
bump to 1.8.3
2023-06-27 22:51:12 -07:00
Ilya Kreymer 646f3f8d76 fix redirect loop (fixes #184): (#185)
- loading: fix redirect loop on 404s (via wabac.js 2.16.2)
- misc: additional check before autoupdate, update build deps to support Node 20
bump to 1.8.2
2023-06-20 18:21:55 -07:00
Ilya Kreymer f8116eeaa6 ruffle: update to ruffle 2023-05-13 release, later versions interfere… (#181)
* ruffle:
- switch to ruffle 2023-05-13 release, later versions interfere with loading, it seems (see #180)
fixes #180

* add ruffle toggling options
- disable by default in embed mode, can be enabled with 'useruffle' attr
- enable by default in standalone, can be disabled with 'skipruffle' attr
- fixes #182

* update CHANGES for 1.8.1
2023-06-16 16:01:31 -07:00
Ilya Kreymer b26f4b082d Compute unique collection id using full sourceUrl if relative url given (#179)
* loading: update sourceToId to resolve any pathname to absolute URL (via document.baseURI) for computing unique id (eg. to avoid conflicts of two 'webarchive.wacz' loaded from different paths) - matches behavior used in embed
embed demo: fix typo, don't change default service worker name
2023-06-15 09:45:01 -07:00
Ilya Kreymer 99a034af49 ui: don't show sidebar within sidebar 2023-06-14 18:16:46 -07:00
Ilya Kreymer 21ddc5b713 Show All Pages Option (#177)
* show all pages:
- add option to 'show all pages' if additional non-seed pages are present in the wacz file
- only show checkbox if there are additional pages
- tweak page results to just show 'Pages' or 'Pages Shown' to avoid confusion over 'Pages Found'
- bump to 1.8.0

fixes #176

CHANGES: add changes for 1.8.0
2023-06-14 17:17:20 -07:00
Ilya Kreymer d1e84b1b52 Custom SW filename (#175)
* embed: support using custom filename for service worker instead of sw.js
can be set via <replay-web-page swName='custom.js' ... > property
docs: update embedding docs to mention new option
fixes #160
2023-06-14 17:06:51 -07:00
Ilya Kreymer c7adbdeb0c file chooser: relax extension pattern to allow query/hash after extension (check for ?/#) (#171)
bump to 1.7.15
2023-05-12 13:52:33 +02:00
Matteo CargneluttiandIlya Kreymer 6a24be439c Show total pages count (#164)
* Update pages.js

* show x of y pages found when showing partial results

---------
Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
2023-04-06 10:10:26 -07:00
Matteo Cargnelutti b074cda6d8 Fixes background color in fullscreen mode (#165)
* Fixes background color in fullscreen mode

* Applied fix suggested by @curtgrimes
2023-04-03 11:17:34 -07:00
Curt Grimes d4832e4df9 Support dropping files onto window to load (#163)
- Allow dropping a supported file type onto the window to automatically
  load it as an alternative to clicking the "Choose File..." button,
  selecting a file in the file dialog, and clicking the "Load" button.
- Do not do anything when unsupported files are dropped.
2023-03-31 18:47:00 -07:00
Ilya Kreymer 05287749ca fidelity / loading fixes: (#159)
- Fidelity: Improved replay via unrewriting fixes of style urls, request/response urls (via wabac.js 2.15.3)
- Embeds: Support updating auth headers if custom headers provided in embed 'config'
- Dependencies: Update to wabac.js 2.15.3, wombat 3.4.6, Electron 23.1.1
- bump to 1.7.13
2023-02-25 16:38:10 -08:00
Ed Summers c0ff3b426b Use crt.sh (#144)
Switch back to using crt.sh for certificate lookups since censys now
require a login to search by cert fingerprint.
bump to 1.7.10
2023-01-04 10:12:18 -08:00
Ilya Kreymer e6f837df13 Cleanup Electron App + Dependency Update (#139)
* electron: clean-up / remove unused code in main process, including:
- remove native plugin init (no longer supported)
- remove auto-js-ipfs (used in render process)
- remove ipfs handling logic (handled in render process)
- use custom file2:// scheme for loading files, instead of custom prefix
- proxyLive supports POST requests, using original UA (if set, for archiveweb.page)
- webpack: remove unused __IPFS_CORE_URL__
- ci: add lint check

* dependency update:
- update to wabac.js 2.13.15 for latest auto-js-ipfs (2.1.0) and wombat (3.3.13)
- update to electron 22.0
- update webpack + electron updater to latest

* bump to 1.7.8
2022-12-07 13:33:36 -08:00
Ilya Kreymer bc5f8b07eb embeds: new embed option 'loading="eager"' to support eager loading entire WACZ file, instead of on-demand loading
deps: update to wabac 2.13.9 to support eager loading, update electron to 21.3.1
package: remove assets from package
bump to 1.7.4
2022-11-24 17:28:53 -08:00
Ilya Kreymer 54b53f9d9b dependencies: update to wabac.js 2.13.7, latest wombat (3.3.11), auto-js-ipfs 1.5.1
update CHANGES.md
2022-11-21 17:33:27 -08:00