Mirror: React hooks for accessible, common web interactions. UI super powers without the UI.

WIP: Add useFocusLoop

+7 -8
package.json
··· 51 51 }, 52 52 "devDependencies": { 53 53 "@rollup/plugin-buble": "^0.21.3", 54 - "@rollup/plugin-commonjs": "^15.0.0", 55 - "@rollup/plugin-node-resolve": "^9.0.0", 56 - "@types/react": "^16.9.49", 57 - "husky": "^4.3.0", 58 - "lint-staged": "^10.4.0", 54 + "@rollup/plugin-commonjs": "^19.0.1", 55 + "@rollup/plugin-node-resolve": "^13.0.2", 56 + "@types/react": "^17.0.14", 57 + "husky": "^7.0.1", 58 + "lint-staged": "^11.0.1", 59 59 "npm-run-all": "^4.1.5", 60 60 "prettier": "^2.1.2", 61 - "react": "^16.13.1", 61 + "react": "^17.0.2", 62 62 "rollup": "^2.27.1", 63 - "rollup-plugin-babel": "^4.4.0", 64 63 "rollup-plugin-terser": "^7.0.2", 65 - "rollup-plugin-typescript2": "^0.27.2", 64 + "rollup-plugin-typescript2": "^0.30.0", 66 65 "typescript": "^4.0.3" 67 66 } 68 67 }
+119
rollup.config.js
··· 1 + import commonjs from '@rollup/plugin-commonjs'; 2 + import resolve from '@rollup/plugin-node-resolve'; 3 + import typescript from 'rollup-plugin-typescript2'; 4 + import buble from '@rollup/plugin-buble'; 5 + import { terser } from 'rollup-plugin-terser'; 6 + 7 + const pkg = require('./package.json'); 8 + 9 + export const externalModules = ['dns', 'fs', 'path', 'url']; 10 + if (pkg.peerDependencies) 11 + externalModules.push(...Object.keys(pkg.peerDependencies)); 12 + if (pkg.dependencies) externalModules.push(...Object.keys(pkg.dependencies)); 13 + 14 + const externalPredicate = new RegExp(`^(${externalModules.join('|')})($|/)`); 15 + 16 + const config = { 17 + input: { 18 + [pkg.name]: './src/index.ts', 19 + }, 20 + onwarn() {}, 21 + external(id) { 22 + return externalPredicate.test(id); 23 + }, 24 + treeshake: { 25 + unknownGlobalSideEffects: false, 26 + tryCatchDeoptimization: false, 27 + moduleSideEffects: false, 28 + }, 29 + }; 30 + 31 + const plugins = [ 32 + resolve({ 33 + extensions: ['.js', '.jsx', '.ts', '.tsx'], 34 + mainFields: ['module', 'jsnext', 'main'], 35 + preferBuiltins: false, 36 + browser: true, 37 + }), 38 + 39 + commonjs({ 40 + ignoreGlobal: true, 41 + include: /\/node_modules\//, 42 + namedExports: {}, 43 + }), 44 + 45 + typescript({ 46 + useTsconfigDeclarationDir: true, 47 + tsconfigOverride: { 48 + compilerOptions: { 49 + sourceMap: true, 50 + noEmit: false, 51 + declaration: true, 52 + declarationDir: './dist/types', 53 + target: 'esnext', 54 + }, 55 + }, 56 + }), 57 + 58 + buble({ 59 + transforms: { 60 + unicodeRegExp: false, 61 + dangerousForOf: true, 62 + dangerousTaggedTemplateString: true, 63 + asyncAwait: false, 64 + }, 65 + objectAssign: 'Object.assign', 66 + }), 67 + 68 + terser({ 69 + warnings: true, 70 + ecma: 5, 71 + keep_fnames: true, 72 + ie8: false, 73 + compress: { 74 + pure_getters: true, 75 + toplevel: true, 76 + booleans_as_integers: false, 77 + keep_fnames: true, 78 + keep_fargs: true, 79 + if_return: false, 80 + ie8: false, 81 + sequences: false, 82 + loops: false, 83 + conditionals: false, 84 + join_vars: false 85 + }, 86 + mangle: { 87 + module: true, 88 + keep_fnames: true, 89 + }, 90 + output: { 91 + beautify: true, 92 + braces: true, 93 + indent_level: 2 94 + } 95 + }), 96 + ]; 97 + 98 + const output = (format = 'cjs', extension = '.js') => ({ 99 + chunkFileNames: '[hash]' + extension, 100 + entryFileNames: '[name]' + extension, 101 + dir: './dist', 102 + exports: 'named', 103 + externalLiveBindings: false, 104 + sourcemap: true, 105 + esModule: false, 106 + indent: false, 107 + freeze: false, 108 + strict: false, 109 + format, 110 + }); 111 + 112 + export default [ 113 + { 114 + ...config, 115 + shimMissingExports: true, 116 + plugins, 117 + output: [output('esm', '.es.js'), output('cjs', '.js')], 118 + }, 119 + ];
+1
src/index.ts
··· 1 + export { useFocusLoop } from './useFocusLoop';
+3
src/types.ts
··· 1 + export interface Ref<T extends HTMLElement> { 2 + readonly current: T | null; 3 + }
+53
src/useFocusLoop.ts
··· 1 + import { useLayoutEffect } from 'react'; 2 + import { getFirstFocusTarget, getFocusTargets } from './utils/focus'; 3 + import { contains } from './utils/element'; 4 + import { Ref } from './types'; 5 + 6 + export function useFocusLoop<T extends HTMLElement>(ref: Ref<T>) { 7 + useLayoutEffect(() => { 8 + if (!ref.current) return; 9 + 10 + let active = document.activeElement as HTMLElement | null; 11 + if (!active || !ref.current.contains(active)) { 12 + active = getFirstFocusTarget(ref.current); 13 + if (active) active.focus(); 14 + } 15 + 16 + function onBlur(event: FocusEvent) { 17 + const parent = ref.current; 18 + if (!parent || event.defaultPrevented) return; 19 + 20 + if (contains(parent, event.target) && !contains(parent, event.relatedTarget)) { 21 + const target = getFirstFocusTarget(parent); 22 + if (target) target.focus(); 23 + } 24 + } 25 + 26 + function onKeyDown(event: KeyboardEvent) { 27 + const parent = ref.current; 28 + if (!parent || event.defaultPrevented) return; 29 + 30 + if (event.code === 'Tab') { 31 + const activeElement = document.activeElement as HTMLElement; 32 + const targets = getFocusTargets(parent); 33 + const index = targets.indexOf(activeElement); 34 + if (event.shiftKey && index === 0) { 35 + event.preventDefault(); 36 + targets[targets.length - 1].focus(); 37 + } else if (!event.shiftKey && index === targets.length - 1) { 38 + event.preventDefault(); 39 + targets[0].focus(); 40 + } 41 + 42 + } 43 + } 44 + 45 + document.body.addEventListener('focusout', onBlur); 46 + document.addEventListener('keydown', onKeyDown); 47 + 48 + return () => { 49 + document.body.removeEventListener('focusout', onBlur); 50 + document.removeEventListener('keydown', onKeyDown); 51 + }; 52 + }, [ref]); 53 + }
+20
src/utils/element.ts
··· 1 + /** Returns a given tab index for an element, defaulting to zero. */ 2 + export const getTabIndex = (node: Element): number => { 3 + const index = parseInt(node.getAttribute('tabindex')!, 10); 4 + return ( 5 + index === index && 6 + (node as HTMLElement).contentEditable !== 'true' && 7 + index 8 + ) || 0; 9 + }; 10 + 11 + /** Returns whether an element is visible in the context of focusability. */ 12 + export const isVisible = (node: Element): boolean => !!( 13 + (node as HTMLElement).offsetWidth && 14 + (node as HTMLElement).offsetHeight && 15 + node.getClientRects().length && 16 + getComputedStyle(node).visibility !== 'hidden' 17 + ); 18 + 19 + export const contains = (owner: Element | null, node: Element | EventTarget | null) => 20 + !!(node && owner && (owner === node || owner.contains(node as Element)));
+3 -19
src/utils/focus.ts
··· 1 + import { getTabIndex, isVisible } from './element'; 2 + 1 3 const excludeSelector = ':not([tabindex^="-"]):not([aria-modal]):not([role="dialog"])'; 2 4 3 5 const focusableSelectors = [ ··· 13 15 '[tabindex]' + excludeSelector, 14 16 ].join(','); 15 17 16 - /** Returns a given tab index for an element, defaulting to zero. */ 17 - const getTabIndex = (node: Element): number => { 18 - const index = parseInt(node.getAttribute('tabindex')!, 10); 19 - return ( 20 - index === index && 21 - (node as HTMLElement).contentEditable !== 'true' && 22 - index 23 - ) || 0; 24 - }; 25 - 26 18 /** Generic sorting function for tupel containing elements with indices and tab indices. */ 27 19 const sortByTabindex = <T extends HTMLElement>(a: [number, number, T], b: [number, number, T]) => { 28 20 return a[1] === a[1] 29 21 ? a[0] - b[0] 30 22 : a[1] - a[1]; 31 23 }; 32 - 33 - /** Returns whether an element is visible in the context of focusability. */ 34 - const isVisible = (node: Element): boolean => !!( 35 - (node as HTMLElement).offsetWidth && 36 - (node as HTMLElement).offsetHeight && 37 - node.getClientRects().length && 38 - getComputedStyle(node).visibility !== 'hidden' 39 - ); 40 24 41 25 /** Returns whether this node may contain focusable elements. */ 42 26 export const hasFocusTargets = (node: Element): boolean => ··· 65 49 }; 66 50 67 51 /** Returns the first focus target that should be focused automatically. */ 68 - export const getFirstFocusTargets = (node: HTMLElement): HTMLElement | null => { 52 + export const getFirstFocusTarget = (node: HTMLElement): HTMLElement | null => { 69 53 const targets = getFocusTargets(node); 70 54 return targets.find(x => x.matches('[autofocus]')) || targets[0] || null; 71 55 };
+85 -245
yarn.lock
··· 9 9 dependencies: 10 10 "@babel/highlight" "^7.14.5" 11 11 12 - "@babel/helper-module-imports@^7.0.0": 13 - version "7.14.5" 14 - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" 15 - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== 16 - dependencies: 17 - "@babel/types" "^7.14.5" 18 - 19 12 "@babel/helper-validator-identifier@^7.14.5": 20 13 version "7.14.5" 21 14 resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" ··· 30 23 chalk "^2.0.0" 31 24 js-tokens "^4.0.0" 32 25 33 - "@babel/types@^7.14.5": 34 - version "7.14.5" 35 - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" 36 - integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== 37 - dependencies: 38 - "@babel/helper-validator-identifier" "^7.14.5" 39 - to-fast-properties "^2.0.0" 40 - 41 26 "@rollup/plugin-buble@^0.21.3": 42 27 version "0.21.3" 43 28 resolved "https://registry.yarnpkg.com/@rollup/plugin-buble/-/plugin-buble-0.21.3.tgz#1649a915b1d051a4f430d40e7734a7f67a69b33e" ··· 47 32 "@types/buble" "^0.19.2" 48 33 buble "^0.20.0" 49 34 50 - "@rollup/plugin-commonjs@^15.0.0": 51 - version "15.1.0" 52 - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz#1e7d076c4f1b2abf7e65248570e555defc37c238" 53 - integrity sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ== 35 + "@rollup/plugin-commonjs@^19.0.1": 36 + version "19.0.1" 37 + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.1.tgz#94a2c103d675523d3ab1c60bfbec567b3eb70410" 38 + integrity sha512-bRrPTIAsWw2LmEspEMvV9f+7N7CEQgZCj2Zi1F0e0P3+/tbjQaSNNVVRSRWVhuDagp8yjK5kbIut8KTPsseRhg== 54 39 dependencies: 55 40 "@rollup/pluginutils" "^3.1.0" 56 41 commondir "^1.0.1" ··· 60 45 magic-string "^0.25.7" 61 46 resolve "^1.17.0" 62 47 63 - "@rollup/plugin-node-resolve@^9.0.0": 64 - version "9.0.0" 65 - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz#39bd0034ce9126b39c1699695f440b4b7d2b62e6" 66 - integrity sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg== 48 + "@rollup/plugin-node-resolve@^13.0.2": 49 + version "13.0.2" 50 + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.2.tgz#bfe58e9bfc7284ee0fabc6da7fabcb268f04e0a4" 51 + integrity sha512-hv+eAMcA2hQ7qvPVcXbtIyc0dtue4jMyA2sCW4IMkrmh+SeDDEHg1MXTv65VPpKdtjvWzN3+4mHAEl4rT+zgzQ== 67 52 dependencies: 68 53 "@rollup/pluginutils" "^3.1.0" 69 54 "@types/resolve" "1.17.1" 70 55 builtin-modules "^3.1.0" 71 56 deepmerge "^4.2.2" 72 57 is-module "^1.0.0" 73 - resolve "^1.17.0" 58 + resolve "^1.19.0" 74 59 75 60 "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": 76 61 version "3.1.0" ··· 79 64 dependencies: 80 65 "@types/estree" "0.0.39" 81 66 estree-walker "^1.0.1" 67 + picomatch "^2.2.2" 68 + 69 + "@rollup/pluginutils@^4.1.0": 70 + version "4.1.1" 71 + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.1.tgz#1d4da86dd4eded15656a57d933fda2b9a08d47ec" 72 + integrity sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ== 73 + dependencies: 74 + estree-walker "^2.0.1" 82 75 picomatch "^2.2.2" 83 76 84 77 "@types/buble@^0.19.2": ··· 113 106 resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" 114 107 integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== 115 108 116 - "@types/react@^16.9.49": 117 - version "16.14.11" 118 - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.11.tgz#992a0cd4b66b9f27315042b5d96e976717368f04" 119 - integrity sha512-Don0MtsZZ3fjwTJ2BsoqkyOy7e176KplEAKOpr/4XDdzinlyJBn9yfsKn5mcSgn4kh1B22+3tBnzBC1z63ybtQ== 109 + "@types/react@^17.0.14": 110 + version "17.0.14" 111 + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.14.tgz#f0629761ca02945c4e8fea99b8177f4c5c61fb0f" 112 + integrity sha512-0WwKHUbWuQWOce61UexYuWTGuGY/8JvtUe/dtQ6lR4sZ3UiylHotJeWpf3ArP9+DSGUoLY3wbU59VyMrJps5VQ== 120 113 dependencies: 121 114 "@types/prop-types" "*" 122 115 "@types/scheduler" "*" ··· 258 251 escape-string-regexp "^1.0.5" 259 252 supports-color "^5.3.0" 260 253 261 - chalk@^4.0.0, chalk@^4.1.0: 254 + chalk@^4.1.0, chalk@^4.1.1: 262 255 version "4.1.1" 263 256 resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" 264 257 integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== 265 258 dependencies: 266 259 ansi-styles "^4.1.0" 267 260 supports-color "^7.1.0" 268 - 269 - ci-info@^2.0.0: 270 - version "2.0.0" 271 - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" 272 - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 273 261 274 262 clean-stack@^2.0.0: 275 263 version "2.2.0" ··· 325 313 resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 326 314 integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 327 315 328 - commander@^6.2.0: 329 - version "6.2.1" 330 - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" 331 - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== 316 + commander@^7.2.0: 317 + version "7.2.0" 318 + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" 319 + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 332 320 333 321 commondir@^1.0.1: 334 322 version "1.0.1" 335 323 resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 336 324 integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 337 - 338 - compare-versions@^3.6.0: 339 - version "3.6.0" 340 - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" 341 - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== 342 325 343 326 concat-map@0.0.1: 344 327 version "0.0.1" ··· 367 350 shebang-command "^1.2.0" 368 351 which "^1.2.9" 369 352 370 - cross-spawn@^7.0.0: 353 + cross-spawn@^7.0.3: 371 354 version "7.0.3" 372 355 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 373 356 integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== ··· 381 364 resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" 382 365 integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== 383 366 384 - debug@^4.2.0: 367 + debug@^4.3.1: 385 368 version "4.3.2" 386 369 resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" 387 370 integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== ··· 410 393 resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 411 394 integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 412 395 413 - end-of-stream@^1.1.0: 414 - version "1.4.4" 415 - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 416 - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 417 - dependencies: 418 - once "^1.4.0" 419 - 420 396 enquirer@^2.3.6: 421 397 version "2.3.6" 422 398 resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" ··· 467 443 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 468 444 integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 469 445 470 - estree-walker@^0.6.1: 471 - version "0.6.1" 472 - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 473 - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 474 - 475 446 estree-walker@^1.0.1: 476 447 version "1.0.1" 477 448 resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" ··· 482 453 resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 483 454 integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 484 455 485 - execa@^4.1.0: 486 - version "4.1.0" 487 - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" 488 - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== 456 + execa@^5.0.0: 457 + version "5.1.1" 458 + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" 459 + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 489 460 dependencies: 490 - cross-spawn "^7.0.0" 491 - get-stream "^5.0.0" 492 - human-signals "^1.1.1" 461 + cross-spawn "^7.0.3" 462 + get-stream "^6.0.0" 463 + human-signals "^2.1.0" 493 464 is-stream "^2.0.0" 494 465 merge-stream "^2.0.0" 495 - npm-run-path "^4.0.0" 496 - onetime "^5.1.0" 497 - signal-exit "^3.0.2" 466 + npm-run-path "^4.0.1" 467 + onetime "^5.1.2" 468 + signal-exit "^3.0.3" 498 469 strip-final-newline "^2.0.0" 499 470 500 471 fill-range@^7.0.1: ··· 521 492 locate-path "^5.0.0" 522 493 path-exists "^4.0.0" 523 494 524 - find-up@^5.0.0: 525 - version "5.0.0" 526 - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 527 - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 528 - dependencies: 529 - locate-path "^6.0.0" 530 - path-exists "^4.0.0" 531 - 532 - find-versions@^4.0.0: 533 - version "4.0.0" 534 - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" 535 - integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== 536 - dependencies: 537 - semver-regex "^3.1.2" 538 - 539 495 fs-extra@8.1.0: 540 496 version "8.1.0" 541 497 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" ··· 574 530 resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" 575 531 integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== 576 532 577 - get-stream@^5.0.0: 578 - version "5.2.0" 579 - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 580 - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 581 - dependencies: 582 - pump "^3.0.0" 533 + get-stream@^6.0.0: 534 + version "6.0.1" 535 + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" 536 + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 583 537 584 538 glob@^7.1.6: 585 539 version "7.1.7" ··· 630 584 resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 631 585 integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 632 586 633 - human-signals@^1.1.1: 634 - version "1.1.1" 635 - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" 636 - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== 587 + human-signals@^2.1.0: 588 + version "2.1.0" 589 + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" 590 + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 637 591 638 - husky@^4.3.0: 639 - version "4.3.8" 640 - resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d" 641 - integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== 642 - dependencies: 643 - chalk "^4.0.0" 644 - ci-info "^2.0.0" 645 - compare-versions "^3.6.0" 646 - cosmiconfig "^7.0.0" 647 - find-versions "^4.0.0" 648 - opencollective-postinstall "^2.0.2" 649 - pkg-dir "^5.0.0" 650 - please-upgrade-node "^3.2.0" 651 - slash "^3.0.0" 652 - which-pm-runs "^1.0.0" 592 + husky@^7.0.1: 593 + version "7.0.1" 594 + resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.1.tgz#579f4180b5da4520263e8713cc832942b48e1f1c" 595 + integrity sha512-gceRaITVZ+cJH9sNHqx5tFwbzlLCVxtVZcusME8JYQ8Edy5mpGDOqD8QBCdMhpyo9a+JXddnujQ4rpY2Ff9SJA== 653 596 654 597 import-fresh@^3.2.1: 655 598 version "3.3.0" ··· 829 772 resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" 830 773 integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= 831 774 832 - lint-staged@^10.4.0: 833 - version "10.5.4" 834 - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665" 835 - integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg== 775 + lint-staged@^11.0.1: 776 + version "11.0.1" 777 + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.0.1.tgz#1b8ae8ed5a52ed87252db95fe008c2618c85f55a" 778 + integrity sha512-RkTA1ulE6jAGFskxpGAwxfVRXjHp7D9gFg/+KMARUWMPiVFP0t28Em2u0gL8sA0w3/ck3TC57F2v2RNeQ5XPnw== 836 779 dependencies: 837 - chalk "^4.1.0" 780 + chalk "^4.1.1" 838 781 cli-truncate "^2.1.0" 839 - commander "^6.2.0" 782 + commander "^7.2.0" 840 783 cosmiconfig "^7.0.0" 841 - debug "^4.2.0" 784 + debug "^4.3.1" 842 785 dedent "^0.7.0" 843 786 enquirer "^2.3.6" 844 - execa "^4.1.0" 845 - listr2 "^3.2.2" 846 - log-symbols "^4.0.0" 847 - micromatch "^4.0.2" 787 + execa "^5.0.0" 788 + listr2 "^3.8.2" 789 + log-symbols "^4.1.0" 790 + micromatch "^4.0.4" 848 791 normalize-path "^3.0.0" 849 792 please-upgrade-node "^3.2.0" 850 793 string-argv "0.3.1" 851 794 stringify-object "^3.3.0" 852 795 853 - listr2@^3.2.2: 796 + listr2@^3.8.2: 854 797 version "3.10.0" 855 798 resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.10.0.tgz#58105a53ed7fa1430d1b738c6055ef7bb006160f" 856 799 integrity sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw== ··· 880 823 dependencies: 881 824 p-locate "^4.1.0" 882 825 883 - locate-path@^6.0.0: 884 - version "6.0.0" 885 - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 886 - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 887 - dependencies: 888 - p-locate "^5.0.0" 889 - 890 - log-symbols@^4.0.0: 826 + log-symbols@^4.1.0: 891 827 version "4.1.0" 892 828 resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" 893 829 integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== ··· 905 841 slice-ansi "^4.0.0" 906 842 wrap-ansi "^6.2.0" 907 843 908 - loose-envify@^1.1.0, loose-envify@^1.4.0: 844 + loose-envify@^1.1.0: 909 845 version "1.4.0" 910 846 resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 911 847 integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== ··· 936 872 resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 937 873 integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 938 874 939 - micromatch@^4.0.2: 875 + micromatch@^4.0.4: 940 876 version "4.0.4" 941 877 resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 942 878 integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== ··· 1001 937 shell-quote "^1.6.1" 1002 938 string.prototype.padend "^3.0.0" 1003 939 1004 - npm-run-path@^4.0.0: 940 + npm-run-path@^4.0.1: 1005 941 version "4.0.1" 1006 942 resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 1007 943 integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== ··· 1033 969 has-symbols "^1.0.1" 1034 970 object-keys "^1.1.1" 1035 971 1036 - once@^1.3.0, once@^1.3.1, once@^1.4.0: 972 + once@^1.3.0: 1037 973 version "1.4.0" 1038 974 resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1039 975 integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1040 976 dependencies: 1041 977 wrappy "1" 1042 978 1043 - onetime@^5.1.0: 979 + onetime@^5.1.0, onetime@^5.1.2: 1044 980 version "5.1.2" 1045 981 resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 1046 982 integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1047 983 dependencies: 1048 984 mimic-fn "^2.1.0" 1049 985 1050 - opencollective-postinstall@^2.0.2: 1051 - version "2.0.3" 1052 - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" 1053 - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== 1054 - 1055 986 p-limit@^2.2.0: 1056 987 version "2.3.0" 1057 988 resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" ··· 1059 990 dependencies: 1060 991 p-try "^2.0.0" 1061 992 1062 - p-limit@^3.0.2: 1063 - version "3.1.0" 1064 - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1065 - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1066 - dependencies: 1067 - yocto-queue "^0.1.0" 1068 - 1069 993 p-locate@^4.1.0: 1070 994 version "4.1.0" 1071 995 resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1072 996 integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1073 997 dependencies: 1074 998 p-limit "^2.2.0" 1075 - 1076 - p-locate@^5.0.0: 1077 - version "5.0.0" 1078 - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 1079 - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1080 - dependencies: 1081 - p-limit "^3.0.2" 1082 999 1083 1000 p-map@^4.0.0: 1084 1001 version "4.0.0" ··· 1176 1093 dependencies: 1177 1094 find-up "^4.0.0" 1178 1095 1179 - pkg-dir@^5.0.0: 1180 - version "5.0.0" 1181 - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" 1182 - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== 1183 - dependencies: 1184 - find-up "^5.0.0" 1185 - 1186 1096 please-upgrade-node@^3.2.0: 1187 1097 version "3.2.0" 1188 1098 resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" ··· 1195 1105 resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" 1196 1106 integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== 1197 1107 1198 - prop-types@^15.6.2: 1199 - version "15.7.2" 1200 - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 1201 - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 1202 - dependencies: 1203 - loose-envify "^1.4.0" 1204 - object-assign "^4.1.1" 1205 - react-is "^16.8.1" 1206 - 1207 - pump@^3.0.0: 1208 - version "3.0.0" 1209 - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1210 - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1211 - dependencies: 1212 - end-of-stream "^1.1.0" 1213 - once "^1.3.1" 1214 - 1215 1108 randombytes@^2.1.0: 1216 1109 version "2.1.0" 1217 1110 resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" ··· 1219 1112 dependencies: 1220 1113 safe-buffer "^5.1.0" 1221 1114 1222 - react-is@^16.8.1: 1223 - version "16.13.1" 1224 - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 1225 - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1226 - 1227 - react@^16.13.1: 1228 - version "16.14.0" 1229 - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" 1230 - integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== 1115 + react@^17.0.2: 1116 + version "17.0.2" 1117 + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" 1118 + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== 1231 1119 dependencies: 1232 1120 loose-envify "^1.1.0" 1233 1121 object-assign "^4.1.1" 1234 - prop-types "^15.6.2" 1235 1122 1236 1123 read-pkg@^3.0.0: 1237 1124 version "3.0.0" ··· 1283 1170 resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1284 1171 integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1285 1172 1286 - resolve@1.17.0: 1287 - version "1.17.0" 1288 - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" 1289 - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== 1290 - dependencies: 1291 - path-parse "^1.0.6" 1292 - 1293 - resolve@^1.10.0, resolve@^1.17.0: 1173 + resolve@1.20.0, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.19.0: 1294 1174 version "1.20.0" 1295 1175 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 1296 1176 integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== ··· 1306 1186 onetime "^5.1.0" 1307 1187 signal-exit "^3.0.2" 1308 1188 1309 - rollup-plugin-babel@^4.4.0: 1310 - version "4.4.0" 1311 - resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb" 1312 - integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw== 1313 - dependencies: 1314 - "@babel/helper-module-imports" "^7.0.0" 1315 - rollup-pluginutils "^2.8.1" 1316 - 1317 1189 rollup-plugin-terser@^7.0.2: 1318 1190 version "7.0.2" 1319 1191 resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" ··· 1324 1196 serialize-javascript "^4.0.0" 1325 1197 terser "^5.0.0" 1326 1198 1327 - rollup-plugin-typescript2@^0.27.2: 1328 - version "0.27.3" 1329 - resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.3.tgz#cd9455ac026d325b20c5728d2cc54a08a771b68b" 1330 - integrity sha512-gmYPIFmALj9D3Ga1ZbTZAKTXq1JKlTQBtj299DXhqYz9cL3g/AQfUvbb2UhH+Nf++cCq941W2Mv7UcrcgLzJJg== 1199 + rollup-plugin-typescript2@^0.30.0: 1200 + version "0.30.0" 1201 + resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz#1cc99ac2309bf4b9d0a3ebdbc2002aecd56083d3" 1202 + integrity sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ== 1331 1203 dependencies: 1332 - "@rollup/pluginutils" "^3.1.0" 1204 + "@rollup/pluginutils" "^4.1.0" 1333 1205 find-cache-dir "^3.3.1" 1334 1206 fs-extra "8.1.0" 1335 - resolve "1.17.0" 1336 - tslib "2.0.1" 1337 - 1338 - rollup-pluginutils@^2.8.1: 1339 - version "2.8.2" 1340 - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" 1341 - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 1342 - dependencies: 1343 - estree-walker "^0.6.1" 1207 + resolve "1.20.0" 1208 + tslib "2.1.0" 1344 1209 1345 1210 rollup@^2.27.1: 1346 1211 version "2.53.2" ··· 1365 1230 version "1.0.0" 1366 1231 resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" 1367 1232 integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= 1368 - 1369 - semver-regex@^3.1.2: 1370 - version "3.1.2" 1371 - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" 1372 - integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== 1373 1233 1374 1234 "semver@2 || 3 || 4 || 5", semver@^5.5.0: 1375 1235 version "5.7.1" ··· 1417 1277 resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" 1418 1278 integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== 1419 1279 1420 - signal-exit@^3.0.2: 1280 + signal-exit@^3.0.2, signal-exit@^3.0.3: 1421 1281 version "3.0.3" 1422 1282 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1423 1283 integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1424 - 1425 - slash@^3.0.0: 1426 - version "3.0.0" 1427 - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1428 - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1429 1284 1430 1285 slice-ansi@^3.0.0: 1431 1286 version "3.0.0" ··· 1587 1442 resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1588 1443 integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 1589 1444 1590 - to-fast-properties@^2.0.0: 1591 - version "2.0.0" 1592 - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1593 - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 1594 - 1595 1445 to-regex-range@^5.0.1: 1596 1446 version "5.0.1" 1597 1447 resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" ··· 1599 1449 dependencies: 1600 1450 is-number "^7.0.0" 1601 1451 1602 - tslib@2.0.1: 1603 - version "2.0.1" 1604 - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e" 1605 - integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ== 1452 + tslib@2.1.0: 1453 + version "2.1.0" 1454 + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" 1455 + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== 1606 1456 1607 1457 tslib@^1.9.0: 1608 1458 version "1.14.1" ··· 1676 1526 is-string "^1.0.5" 1677 1527 is-symbol "^1.0.3" 1678 1528 1679 - which-pm-runs@^1.0.0: 1680 - version "1.0.0" 1681 - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" 1682 - integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= 1683 - 1684 1529 which@^1.2.9: 1685 1530 version "1.3.1" 1686 1531 resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" ··· 1722 1567 version "1.10.2" 1723 1568 resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 1724 1569 integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 1725 - 1726 - yocto-queue@^0.1.0: 1727 - version "0.1.0" 1728 - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 1729 - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==