Commit Graph

305 Commits

Author SHA1 Message Date
Bruno Windels 1ed8d48ced release SDK 0.0.4 2022-01-12 18:39:13 +01:00
Bruno Windels 93eca757d3 dont add paths/vite to sdk output, as it does not work 2022-01-12 18:31:55 +01:00
Bruno Windels 3f60ef8da7 release sdk version 0.0.3 2022-01-12 17:51:48 +01:00
Bruno Windels f526098293 also remove ts types, as we get errors for the untyped files
that don't exist
2022-01-12 17:41:00 +01:00
Bruno Windels d7290bf750 remove exports field to try and prevent vite bug resolving asset url
downside is that we can't export cjs version anymore
2022-01-12 17:14:52 +01:00
RMidhunSuresh 205de7e5c5 Add hash-bang to fix build error 2021-12-27 15:51:25 +05:30
Bruno Windels 908f9a7ce3 try to export stylesheet 2021-12-22 18:04:30 +01:00
Bruno Windels 5f389e654a add description 2021-12-22 16:37:53 +01:00
Bruno Windels c3ff571af7 update SDK doc, use it as sdk package readme 2021-12-22 16:31:19 +01:00
Bruno Windels 441fa13bfd change sdk package name to hydrogen-view-sdk
as we might want to also have a lower level sdk later on
2021-12-22 16:31:19 +01:00
Bruno Windels b48280905e include path/vite in sdk bundle 2021-12-22 16:31:19 +01:00
Bruno Windels 163dae647b move output of both lib and asset build around for coherent package 2021-12-22 16:31:19 +01:00
Bruno Windels c921091957 run two vite builds for the sdk build, assets & js separately 2021-12-22 16:31:19 +01:00
Bruno Windels ceb0b5793b somewhat works, but not everything we need
it's missing still:
 - non-css assets like the download sandbox and the olm worker aren't written for some reason
 - the es and cjs lib.js entry points end up in assets with a hash for some reason
 - in these entry files, apart from our exports, something is adding an import statement for every import that was found in the tree
 - all assets are hashed even though the config tries to disable that
 - tests are included
2021-12-22 16:31:18 +01:00
Bruno Windels 5c5193ef48 remove old build system and unused dependencies
some of these are for the ie11 legacy build, which has been
postponed. They will be brougth back when we bring back the legacy build
2021-12-09 18:04:11 +01:00
Bruno Windels 62827b92b7 implement placeholder replacement so it still works with minification 2021-12-09 16:37:31 +01:00
Bruno Windels 9a82f88e1f log swSource as build fails in CI 2021-12-09 15:13:19 +01:00
Bruno Windels 23e0d3f2ff get notification badge icon url through import now we transpile the sw 2021-12-09 15:13:05 +01:00
Bruno Windels a4fac68393 use same method for setting version and build hash placeholder in sw
also better naming in service worker plugin
2021-12-09 14:36:12 +01:00
Bruno Windels 14dffa4ad4 remove leftover logging 2021-12-09 12:21:34 +01:00
Bruno Windels 8e4da396ea replace global hash in given chunks 2021-12-09 12:15:17 +01:00
Bruno Windels c344032c0a transpile service worker and cleanup build plugin 2021-12-09 11:39:28 +01:00
Bruno Windels fb8149b6cf add base to manifest path, just for completeness 2021-12-08 18:29:07 +01:00
Bruno Windels 0e2a22f509 also look in chunks for cacheable assets for service worker 2021-12-06 15:34:39 +01:00
Bruno Windels 91e69a2bd0 fix icons in manifest not being found 2021-12-06 15:25:44 +01:00
Bruno Windels 7148f6fd41 wip to not babel deps 2021-11-10 19:10:23 +01:00
Bruno Windels e83781b26a make ie11 compatible 2021-11-10 19:10:06 +01:00
Bruno Windels 36a982f7e2 WIP to run rollup twice, first with vite and babel, then to inline deps 2021-11-09 18:10:12 +01:00
Bruno Windels 122528f9a9 also transpile typescript files
note that these have already been converted to javascript by vite
2021-11-09 17:59:58 +01:00
Bruno Windels da7f66a531 setup babel for legacy build as input transform plugin 2021-11-09 14:52:03 +01:00
Bruno Windels fcde507183 WIP 2021-11-08 11:13:02 +01:00
Bruno Windels 3b72157e64 apparently, package-overrides should use esm
otherwise they don't get transpiled for some reason
2021-11-08 11:12:19 +01:00
Bruno Windels 7dce579ac3 make babel plugin run after commonjs one added by vite 2021-11-08 11:12:19 +01:00
Bruno Windels 16918ddb7d ie11 build wip 2021-11-08 11:12:13 +01:00
Bruno Windels eb60f6717a add comment for improvements 2021-11-08 11:10:34 +01:00
Bruno Windels 923a1a2057 use vite define option to inject version number everywhere 2021-11-08 11:10:34 +01:00
Bruno Windels 216afd45cc vite/rollup plugin to inject and transform manifest & service worker 2021-11-08 11:10:34 +01:00
Bruno Windels e2b20f466d remove unneeded package override 2021-11-08 11:10:34 +01:00
Bruno Windels b6fda8865f make all dependencies use vite and remove post-install script / lib dir 2021-11-08 11:10:34 +01:00
Bruno Windels 54ac5a96ca rename service-worker.js back to sw.js to unbreak updating 2021-08-23 20:23:38 +02:00
Danila Fedorin 5d764a9f0e Add comment for srcPath 2021-08-17 14:24:10 -07:00
Danila Fedorin e8dff6d16b Move web-specific files to platform/web 2021-08-17 14:13:27 -07:00
Bruno Windels b6d0d54241 explicitly name snowpack build ouput dir, and remove it after build 2021-08-17 17:20:48 +02:00
Danila Fedorin b8e32a03f8 Invoke snowpack from build script 2021-08-09 13:30:25 -07:00
Danila Fedorin b8c8325292 Copy olm and remove dompurify symlink 2021-08-06 12:46:41 -07:00
Danila Fedorin f6b2d2cca8 Move index.html to a different place 2021-08-06 12:34:20 -07:00
Danila Fedorin 4022c6121b Switch to DOMPurify in platform layer for sanitization. 2021-07-12 15:00:16 -07:00
Danila Fedorin 1435c2c9a2 Add HTML sanitization to domain layer. 2021-07-09 13:06:24 -07:00
Danila Fedorin eca5308742 Move deserialization into domain and fix tests. 2021-07-07 12:21:10 -07:00
Bruno Windels 0685fa2622 update olm to 3.2.3 2021-06-08 17:23:39 +02:00
Bruno Windels 711b5be07f show number of matches in logviewer and don't hide expanded sibling
fixes https://github.com/vector-im/hydrogen-web/issues/378
2021-06-02 21:25:46 +02:00
Bruno Windels 88a45470ba add highlight and filter support to logviewer 2021-06-02 17:10:56 +02:00
Bruno Windels d5e8481e22 allow side-effects at module level in src/ dir
otherwise things like src/observable/index.js break
2021-06-02 13:12:12 +02:00
Bruno Windels 6a5679a338 create mock storage using fake-indexeddb 2021-06-02 12:32:03 +02:00
Bruno Windels f8f1d49c56 polyfill String.matchAll for IE11
See https://github.com/babel/babel/issues/10816
Don't really understand how or why this works, but it did
2021-05-31 13:04:03 +02:00
Johannes Marbach 452a0e7bda Merge branch 'master' into feature/librejs 2021-04-28 20:22:20 +02:00
Bruno Windels 25e0211ca1
Merge pull request #279 from Johennes/feature/safari-viewport
Manually adapt UI when keyboard shows or hides on mobile Safari
2021-04-28 11:04:43 +02:00
Bruno Windels d8d97c40f7 show start time milliseconds in log viewer 2021-04-08 18:35:30 +02:00
Johannes Marbach 37bb078547 Add license comments to make GNU LibreJS accept Hydrogen's JS
This adds proper license comments to all _internal_ JS scripts in the /target
build. This way the code self-identifies as Apache-2.0 which prevents LibreJS
from blocking it.

Closes: #209

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2021-03-27 14:19:58 +01:00
Johannes Marbach 14ed5fd1e8 Manually adapt UI when keyboard shows or hides on mobile Safari
Mobile Safari seems to be the only browser that does *not* resize the
viewport when the keyboard shows and hides. Instead the window is moved
to make room for the keyboard which moves content at the top off screen.

This uses the VisualViewport API to manually resize the `SessionView`
in response to keyboard display events. Additionally, if a DOM element
exists that has the `bottom-aligned-scroll` CSS class, its scroll
position is retained. Currently this only applies to the `Timeline`.

Note that the VisualViewport API was only introduced with iOS 13.
According to [statista.com], versions below 13 made up for 19% of
all iOS users in summer 2020, with the share continuing to fall off.
As a result, this seems like an acceptable workaround.

Fixes: #181

[statista.com]: https://www.statista.com/statistics/565270/apple-devices-ios-version-share-worldwide/

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2021-03-26 08:29:33 +01:00
Bruno Windels 2a0045bed7 support override main css file 2021-03-25 18:54:10 +01:00
Bruno Windels cd615265f8 support overriding imports for customizations 2021-03-25 18:08:47 +01:00
Bruno Windels 165532be30 add badge icon to notifs 2021-03-25 00:12:57 +01:00
Bruno Windels 178790d816 symlink service worker for local dev, so its scope captures whole app
also rename service worker (as it is not a template anymore)
2021-03-23 18:20:23 +01:00
Bruno Windels a8ca82ca4d support running the service worker during local development 2021-03-23 18:20:23 +01:00
Bruno Windels f92f3b2c21 copy push config in build script 2021-03-23 18:20:23 +01:00
Bruno Windels 0052a11a1e convert post-install script to CJS so we can use require.resolve
this allows us to find where npm/yarn has installed deps, as we can't
assume our own node_modules directory when hydrogen is installed as a
dependency
2021-03-08 14:40:21 +01:00
Bruno Windels 5b14d14286 better time formatting and overlap logging in log viewer 2021-02-24 20:56:36 +01:00
Bruno Windels ee8886f7c2 serialize child items with parent start offset subtracted
for compactness
2021-02-24 10:37:20 +01:00
Bruno Windels 113b47540a render refs in log viewer 2021-02-23 22:11:01 +01:00
Bruno Windels 851c469727 show forced finished
this means the item was forcefully finished when the app closed down,
and the underlying operation was still running
2021-02-23 21:10:16 +01:00
Bruno Windels ba4fa1ee3e sort by start time 2021-02-23 21:10:03 +01:00
Bruno Windels 61adca3b10 show object properties in the details of the log viewer 2021-02-23 21:00:15 +01:00
Bruno Windels 204cc25304 more colors in log viewer 2021-02-19 11:57:57 +01:00
Bruno Windels cfc17ad176 stringify values in log viewer, other number 0 does not get rendered 2021-02-18 15:38:56 +01:00
Bruno Windels 499efb5ce0 add error and status to caption in logviewer 2021-02-18 13:07:12 +01:00
Bruno Windels 69feb40075 add copyright headers 2021-02-18 12:28:57 +01:00
Bruno Windels 560918e373 format times between root items better 2021-02-18 12:25:41 +01:00
Bruno Windels 19df43ca3c more compact layout, a few more detail fields and expand recursively but 2021-02-18 12:25:41 +01:00
Bruno Windels be1650defc add expand button to log items 2021-02-18 12:25:41 +01:00
Bruno Windels 17c2fad4b4 finish log viewer details panel 2021-02-18 12:25:40 +01:00
Bruno Windels 6b527cef65 basic log viewer 2021-02-18 12:25:40 +01:00
Bruno Windels 4477073d6d add platform method to offer saving a buffer handle 2020-11-10 17:24:30 +01:00
Bruno Windels 22a88d06b4 fix build 2020-10-26 15:56:06 +01:00
Bruno Windels 03351d2e1f extract platform class to put all platform specific code in 2020-10-26 15:44:11 +01:00
Bruno Windels 101c7015f2 move service worker code in bundle, and support closing sessions 2020-10-16 12:49:42 +02:00
Bruno Windels 3aa1992a3f WIP of messaging to sw 2020-10-15 19:12:16 +02:00
Bruno Windels a94b099819 cache legacy js on request 2020-10-15 16:18:09 +02:00
Bruno Windels 0f71564d65 also make changes in index.html and sw.js trigger an update 2020-10-15 15:58:29 +02:00
Bruno Windels eaaf18fb82 set icon on iOS 2020-10-15 11:17:33 +02:00
Bruno Windels 47a43869e6 fix grid layout in IE 11
this brings back index addressing rather than x y in the grid vm,
as we need to have a css class for every position for IE 11,
as we can't use css variables and autoprefixer can
translate grid-areas
2020-10-08 14:17:43 +02:00
Bruno Windels 423a463cd6 disable css variables transformation as it breaks the grid layout f/ now 2020-10-07 18:00:26 +02:00
Bruno Windels e70f0d3e89 fix regeneratorRuntime being loaded too late 2020-10-06 12:56:20 +02:00
Bruno Windels c8fd9d423d log requests to dev server 2020-10-05 15:10:15 +02:00
Bruno Windels 8dc2816d6e keep hashed files in cache as long as they don't change 2020-10-02 19:54:24 +02:00
Bruno Windels dff8ddb532 remove logging 2020-10-02 09:34:12 +02:00
Bruno Windels 38a30bcc49 targetDir doesn't need to be global anymore 2020-10-02 09:33:57 +02:00
Bruno Windels 441bfa4890 also write unhashed assets from asset map 2020-10-02 09:33:48 +02:00
Bruno Windels 4a19c8d575 move asset writing into AssetMap as well 2020-10-02 09:33:07 +02:00
Bruno Windels 07b6458f19 track assets centrally in build script 2020-10-01 19:21:27 +02:00
Bruno Windels 6d003f9565 don't include corejs promise polyfill anymore 2020-09-28 15:28:22 +02:00
Bruno Windels e3581c8260 use our fork of es6-promise with flush exposed as the promise polyfill 2020-09-28 15:27:38 +02:00
Bruno Windels ae2f9c6332 extract manifest out of build script and have both (non)-maskable icons
also make PWA standalone instead of fullscreen as that doesn't seem
to play well with the onscreen keyboard on mobile
2020-09-24 11:15:15 +02:00
Bruno Windels 36b56132b0 add TextEncoder/Decoder polyfill to legacy bundle 2020-09-18 12:04:22 +02:00
Bruno Windels 5752cca69c go back to bs58 and use other base64 decoder
as base-x isn't meant for base64
2020-09-17 17:56:05 +02:00
Bruno Windels 4ec0e67384 use base-x to support both base64 and base58 2020-09-17 11:36:54 +02:00
Bruno Windels ab01c903a6 turns out that rollup-plugin-cleanup doesn't like line 259 in aes-js
so don't remove comments for now in the legacy build
2020-09-17 09:36:37 +02:00
Bruno Windels 77a21c08eb add legacy extras, so deps only needed for legacy are not in main bundle 2020-09-16 18:31:17 +02:00
Bruno Windels 729e669ec8 add aes-js dep 2020-09-16 18:31:17 +02:00
Bruno Windels f798a8bca4 add bs58 as a dependency
override some of its imports as they would just add
a lot of nodejs fluff that needs stubbing out for a browser.
2020-09-16 18:31:16 +02:00
Bruno Windels ff09f82f81 add bs58 as a dependency
override some of its imports as they would just add
a lot of nodejs fluff that needs stubbing out for a browser.
2020-09-16 16:58:35 +02:00
Bruno Windels c91290fac2 set theme color as well for pwa 2020-09-14 17:10:52 +02:00
Bruno Windels 9212a1313e add new icon 2020-09-14 17:08:51 +02:00
Bruno Windels b8ce97e739 remove duplicate code in build script 2020-09-11 10:44:08 +02:00
Bruno Windels af36c71a59 load worker in main and pass paths so it works both on compiled and non-compiled 2020-09-10 18:41:23 +02:00
Bruno Windels fdbc5f3c1d WIP worker work 2020-09-10 13:00:11 +02:00
Bruno Windels 18a8f291dc make build script work on windows 2020-09-09 10:32:05 +01:00
Bruno Windels e8efd52223 Merge branch 'master' into bwindels/e2ee 2020-08-27 20:04:49 +02:00
Bruno Windels d51d43abfe use xxhashjs instead which will also work on windows 2020-08-27 20:02:20 +02:00
Bruno Windels 68a3e8867b populate lib dir entirely in postinstall script 2020-08-27 19:51:04 +02:00
Bruno Windels cdb83dd3c9 adjust copyright 2020-08-27 19:15:31 +02:00
Bruno Windels 7bf2a3929c add another-json as a dependency
also add a postinstall script to turn it into an ES module,
so it works with our setup
2020-08-27 18:45:54 +02:00
Bruno Windels 92fdbe15df pass olm paths to main fn
so build can adjust the file paths,
and we can prevent olm from loading by not passing them
2020-08-27 13:24:04 +02:00
Bruno Windels 6813fd2264 upgrade from rollup v1 to v2
so we can use ?. optional chaining
2020-08-19 11:27:35 +02:00
Bruno Windels 942edf69c7 add package script 2020-08-18 12:17:03 +02:00
Bruno Windels 520dac7cec dont use mjs extension for ES modules, some (most) servers serve them with the wrong mimetype 2020-08-18 12:16:51 +02:00
Bruno Windels a094abf4da remove comments in js bundles, saves ~100kb 2020-08-18 11:47:20 +02:00
Bruno Windels c73d6bb3cb serve modern browsers a more compact ES6 bundle 2020-08-18 11:42:13 +02:00
Bruno Windels 989a27395e deploy script for now 2020-08-14 15:20:36 +02:00
Bruno Windels 3c4805b267 also content-hash the webapp manifest 2020-08-14 11:06:39 +02:00
Bruno Windels 0104e14e0b map urls in theme css bundles to their content-hashed counterparts 2020-08-14 10:45:14 +02:00
Bruno Windels 044360afaa add content hashes to build assets 2020-08-13 18:59:31 +02:00
Bruno Windels e1a5c362dc add theme assets to offline definition 2020-08-12 16:40:28 +02:00
Bruno Windels fc8d2efaf2 build theme css bundles 2020-08-12 16:39:35 +02:00
Bruno Windels c3dc01283d copy theme assets
anything that is not a css file, which will be bundled
woff(2) files are treated specially since we only need WOFF
for legacy (IE11) and only WOFF2 for any modern browser.
2020-08-12 16:37:55 +02:00
Bruno Windels d283369627 adjust theme paths in html during build
also discover themes from index.html to be used elsewhere in build
later on
2020-08-12 16:35:48 +02:00
Bruno Windels d102abe425 remove windows phone debug scripts 2020-08-12 11:50:17 +02:00
Bruno Windels ab3c7b7d1f Use postcss plugins to fix flexbox bugs in IE11 and lack of css vars 2020-08-07 18:15:53 +01:00
Bruno Windels fdc7f60f4d Build legacy bundle from same entry point as normal build
as the plan is to only use different CSS for IE11, but the same view code
2020-08-07 15:50:18 +01:00
Bruno Windels 8a9bc315e6 don't pass core-js through babel
this is what caused the bundle not to load in IE11
2020-08-07 10:08:31 +02:00
Bruno Windels 395bd8e8d4 split up rollup input and output config to prevent warnings 2020-08-07 10:08:08 +02:00
Bruno Windels d0ba894e2d apply new license headers in new code 2020-08-05 18:59:16 +02:00
Bruno Windels 45bd49861b Add build for IE 11 2020-08-05 18:56:06 +02:00
Bruno Windels 3a5e3a69f2 fix postcss api change (breaking semver?) 2020-08-05 18:56:06 +02:00
Bruno Windels 00a85697ab add license header in all source files 2020-08-05 18:38:55 +02:00
Bruno Windels eda4022692 show version before login and link to release 2020-03-23 22:46:31 +01:00
Bruno Windels 0c51df220c release script 2020-03-21 11:32:37 +01:00
Bruno Windels 177b03915d fix unit tests by updating impunity 2020-03-13 23:26:48 +01:00
Bruno Windels 4b28eee8b9 do non-debug build by default 2019-11-22 08:55:30 +01:00
Bruno Windels 3c57ebf8a0 enable service worker again 2019-10-12 20:23:37 +02:00
Bruno Windels 453e6e1e0c have build toggle for offline support 2019-09-28 09:45:01 +02:00
Bruno Windels d8696bea1d add offline availability with service worker and appcache 2019-09-15 14:32:12 +02:00
Bruno Windels e372914e7e update build script for debug boilerplate and possibility for appcache 2019-09-15 12:22:43 +02:00
Bruno Windels 412ced594a basic build script with js and css bundling 2019-09-15 09:14:20 +02:00
Bruno Windels 17335db86c add non-caching server for local dev
as browsers seem to try and cache ES modules aggresively
2019-02-16 02:57:19 +01:00