diff --git a/CHANGELOG.md b/CHANGELOG.md index ff097052..ea93bd31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,12 @@ - [#275](https://github.com/okta/okta-react/pull/275) - Adds new component `` for integration with `react-router 6.x`. It should be imported from `@okta/okta-react/react-router-6` +# 6.9.0 + +### Bug Fixes + +-[#284](https://github.com/okta/okta-react/pull/284) fix: passes the return value of `restoreOriginalUri()`, so promises will be awaited + # 6.8.0 ### Bug Fixes diff --git a/package.json b/package.json index f2147b93..6009878f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@okta/okta-react", - "version": "6.8.0", + "version": "6.10.0", "description": "React support for Okta", "private": true, "scripts": { @@ -62,7 +62,8 @@ "//": "set-value@2.0.1 has a vuln, see OKTA-473553", "**/set-value": "^4.1.0", "ejs": "^3.1.7", - "axios": "^0.27.2" + "axios": "^0.27.2", + "**/glob": "^9.3.5" }, "dependencies": { "@babel/runtime": "^7.11.2", @@ -85,7 +86,7 @@ "@babel/plugin-transform-runtime": "^7.19.1", "@babel/preset-env": "^7.19.3", "@babel/preset-react": "^7.18.6", - "@okta/okta-auth-js": "^7.0.0", + "@okta/okta-auth-js": "^7.7.0", "@rollup/plugin-babel": "^5.2.1", "@rollup/plugin-replace": "^2.3.4", "@testing-library/jest-dom": "^5.16.2", @@ -160,4 +161,4 @@ "**/@types/react-router-dom" ] } -} +} \ No newline at end of file diff --git a/src/Security.tsx b/src/Security.tsx index 01d04830..fedbaca9 100644 --- a/src/Security.tsx +++ b/src/Security.tsx @@ -65,7 +65,7 @@ const Security: React.FC> = // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore oktaAuth.options.restoreOriginalUri = (async (oktaAuth: unknown, originalUri: string) => { - restoreOriginalUri(oktaAuth as OktaAuth, originalUri); + return restoreOriginalUri(oktaAuth as OktaAuth, originalUri); }) as ((oktaAuth: OktaAuth, originalUri?: string) => Promise); restoreOriginalUriOverridden = true; }, []); // empty array, only check on component mount diff --git a/test/jest/security.test.tsx b/test/jest/security.test.tsx index 3ee6caa9..56ddaeda 100644 --- a/test/jest/security.test.tsx +++ b/test/jest/security.test.tsx @@ -34,8 +34,10 @@ describe('', () => { let Security: React.FC; let useOktaAuth: () => IOktaContext; + // eslint-disable-next-line @typescript-eslint/no-unused-vars const restoreOriginalUri = async (_: OktaAuth, url: string) => { - location.href = url; + // leaving empty, doesn't affect tests, was causing jsdom error (location.href is not supported) + // location.href = url; }; beforeEach(async () => { jest.clearAllMocks(); @@ -150,14 +152,58 @@ describe('', () => { }); }); - it('should set default restoreOriginalUri callback in oktaAuth.options', () => { - oktaAuth.options = {}; - const mockProps = { - oktaAuth, - restoreOriginalUri - }; - mount(); - expect(oktaAuth.options.restoreOriginalUri).toBeDefined(); + describe('restoreOriginalUri', () => { + it('should set default restoreOriginalUri callback in oktaAuth.options', () => { + oktaAuth.options = {}; + const mockProps = { + oktaAuth, + restoreOriginalUri + }; + mount(); + expect(oktaAuth.options.restoreOriginalUri).toBeDefined(); + }); + + it('should only log warning of restoreOriginalUri option once', () => { + oktaAuth.options = { + restoreOriginalUri + }; + const mockProps = { + oktaAuth, + restoreOriginalUri + }; + const warning = 'Two custom restoreOriginalUri callbacks are detected. The one from the OktaAuth configuration will be overridden by the provided restoreOriginalUri prop from the Security component.'; + const spy = jest.spyOn(console, 'warn'); + const wrapper = mount(); + expect(spy).toBeCalledTimes(1); + expect(spy).toBeCalledWith(warning); + spy.mockClear(); + wrapper.setProps({restoreOriginalUri: 'foo'}); // forces rerender + expect(spy).toBeCalledTimes(0); + }); + + it('should await the resulting Promise when a fn returning a Promise is provided', async () => { + oktaAuth.options = {}; + + let hasResolved = false; + const restoreSpy = jest.fn().mockImplementation(() => { + return new Promise(resolve => { + // adds small sleep so non-awaited promises will "fallthrough" + // and the test will fail, unless it awaits for the sleep duration + // (meaning the resulting promise was awaited) + setTimeout(() => { + hasResolved = true; + resolve('foo'); + }, 500); + }); + }); + + mount(); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + await oktaAuth.options.restoreOriginalUri!(oktaAuth, 'foo'); + expect(hasResolved).toEqual(true); + expect(restoreSpy).toHaveBeenCalledTimes(1); + expect(restoreSpy).toHaveBeenCalledWith(oktaAuth, 'foo'); + }); }); it('gets initial state from oktaAuth and exposes it on the context', () => { @@ -408,22 +454,4 @@ describe('', () => { expect(wrapper.find(Security).html()).toBe('

AuthSdkError: No restoreOriginalUri callback passed to Security Component.

'); }); }); - - it('should only log warning of restoreOriginalUri option once', () => { - oktaAuth.options = { - restoreOriginalUri: restoreOriginalUri as any - }; - const mockProps = { - oktaAuth, - restoreOriginalUri - }; - const warning = 'Two custom restoreOriginalUri callbacks are detected. The one from the OktaAuth configuration will be overridden by the provided restoreOriginalUri prop from the Security component.'; - const spy = jest.spyOn(console, 'warn'); - const wrapper = mount(); - expect(spy).toBeCalledTimes(1); - expect(spy).toBeCalledWith(warning); - spy.mockClear(); - wrapper.setProps({restoreOriginalUri: 'foo'}); // forces rerender - expect(spy).toBeCalledTimes(0); - }); }); diff --git a/yarn.lock b/yarn.lock index 570c4e7b..825479b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1205,6 +1205,13 @@ core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" +"@babel/runtime@7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" + integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.0", "@babel/runtime@^7.18.9", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" @@ -1720,7 +1727,7 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@okta/okta-auth-js@*", "@okta/okta-auth-js@^7.0.0": +"@okta/okta-auth-js@*": version "7.0.0" resolved "https://registry.yarnpkg.com/@okta/okta-auth-js/-/okta-auth-js-7.0.0.tgz#d83acb76394ebc7d019d922f0e319fe6655c41ac" integrity sha512-tF+OiaAHNHc5ACKUR5lynX7LQyw9+pqKj8hzSY+E6OCKucYudjMg87AdCdyBxpFgxrirRlAFYv08sM1wwn0Eeg== @@ -1765,6 +1772,28 @@ webcrypto-shim "^0.1.5" xhr2 "0.1.3" +"@okta/okta-auth-js@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@okta/okta-auth-js/-/okta-auth-js-7.7.0.tgz#daac09294316a69d996a33232eb25032d1b85d70" + integrity sha512-m+WlI9TJ3J2uHI+W9Uc7zinE4CQLS2JC6AQYPJ0KHxaVE5lwPDLFleapPNfNWzYGr/30GV7oBzJMU+8+UQEsPA== + dependencies: + "@babel/runtime" "^7.12.5" + "@peculiar/webcrypto" "^1.4.0" + Base64 "1.1.0" + atob "^2.1.2" + broadcast-channel "~5.3.0" + btoa "^1.2.1" + core-js "^3.6.5" + cross-fetch "^3.1.5" + fast-text-encoding "^1.0.6" + js-cookie "^3.0.1" + jsonpath-plus "^6.0.1" + node-cache "^5.1.2" + p-cancelable "^2.0.0" + tiny-emitter "1.1.0" + webcrypto-shim "^0.1.5" + xhr2 "0.1.3" + "@okta/okta-signin-widget@^6.7.1": version "6.9.0" resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-all/@okta/okta-signin-widget/-/@okta/okta-signin-widget-6.9.0.tgz#252d939525a422580c51e549a6e4ed4cd20f4765" @@ -3271,6 +3300,16 @@ broadcast-channel@~4.17.0: rimraf "3.0.2" unload "2.3.1" +broadcast-channel@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-5.3.0.tgz#9d9e55fb8db2a1dbbe436ae6d51382a354e76fc3" + integrity sha512-0PmDYc/iUGZ4QbnCnV7u+WleygiS1bZ4oV6t4rANXYtSgEFtGhB5jimJPLOVpPtce61FVxrH8CYylfO5g7OLKw== + dependencies: + "@babel/runtime" "7.22.10" + oblivious-set "1.1.1" + p-queue "6.6.2" + unload "2.4.1" + browserslist@^4.20.2, browserslist@^4.21.9: version "4.21.10" resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" @@ -4908,6 +4947,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-text-encoding@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" + integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== + fastq@^1.6.0: version "1.13.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" @@ -5204,40 +5248,15 @@ glob-parent@^5.1.2, glob-parent@^6.0.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.3" -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0, glob@^8.0.3, glob@^9.3.5, glob@~7.1.1: + version "9.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" + integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== dependencies: fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^8.0.3: - version "8.1.0" - resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -glob@~7.1.1: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" globals@^11.1.0: version "11.12.0" @@ -5574,15 +5593,7 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -inflight@^1.0.4: - version "1.0.6" - resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6905,6 +6916,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +"lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + lz-string@^1.5.0: version "1.5.0" resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" @@ -7024,7 +7040,7 @@ mini-create-react-context@^0.4.0: "@babel/runtime" "^7.12.1" tiny-warning "^1.0.3" -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: version "3.1.2" resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -7045,6 +7061,13 @@ minimatch@^6.0.4: dependencies: brace-expansion "^2.0.1" +minimatch@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" + integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== + dependencies: + brace-expansion "^2.0.1" + minimatch@~3.0.2: version "3.0.8" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" @@ -7057,6 +7080,16 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + mkdirp-classic@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" @@ -7268,7 +7301,7 @@ oblivious-set@1.1.1: resolved "https://registry.yarnpkg.com/oblivious-set/-/oblivious-set-1.1.1.tgz#d9d38e9491d51f27a5c3ec1681d2ba40aa81e98b" integrity sha512-Oh+8fK09mgGmAshFdH6hSVco6KZmd1tTwNFWj35OvzdmJTMZtAkbn05zar2iG3v6sDs1JLEtOiBGNb6BHwkb2w== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -7450,11 +7483,6 @@ path-exists@^4.0.0: resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -7465,6 +7493,14 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.6.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" @@ -9221,6 +9257,11 @@ unload@2.3.1: "@babel/runtime" "^7.6.2" detect-node "2.1.0" +unload@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/unload/-/unload-2.4.1.tgz#b0c5b7fb44e17fcbf50dcb8fb53929c59dd226a5" + integrity sha512-IViSAm8Z3sRBYA+9wc0fLQmU9Nrxb16rcDmIiR6Y9LJSZzI7QY5QsDhqPpKOjAn0O9/kfK1TfNEMMAGPTIraPw== + update-browserslist-db@^1.0.11, update-browserslist-db@^1.0.5: version "1.0.11" resolved "https://artifacts.aue1e.internal:443/artifactory/api/npm/npm-okta-master/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"