Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Export types from global TypeScript file. * Fix BaseLoginOptions JSDoc. * Fix Auth0Client export and integration tests. * Prevent breaking changes with type and import. * Add export for Auth0Client type. * [SDK-1178] Local Storage caching mechanism (#303) * Refactored existing cache * Renamed to InMemoryCache * Removed default export * Added ICache * Refactored tests * Auth0Client now uses ICache instead of implemented cache type * Added ability to configure cache strategy * Added VS Code debug configuration for running tests * Implemented local storage cache * Made use of "in" to check presence of key in object * Refactored playground page to use Vue + Bootstrap * Added ability to clear the token cache Added clear() to the ICache interface, meaning that this had to be applied to the memory and localstorage caches. Made use of jest-localstorage-mock package for easier testing with localstorage, making the clear method easier to test for the LocalStorageCache implementation. * Revamped the playground page with Vue and Bootstrap additions * Vulnerable dependency update * Added a section in the readme about the caching strategy * Fixed integration tests * Readme wording * Refactored how items are cleared from local storage * Refactored cache key * Readme tweak to make what 'data' is more clear * Renamed cacheStrategy option to cacheLocation * Cache now includes client_id in key * [SDK-1179] Support for rotating refresh tokens (#315) * Refactored getting token using iframe into its own method * Implemented getTokenUsingRefreshToken * Fixed up the playground page to support refresh tokens * Set offline_access scope during initialization * Added error condition for when a refresh token isn't stored or no cache exists * Removed specification of audience when calling token endpoint * Clarified docs on useRefreshTokens * Simplified usage of getUniqueScopes in index.ts * Fixed some playground syntax issues for IE11 * Playground now shows auth info on load if authenticated * Simplified integration tests * Added more integration tests around getting access tokens * Encoded the nonce value when building authorize URLs * Renamed encodeState to encode * Fixed broken integration test * Release 1.7.0-beta.1 (#327) * Release 1.7.0-beta.1 * Tweaked intermittently-failing test * Fixed issue with cache not retaining refresh token (#333) * Fixed issue with cache not retaining refresh token * Fix integration tests * Removed unused core-js import * Extracted 1 day in seconds value to a constant * Applied comment to be consistant with related test * Applied brace styling for consistancy * Reworked expiry tests to mock date instead of using negative exp * Added some comments to the cache tests to explain the test scenario * Cleaned up JS return statement styling * Prepare 1.7.0-beta.2 (#334) * Wrapped InMemoryCache implementation in a closure (#337) * Reinstated lock on getTokenSilently * Fixed up code + tests after rebase * Fixed up types * Removed undesirables from the docs generation * [SDK-1352] Removed setTimeout cache removal in favour of removal-on-read (#354) * Removed setTimeout cache expiry in favour of expiry-on-read * Replace magic values with a constant * [SDK-1279] getTokenSilently retry logic (#336) * Added retry logic to getJSON * Moved retry count to a constant * Reverted changes to oauthToken * Reduced retry count to 3 * Implemented a timeout around the fetch call * Made the fetch timeout a default value and adjusted tests * Fixed broken test after merge * Implemented AbortController to abort fetch on timeout * Added abortcontroller polyfill * Created factory function for AbortController to be mocked and tested * [SDK-1352] Stop checking `isAuthenticated` cookie on initialization when using local storage (#352) * Changes to the initialization strategy * Removed unused import from a test * Release 1.7.0-beta.3 (#358) * Fix error in library type definitions (#367) `// @ts-ignore` comment is not preserved in the generated type definition, which means that library ships broken type definitions and consumers will get an error when they attempt to use it. Reproduction: ``` $ npm i @auth0/auth0-spa-js@1.7.0-beta.3 typescript $ cat index.ts import c from '@auth0/auth0-spa-js'; $ ./node_modules/.bin/tsc --noEmit index.ts node_modules/@auth0/auth0-spa-js/dist/typings/index.d.ts:9:8 - error TS2440: Import declaration conflicts with local declaration of 'Auth0Client'. 9 import Auth0Client from './Auth0Client'; ~~~~~~~~~~~ Found 1 error. ``` * [SDK-1386] Fall back to iframe method if no refresh token is available (#364) * Logic falls back to the iframe method when no refresh token is found * Cleaned up a variable name * Updated integration test * Release 1.7.0-beta.4 (#370) * Updated cache configuration instructions in the readme * Removed unused cacheStrategy param from buildAuthorizeUrl * [SDK-1379] Export constructor (#385) Export constructor * Release 1.7.0-beta.5 (#393) * [SDK-1507] Dependency upgrade (#405) * Ran npm audit fix * Updated packages within semver * Updated typedoc * Updated rollup to 2.3.3 + plugins * Updated idtoken-verifier to 2.0.2 * Fixed warnings on async describe blocks * Updated prettier/pretty-quick * Updated Husky and ran husky-upgrade * Updated Cypress, wait-on and concurrently * Upgraded tslint * Updated circle image * [SDK-1516] Web Workers (#409) * fetch in a web worker * token worker * known issue: doesn't work if user already logged in (need authorization_code grant_type to populate the refresh token) * add iframe fallback * fix tests * We want to load: `rollup-plugin-worker-loader::module:./token.worker.ts` But not: rollup-plugin-worker-loader::module:/Users/adammcgrath/dev/auth0-spa-js/src/token.worker.ts TODO: check windows * Fixed ES5 transpilation for rollup worker plugin * Make messages serializable using `JSON.parse(JSON.stringify({}))` Swap imports per https://github.com/mo/abortcontroller-polyfill/blob/3f1c13d2e4087ee15ded81786f1110ae547931bb/README.md#using-it-on-internet-explorer-11-msie11 * only use worker for non ie, local refresh token opts TODO: fix tests * Fix tests * Removed refresh token from worker memory when not included in response * Moved offline_access scope configuration to constructor * Modified playground to use both factory func and constructor * Remove Object.assign * Remove checks to fix rebuild issue * Abort timed out requests in the Web Worker * Errors * Fix tests * Add some more tests * DRY up the tests a little * Moar tests * unused import * update rollup-plugin-web-worker-loader don't run `addEventListener` in tests add test for missing refresh token and localstorage * add timeout tests * add browser tests * Only include files in the typings copy process * Fix fallback logic when no RT and no worker * add browser tests and comments * bump node version in Jenkinsfile * Removed unused import * Added sanity check for web worker support * Fixed tests for window.Worker check * Moved constructor tests into Auth0Client Co-authored-by: Steve Hobbs <steve.hobbs.mail@gmail.com> * Updated readme with info on refresh tokens (#415) * Implemented fallback to iframe when given specific audience (#414) * Check if iframe is still in body before removing (#399) If the iframe is removed from the DOM prior to the timeout it would error on removeChild. Error thrown: `Uncaught DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.` Bug introduced in #376 Co-authored-by: Steve Hobbs <steve.hobbs@auth0.com> * Check if source of event exists before closing it (#410) When the iframe is closed, the source of the event message is null, resulting in an error: Cannot read property 'close' of undefined (Chrome). Co-authored-by: Steve Hobbs <steve.hobbs@auth0.com> * Removed unused error import Co-authored-by: maxswa <mkswartwout@gmail.com> Co-authored-by: Yaroslav Admin <devoto13@gmail.com> Co-authored-by: Adam Mcgrath <adam.mcgrath@auth0.com> Co-authored-by: Paul Falgout <paul@otterball.com> Co-authored-by: gerritdeperrit <gertjansterrenburg@gmail.com>
- Loading branch information