- 19 Oct, 2021 18 commits
-
-
Robert Knight authored
There was an action to set this state but it was never read anywhere.
-
Eduardo Sanz García authored
Co-authored-by: Robert Knight <robertknight@gmail.com>
-
Eduardo Sanz García authored
I have created type definitions for all the event names that are sent across the different frames using various `Bridge`s. It is based on the previous `bridge-events.js`. I broke down the events in four sections based on the direction of the messages: * guest -> sidebar events * host -> sidebar events * sidebar -> guest/s events * sidebar -> host events For those events that didn't have a description I added one. This is more stringent and less verbose than the previous lookup system.
-
Robert Knight authored
Move the responsibility for opening the sidebar when there is a draft to edit from the guest into the sidebar's `FrameSyncService`. The initial motivation for this was to make the logic in the `beforeAnnotationCreated` event handler in the `Sidebar` class work if the annotation is created in a non-host guest frame. The plan was to make the sidebar send an `openSidebar` request with custom options that would trigger the logic that used to be in the `beforeAnnotationCreated` event handler. However it appears that focusing the sidebar frame is no longer necessary. In my testing the input field in the sidebar was successfully focused regardless of whether `iframe.contentWindow.focus()` was called or not. Therefore I have just removed the handler. Even though the original need no longer exists, moving the logic still seems sensible because logically it is the sidebar application that knows it is awaiting user input after a new draft is created. It also means that if we do find a need to re-introduce the frame-focusing logic that used to be in the `beforeAnnotationCreated` handler, we can do so in a way that works with annotations created in non-host frames.
-
Robert Knight authored
The initial un-hiding and opening of the sidebar was previously triggered by a `panelReady` event emitted by the Guest in the host frame when it connects. As part of eliminating the need for the host frame to also be a guest, change the initial sidebar open to use the `Sidebar.ready` promise instead, which is resolved when the sidebar applicaiton sends a `hypothesisSidebarReady` notice to the `Sidebar` app. Part of https://github.com/hypothesis/client/issues/3798
-
Robert Knight authored
Fix `gulp test --watch`. See https://github.com/hypothesis/frontend-shared/pull/214.
-
Robert Knight authored
Streamline the Karma configuration to remove obsolete settings and make it easier to see what non-default configuration we have supplied. - Remove `grep` option handling. The `--grep` option when running tests is now used in gulpfile.js to select which _files_ are included in the test. - Remove comments which add little value - Remove config settings that just set default values which are not expected to change in future
-
dependabot[bot] authored
Bumps [rollup](https://github.com/rollup/rollup) from 2.47.0 to 2.58.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v2.47.0...v2.58.0) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [babel-plugin-istanbul](https://github.com/istanbuljs/babel-plugin-istanbul) from 6.0.0 to 6.1.1. - [Release notes](https://github.com/istanbuljs/babel-plugin-istanbul/releases) - [Changelog](https://github.com/istanbuljs/babel-plugin-istanbul/blob/master/CHANGELOG.md) - [Commits](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v6.0.0...v6.1.1) --- updated-dependencies: - dependency-name: babel-plugin-istanbul dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 19.0.0 to 21.0.0. - [Release notes](https://github.com/rollup/plugins/releases) - [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/commonjs-v21.0.0/packages/commonjs) --- updated-dependencies: - dependency-name: "@rollup/plugin-commonjs" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.1004.0 to 2.1010.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.1004.0...v2.1010.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins/tree/HEAD/packages/node-resolve) from 13.0.0 to 13.0.5. - [Release notes](https://github.com/rollup/plugins/releases) - [Changelog](https://github.com/rollup/plugins/blob/master/packages/node-resolve/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/node-resolve-v13.0.5/packages/node-resolve) --- updated-dependencies: - dependency-name: "@rollup/plugin-node-resolve" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [mocha](https://github.com/mochajs/mocha) from 9.1.2 to 9.1.3. - [Release notes](https://github.com/mochajs/mocha/releases) - [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md) - [Commits](https://github.com/mochajs/mocha/compare/v9.1.2...v9.1.3) --- updated-dependencies: - dependency-name: mocha dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [sass](https://github.com/sass/dart-sass) from 1.42.1 to 1.43.2. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.42.1...1.43.2) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [@rollup/plugin-alias](https://github.com/rollup/plugins/tree/HEAD/packages/alias) from 3.1.2 to 3.1.5. - [Release notes](https://github.com/rollup/plugins/releases) - [Changelog](https://github.com/rollup/plugins/blob/master/packages/alias/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/alias-v3.1.5/packages/alias) --- updated-dependencies: - dependency-name: "@rollup/plugin-alias" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.4.3 to 4.4.4. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.4.3...v4.4.4) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [core-js](https://github.com/zloirock/core-js) from 3.18.2 to 3.18.3. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/compare/v3.18.2...v3.18.3) --- updated-dependencies: - dependency-name: core-js dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [@rollup/plugin-replace](https://github.com/rollup/plugins/tree/HEAD/packages/replace) from 2.4.2 to 3.0.0. - [Release notes](https://github.com/rollup/plugins/releases) - [Changelog](https://github.com/rollup/plugins/blob/master/packages/replace/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/wasm-v3.0.0/packages/replace) --- updated-dependencies: - dependency-name: "@rollup/plugin-replace" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
-
- 18 Oct, 2021 5 commits
-
-
Robert Knight authored
Convert the Rollup config files to have a `.mjs` extension so that Node can natively load them as ES modules and then load them using `import(...)` rather than the `loadConfigFile` helper. This avoids a deprecation warning when importing `rollup/dist/loadConfigFile`: ``` (node:21339) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./dist/" in the "exports" field module ... ``` This also makes the way the config file is loaded more transparent, since its just a regular dynamic import. The downside of this change is that we don't get a `warnings` object back to print warnings that occur during bundling. Instead have to pass an `onwarn` handler to `rollup.{rollup, watch}`.
-
Lyza Danger Gardner authored
-
Lyza Danger Gardner authored
-
Lyza Danger Gardner authored
Use the shared utility classes; remove local implementations
-
Lyza Danger Gardner authored
Util styles should come after component styles
-
- 15 Oct, 2021 14 commits
-
-
Robert Knight authored
This should make it easier to speed up test runs in future by pre-building npm dependencies into a separate bundle which the main test bundle can import from.
-
Robert Knight authored
The CommonJS plugin is the second most expensive transform after Babel. Since all of our own code uses ES modules, limit it to npm dependencies to speed up the build. In tests the Babel transform has also been moved last so that additional code it generates is not unnecessarily processed by subsequent plugins. Combined these changes speed up a build of the full test bundle by ~4s.
-
Robert Knight authored
This fixes a slow test on this branch, which appears to be caused by an interaction between using `postMessage` to serialize native Error objects and the `source-map-support` Karma plugin that we use. Sending native Errors via `PortRPC` currently doesn't work in all browsers so I expect we'll want to implement our own serialization of errors in `PortRPC` to work around that. That can also work around the `source-map-support`/`postMessage` issue in Chrome in future. To move the Browserify => Rollup conversion forwards, this commit just changes the test to use an Error-like rather than actual Error object.
-
Robert Knight authored
`sinon` is exposed as a global in the test environment so it doesn't need to be imported. Additionally some of the dependencies of Sinon (samsam, nise) cause warnings about circular dependencies and use of `eval` when bundled by Rollup.
-
Robert Knight authored
Add comments to clarify a few things about the way the tests are built and run.
-
Robert Knight authored
Due to pre-existing `<script>` tags on third-party websites that load the client's boot script, via https://hypothes.is/embed.js, we need to keep generating it as a classic rather than ES module script for now.
-
Robert Knight authored
This prevents a warning from Rollup about use of `this` outside a class or (non-arrow) function in development builds, due to the way Babel compiles JSX expressions [1]. Moving top-level code into a function is also useful in case we ever want to write tests for it. [1] https://github.com/babel/babel/issues/9149
-
Robert Knight authored
-
Robert Knight authored
Since the exclusion is no longer triggered by logic in the source code, add a note about where this happens.
-
Robert Knight authored
Make conditional exclusion of modules work the same way in the app bundle as in the tests bundle.
-
Robert Knight authored
Fix an occasional error from Gulp about a missing `boot.bundle.js` file when running `make dev` for the first time after `make clean`. This can happen if `updateManifest` runs before Rollup has generated `boot.bundle.js`. The error can be safely ignored as `updateManifest` will be re-run after `boot.bundle.js` is generated.
-
-
Robert Knight authored
-
Robert Knight authored
Replace Browserify with Rollup as a module bundler. This brings several advantages: - It is a more modern bundler that has better support in the ecosystem, more active maintenence, fewer dependencies and is easier to write plugins for. The core team also maintain most of the plugins that we need. - It has native support for modern platform features like ES modules, including dynamic import for lazy-loading of functionality. - It generates smaller bundles due to its ability to do tree shaking and scope hoisting. The new bundles are generated as ES modules rather than UMD / IIFE bundles. Our target browsers now all support ES modules and this will enable us to use native static/dynamic imports for code splitting or lazy-loading of functionality in future. The initial Rollup build generates one bundle per application (boot script, annotator, sidebar). This simplifies the build process and minimizes production bundle size, at the cost of making incremental updates during development slightly slower. Build performance is currently similar to or a little slower than Browserify. We can optimize this by adding caching of transforms (mainly Babel) and pre-building of a vendor bundle containing large dependencies. As part of changing the bundler this also changes how the code is packaged for tests. We now do the bundling ourselves rather than using a Karma integration. This makes it much easier to inspect the processed code and fix problems. It also makes it easier to optimize the bundle building in future.
-
- 11 Oct, 2021 3 commits
-
-
Robert Knight authored
-
Robert Knight authored
-
Robert Knight authored
The CrossFrame class was a thin wrapper around the Bridge connection between guest and sidebar and wasn't really encapsulating any functionality. Simplify the code by removing this non-abstraction and moving the Bridge and AnnotationSync construction directly into the Guest class. Also reorganize the Guest constructor to better group together related logic. In the anchoring integration test the CrossFrame stub has simply been removed rather than replaced because it isn't necessary. As long as `Guest.connectToSidebar` is not called, all the Bridge method calls will have no effect.
-