- 05 Nov, 2020 1 commit
-
-
Robert Knight authored
`make dev` would unnecessarily create a production build before starting the development server if `package.json` or `yarn.lock` had been touched since the previous run of `make dev`. This was happening because `make dev` had a dependency on `build/manifest.json`, which triggers a production build, rather than `node_modules/.uptodate`, which just runs `yarn install`. I can't remember the historical reason why it was this way, but it doesn't make sense any more. Fix this by changing `make dev` to only depend on `node_modules/` being up to date before starting the dev server.
-
- 04 Nov, 2020 1 commit
-
-
Robert Knight authored
It is confusing to have a Babel plugin with an Angular-related name and Angular-sounding annotations (`@ngInject`) in the code, even though we're not using AngularJS. Although we're not using AngularJS any more, we still have services that are instantiated by a dependency injection container. The container reads dependency names from a `$inject` property on service functions/classes. This `$inject` property is added by `babel-plugin-angularjs-annotate`. This commit replaces the `angularjs-annotate` Babel plugin with one maintained by us [1]. The new plugin provides only the functionality that we need (eg. only processes explicitly annotated functions) and uses a more generic `@inject` annotation. [1] https://github.com/hypothesis/babel-plugin-inject-args
-
- 03 Nov, 2020 3 commits
-
-
Robert Knight authored
This catches a few minor errors which the previous configuration did not. See https://www.typescriptlang.org/tsconfig#strict. `noImplicitAny` is turned off because we still have a lot of un-annotated variables/parameters in the code.
-
Robert Knight authored
-
Robert Knight authored
Move the list of supported browsers from `.babelrc` to the `browserslist` key in `package.json`. This enables other browserslist-enabled tools such as autoprefixer to adapt their output to the target browsers. This reduces the size of the production CSS bundles slightly by reducing the number of unnecessary vendor prefixed rules that are generated. See https://github.com/postcss/autoprefixer#browsers, https://github.com/browserslist/browserslist#queries and https://babeljs.io/docs/en/babel-preset-env#browserslist-integration.
-
- 02 Nov, 2020 6 commits
-
-
Lyza Danger Gardner authored
Previously, the `AnnotationHeader` component checked the equivalency of `annotation.created` and `annotation.updated` to determine if an annotation had been updated subsequent to its creation. This is problematic if an annotation has a very small difference between its `created` and `updated` dates. `created` and `updated` are returned by the API as ISO-8601 date strings with microsecond resolution. These days, annotations created by the `h` service will have exactly equivalent `created` and `updated` timestamps (assuming they haven't actually been edited subsequently, of course). In the past, however, annotations often had negligible (sub-second) differences in their `created` and `updated` dates. This resulted in an edited timestamp misleadingly appearing in the UI for older annotations. These changes add a `hasBeenEdited` function to the `annotation-metadata` util module that considers an annotation edited only if `created` and `updated` differ by at least 2 seconds. Tests for `annotation-metadata` have also been modernized somewhat here. Fixes #2684
-
dependabot-preview[bot] authored
Bumps [@sentry/browser](https://github.com/getsentry/sentry-javascript) from 5.27.1 to 5.27.2. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/5.27.1...5.27.2) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [sass](https://github.com/sass/dart-sass) from 1.27.0 to 1.28.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.27.0...1.28.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.4.0 to 5.4.1. - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md) - [Commits](https://github.com/puppeteer/puppeteer/compare/v5.4.0...v5.4.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.779.0 to 2.783.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.779.0...v2.783.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 18.0.6 to 18.0.8. - [Release notes](https://github.com/octokit/rest.js/releases) - [Commits](https://github.com/octokit/rest.js/compare/v18.0.6...v18.0.8) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
- 30 Oct, 2020 5 commits
-
-
Robert Knight authored
Fix a false negative in the test for whether the current browser is supported if the Hypothesis boot script is included in the `<head>` of the page (before the `<body>`). In this case `document.body` is `null`.
-
Lyza Danger Gardner authored
Refactor `BucketBar` to render preact `Buckets` component. Lightly refactor `anchorBuckets` utility function to return above and below buckets as separate properties. Use SASS mixin for indicator button styling.
-
Lyza Danger Gardner authored
Extract styling for indicator buttons in bucket bar, organize and comment it
-
Lyza Danger Gardner authored
Create a preact component `Buckets`, and sub-components `BucketButton` and `NavigationBucketButton`. This refactors buckets to add some HTML semantics and accessibility.
-
Lyza Danger Gardner authored
Apply clean-theme class to "root" elements of sidebar and annotator. Remove clean-theme logic from sidebar components, and instead use selector in SASS modules to apply relevant styles. Fixes https://github.com/hypothesis/client/issues/2617
-
- 29 Oct, 2020 2 commits
-
-
dependabot-preview[bot] authored
Bumps [postcss-url](https://github.com/postcss/postcss-url) from 8.0.0 to 10.0.0. - [Release notes](https://github.com/postcss/postcss-url/releases) - [Changelog](https://github.com/postcss/postcss-url/blob/master/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss-url/compare/8.0.0...10.0.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
Robert Knight authored
Add a test for the `Element.prepend()` method so that startup fails more gracefully in older, unsupported versions of Edge Legacy (<= 16). This API was chosen as a representative test because it's Chrome/Edge Legacy support closely matches our minimum versions. The same change was made for the LMS app in https://github.com/hypothesis/lms/pull/2209.
-
- 27 Oct, 2020 9 commits
-
-
dependabot-preview[bot] authored
Bumps [commander](https://github.com/tj/commander.js) from 6.1.0 to 6.2.0. - [Release notes](https://github.com/tj/commander.js/releases) - [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/tj/commander.js/compare/v6.1.0...v6.2.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.3.1 to 5.4.0. - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Commits](https://github.com/puppeteer/puppeteer/compare/v5.3.1...v5.4.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [terser](https://github.com/terser/terser) from 5.3.7 to 5.3.8. - [Release notes](https://github.com/terser/terser/releases) - [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md) - [Commits](https://github.com/terser/terser/compare/v5.3.7...v5.3.8) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.2 to 8.1.4. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/master/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.1.2...8.1.4) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [eslint-plugin-jsx-a11y](https://github.com/evcohen/eslint-plugin-jsx-a11y) from 6.3.1 to 6.4.1. - [Release notes](https://github.com/evcohen/eslint-plugin-jsx-a11y/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/CHANGELOG.md) - [Commits](https://github.com/evcohen/eslint-plugin-jsx-a11y/compare/v6.3.1...v6.4.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [@sentry/browser](https://github.com/getsentry/sentry-javascript) from 5.27.0 to 5.27.1. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/5.27.0...5.27.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.0.3 to 4.0.5. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.0.3...v4.0.5) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.776.0 to 2.779.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.776.0...v2.779.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [eslint](https://github.com/eslint/eslint) from 7.11.0 to 7.12.1. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.11.0...v7.12.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
- 23 Oct, 2020 3 commits
-
-
Robert Knight authored
Attempt to fix a prod deployment failure when initial build step happens in a different workspace directory than the prod deploy step. This typically happens when two or more builds are in progress concurrently and then all of the earlier builds finish before the last one is deployed. In this scenario the initial build step happens in a directory such as `master@2` whereas the prod deploy step will happen in a directory named `master`. The prod deploy step assumed that the workspace was still `master@2` and git commands would fail because the directory no longer existed.
-
Robert Knight authored
Remove polyfills for features that are supported by all of our target browsers: - `fetch` (https://caniuse.com/fetch) - The `URL` constructor (https://caniuse.com/url) - `String.prototype.normalize` (https://caniuse.com/mdn-javascript_builtins_string_normalize)
-
Robert Knight authored
The transform-async-to-promises Babel plugin has been replaced by native async/await support in most of the code, except for the boot script.
-
- 22 Oct, 2020 5 commits
-
-
Robert Knight authored
This resolves errors building some indirect dependencies in the most recent versions of Node.
-
Robert Knight authored
This fixes an error in production builds of the client in Safari 10: ``` SyntaxError: Cannot declare a let variable twice: 't'. ``` Fixes #2664
-
Robert Knight authored
- Remove `seamless` attribute which has not been supported by major browsers for years [1] - Remove the `name="hyp_sidebar_frame"` attribute which is not referenced anywhere else in the code. I did find a couple of references to it in Google, but only in scripts written by Hypothesis team members which are not run regularly. [1] https://caniuse.com/iframe-seamless
-
Robert Knight authored
Update Babel compilation targets to match the browsers we currently support, rather than transpiling everything down to ES5. This reduces the size of our JS bundles and improves performance by using native implementations of ES2015+ language features. It should also avoid occassional issues in development caused by interactions of Babel plugins that compile native features to older syntax (eg. `transform-async-to-promises`). The client's boot script has a different configuration than the rest of the client because it needs to be able to run in older browsers in order to show a warning when the browser is not supported. The production bundle size changes resulting from this are: Sidebar bundle: 398 KB => 329 KB Annotator bundle: 219 KB => 169 KB
-
Robert Knight authored
Native (non-transpiled) arrow functions cannot be used with the `new` operator. This commit fixes a couple of cases where that was happening.
-
- 21 Oct, 2020 2 commits
-
-
Robert Knight authored
The `Host` class is never constructed directly and only has one subclass, `Sidebar`. There wasn't a clear separation of responsibilities between `Host` and `Sidebar`. This commit therefore moves the functionality of `Host` into `Sidebar` and merges the tests.
-
Lyza Danger Gardner authored
Restructure the way that buckets are generated and represented. Simplify what `BucketBar` needs to do with the buckets. Fix a bug in which anchors can be occasionally included in multiple buckets. Fixes #397 Fixes #2618
-
- 20 Oct, 2020 3 commits
-
-
Robert Knight authored
Code in the `boot/` module needs to be compiled to work in older browsers than code shared between the annotator and sidebar applications in `src/shared`. To ensure this it helps to avoid dependencies from code in `src/boot` on code in `src/shared`, but the converse is OK. This commit moves the `jsonConfigsFrom` function from `shared/settings` to `boot/parse-json-config` so that it is compiled with the same settings as the rest of the code in the `boot/` module and to reduce the chances of someone accidentally introducing ES6+ features into this code in future and forgetting about older browsers. The function was also renamed to make it more obvious that it parses JSON config, and thus may fail, rather than returning a JSON string.
-
Robert Knight authored
The code in `polyfills/index.js` which determines which polyfills are needed are compiled as part of the boot script and not used by other parts of the application. Because this code is compiled as part of the boot script it needs to be compiled to parse in older browsers, even those which don't support the client (eg. IE 10/11). Putting the `polyfills/` dir in side `src/boot` means that it will inherit any custom Babel configuration for the `src/boot` directory.
-
Robert Knight authored
`document.currentScript` is supported by all browsers that we support. If it returns `null` this indicates that it was called in the wrong context and so fail loudly to make this obvious.
-