* Generate `_headers` and `_redirects` by passing assets through ejs templates.
* PR feedback
* Excluding service worker stuff from prerender
* Build SW in dev
* Let's give this a try
* lol
* Is this how it works?
* Notification of updates & reloading
* Using version in service worker & allowing version to appear elsewhere
* Stupid file
* Ditching changelog for now. Using package json.
* Ugh.
* Startup optimisations
* I hate this file
* Inline main script
* Reverting change to do a fairer perf comparison
* Inlining again. Weeeeee!
* Lockfile
* Add a serviceworker
* rename + fix random extra character
* Fixing worker typings
* Fixing types properly this time.
* Once of those rare cases where this matters.
* Naming the things.
* Move registration to the app (so we can use snackbar later)
* Moving SW plugin later so it picks up things like HTML
* MVP service worker
* Two stage-service worker
* Fix prerendering by conditionally awaiting Custom Elements polyfill.
* Fix icon 404's
* add doc comment to autoswplugin
* Fix type
* wip
* Commenting stuff to keep the build happy
* Revealing sections
* Custom select elements & more form work
* Range input styles
* Text fields with inputs do the right thing
* Safari & Firefox fixes
* Large compress select
* oops
* MozJPEG options updated
* OptPNG options
* These asserts weren't true
* Generic options
* WebP options
* Hiding "edit" when "original image"
* Download icon
* Copy setting button - still not happy with this
* Progress indicator
* Loading icon enter/exit anim
* Preventing controls going under options
* Ahh so that's what was causing scrolling
* Ahh so that's what was causing outlines
* Simplifying range styles and fixing cross-browser
* Processing custom element styles
* Get precision from step by default
* I don't know how or when this happened.
* Don't need that many steps
* Avoid having an element that covers the pinch zoom
* Preventing overlap with zoom controls
* Prevent ts warning
* Fixing spinner position
* Simplifying FileSize
* Initial work to add Options config
* Use a single encoder instance and retry up to 10 times on failure.
* Switch both sides to allow encoding from the source image, add options configuration for each.
* Styling for options (and a few tweaks for the app)
* Dep updates.
* Remove commented out code.
* Fix Encoder typing
* Fix lint issues
* Apparently I didnt have tslint autofix enabled on the chromebook
* Attempt to fix layout/panning issues
* Fix missing custom element import!
* Fix variable naming, remove dynamic encoder names, remove retry, allow encoders to return ImageData.
* Refactor state management to use an Array of objects and immutable updates instead of relying on explicit update notifications.
* Add Identity encoder, which is a passthrough encoder that handles the "original" view.
* Drop comlink-loader into the project and add ".worker" to the jpeg encoder filename so it runs in a worker (🦄)
* lint fixes.
* cleanup
* smaller PR feedback fixes
* rename "jpeg" codec to "MozJpeg"
* Formatting fixes for Options
* Colocate codecs and their options UIs in src/codecs, and standardize the namings
* Handle canvas errors
* Throw if quality is undefined, add default quality
* add note about temp styles
* add note about temp styles [2]
* Renaming updateOption
* Clarify option input bindings
* Move updateCanvas() to util and rename to drawBitmapToCanvas
* use generics to pass through encoder options
* Remove unused dependencies
* fix options type
* const
* Use `Array.prototype.some()` for image loading check
* Display encoding errors in the UI.
* I fought typescript and I think I won
* This doesn't need to be optional
* Quality isn't optional
* Simplifying comlink casting
* Splitting counters into loading and displaying
* Still loading if the loading counter isn't equal.
- Format output using pretty-bytes
- Insert inlined style tags immediately after their source link tags
- Add option to turn off external stylesheet processing
- Add `async` option that converts critical'd external sheets to `<link rel="preload" as="style" onload="this.rel='stylesheet'">`