UNPKG

opds-web-client

Version:
235 lines (136 loc) 9.29 kB
## Changelog ### v0.7.0 NYPL Remediation Team update This release includes the minimum updates required for working on Node 20 and patching npm security vulnerablities. #### Added - Added npm packages: `@types/chai`, `sass` #### Updated - Minor updates to the webpack dev and production configuration files. - Updated types to conform with updated Typescript version (v4). - Updated the `prod` scripts to include `NODE_OPTIONS=--openssl-legacy-provider`. - Updated the version for npm packages: `@nypl/dxg-svg-icons`, `@testing-library/react-hooks`, `@types/jsdom`, `@types/mocha`, `@types/node`, `@types/prop-types`, `@types/react`, `@types/react-redux`, `@types/sinon`, `chai`, `clean-webpack-plugin`, `downloadjs`, `enzyme`, `enzyme-adapter-react-16`, `fetch-mock`, `file-loader`, `font-awesome`, `isomorphic-fetch`, `js-cookie`, `jsdom`, `mini-css-extract-plugin`, `mocha`, `moment`, `opds-feed-parser`, `prop-types`, `react-axe`, `react-hot-loader`, `react-test-renderer`, `react-redux`, `react-router`, `redux-devtools-extension`, `redux-localstorage`, `redux-thunk`, `sass-loader`, `seedrandom`, `sinon`, `source-map-loader`, `style-loader`, `ts-loader`, `tslint-config-prettier`, `tslint-plugin-prettier`, `tslint-react-a11y`, `typedoc`, `typescript`, `url-loader`, `webpack`, `webpack-cli`, `webpack-dev-server`, `webpack-merge`, `xml2js` #### Removed - Removed `font-awesome` from main `app.scss` file. This package breaks the webpack build and doesn't seem to be needed. An updated icon font package should be used if this is picked up again. - Removed the tslint config file. This app is in maintenance mode and this update broke this plugin. `eslint` is the recommended by `tslint` but is out of scope of this update. - Removed npm packages: `node-sass`, `tslint`, `tslint-config-prettier`, `tslint-plugin-prettier`, `tslint-react-a11y` ### v0.6.3 - Removed console.logs and other comments from previous version following successful testing. ### v0.6.3-test - The resolve function in OPDSDataAdapter is causing bugs in the List Manager of CM Admin. This version removes the function in order to test it. ### v0.6.2 - Updated class `.collection .collection-container` to give more space to the bottom. ### v0.6.1 - Updated npm packages to fix security issues. ### v0.6.0 - Updated npm packages to fix security issues. ### v0.5.7 - Add a button labeled "LCP License" to the UI and allow patrons to download LCP licenses as .lcpl files. ### v0.5.6 - Fix the `fetchBlob` script to retry on failure if the failure is after a redirect. This is because Amazon S3 will fail if we send it out `Authorization` header. ## v0.5.5 - Various type fixes to allow typescript strict mode in circulation-patron-web. ### v0.5.4 - Add optional AuthLink to AuthMethod type to support authentication and logo links ### v0.5.3 - Add: BookData interface now has optional allBorrowLinks prop ### v0.5.2 - Patch: Add redux devtools extension compatibility. - Fix: Show "Read Online" label for atom media types. ### v0.5.1 - Fix: Use `new URL()` instead of `url.resolve` when parsing OPDS links. `resolve` is legacy and was causing bugs when on `https` but trying to resolve a link with a nested `http` segment. ### v0.5.0 - Add: SAML Auth support. ### v0.4.7 - Display "Read online" instead of "Download..." in download buttons for AxisNow media type ### v0.4.6 - Add AxisNow media type ### v0.4.5 - Send empty `Authentication` header when no credentials are present to prevent sending of cached credentials. - Add overdrive media type ### v0.4.4 - add `isStreaming` flag to returned object from `useDownloadButton`. ### v0.4.3 - add `BookAvailability` enum type and use it to tighten `BookData` interface. ### v0.4.2 - Update `typeMap` and `MediaType` to add audiobook support. ### v0.4.1 - Removes the unused `isActive` property from the `router` context. ### v0.4.0 - Extracts the `getMedium` and `getMediumSVG` methods previously on the `Book` component into external functions so they can be imported and used in `circulation-patron-web`. ### v0.3.7 - Updates to new `jsdom` api in our use of it for server rendering. ### v0.3.6 - Extracts the logic that was previously in `DownloadButton` into `useDownloadButton` so it can be imported and used by circulation-patron-web. - Adds the new `MediaType`, `MediaLink` and `FulfillmentLink` interfaces with stricter typing. - Adds the streaming media and `application/atom+xml` types to the possible `MediaType`s received from the server. - Adds the `fetcher` to the context passed down by `ActionsContext`. This is because it is occasionally necessary to access and use directly. - Updates the `jsdom`, `react`, `react-dom`, `mocha`, and `react-test-renderer` deps to latest versions. This required updating node to the latest stable release 13.11.0. - Fixes outdated test syntaxes caused by dep updates. - Allow store to be passed in to `StoreContext` so that it can be mocked in testing ### v0.3.5 - Enables typescript `strictNullChecks`, which means that types cannot be `null` or `undefined` unless explicitly defined as such. - Changes many types to allow for this, attempting to maintain the original functionality when running into errors. - Adds kepub file type support via both typings and the typeMap. - Extracts some utilities from `Root` and `Book` and `BookDetails` from class methods to plain functions so they can be imported and used elsewhere. ### v0.3.4 - Converted `Breadcrumbs.tsx` into a functional component. - Created custom hooks for to use with redux: `useTypedSelector`, `useThunkDispatch`, and `useActions`. - Refactored `DownloadButton.tsx` to use the hooks to call actions instead of having the `fulfillbook` and `indirectFulfillBook` functions be passed down as props from the root application component. ### v0.3.3 - Created a hook called `usePathFor` to consume `PathFor` context. - Etracted `DownloadButton` logic for use in circulation-patron-web. - Made many properties optional because they were already effectively optional, only this repo didn't have `strictNullChecks` turned on, while circulation-patron-web now does. - Made `OpenAccessLinksType` string literal type for better checking and autofill. ### v0.3.2 - Pass the redux store down the tree via context. - Extracted PathForContext from the Root, which provides context via both legacy and new context APIs. - Created a RouterContext component which can be used by any application to pass a `router` context down the tree. See `circulation-patron-web` as an example. ### v0.3.1 - Added "prettier" code formatter and a git hook to run prettier before each commit. - Updated tslint config to include prettier so that formatting is no longer a lint concern. - Ran prettier on all files, so many small file changes. ### v0.3.0 - Updated to Typescript v3, ts-loader to v6, tslint to v5, and other @types packages. - Fixed accessibility issues that `react-axe` picked up. This update therefore includes an update to the `$blue` scss variable color, `role` attribute fixes, and adding missing `label`s. ### v0.2.10 - Added `react-axe` to test for accessibility. ### v0.2.9 - Fixed function binding issue that caused a TypeError when resizing the window. - Added error handler in DataFetcher if an adapter is not configured. ### v0.2.8 - Added Typedoc for code documentation of React components and related classes and functions. ### v0.2.7 - Added `tslint-react-a11y` to check for accessibility issues in the React components. ### v0.2.6 - Update the opds-feed-parser to version 0.0.17. ### v0.2.5 - Updated the app to use Redux 4. ### v0.2.4 - Updating the headings on the Book Details page. ### v0.2.3 - Added subtitle to the book details page and changed publication date to use UTC so it displays correctly when only date is specified. ### v0.2.2 - Updating the app to work with React 16. ### v0.2.1 - Minor update to redux and syntax in actions and reducers. Added more tests. ### v0.2.0 - Updated many packages include Typescript to 2.7.2 and Webpack to version 4. The update to Webpack 4 includes updates to loaders and plugins. - Removed `typings` in favor of `@types` that goes along with the updated Typescript version. - Typescript syntax and unit tests were updated and we are now using `fetch-mock` for mocking fetch requests. ### v0.1.27 - Updated the focus color for all elements. ### v0.1.26 - Modified search url to include `language=all` to search all languages instead of using the Accept-Language header from the browser. This is an optional prop that needs to be passed down as a prop at the top `OPDSCatalog` component level. The default is `false` which means it's okay to use the browser's Accept-Language header value. ### v0.1.25 - Modified the AuthProviderSelectionForm to pass a click handler to auth button components instead of putting it on a parent element. ### v0.1.24 - Removed hard-coded colors and moved lightening/darkening to overwritable variables for compatibility with additional color schemes and CSS variables. ### v0.1.23 - Updated the route handler component for the OPDSWebClient component in order to remove the `create-react-class` dependency. ### v0.1.22 #### Added - Added "By" before an author(s) name.