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

WIP: Add useFocusLoop

+7 -8
package.json
···
},
"devDependencies": {
"@rollup/plugin-buble": "^0.21.3",
-
"@rollup/plugin-commonjs": "^15.0.0",
-
"@rollup/plugin-node-resolve": "^9.0.0",
-
"@types/react": "^16.9.49",
-
"husky": "^4.3.0",
-
"lint-staged": "^10.4.0",
+
"@rollup/plugin-commonjs": "^19.0.1",
+
"@rollup/plugin-node-resolve": "^13.0.2",
+
"@types/react": "^17.0.14",
+
"husky": "^7.0.1",
+
"lint-staged": "^11.0.1",
"npm-run-all": "^4.1.5",
"prettier": "^2.1.2",
-
"react": "^16.13.1",
+
"react": "^17.0.2",
"rollup": "^2.27.1",
-
"rollup-plugin-babel": "^4.4.0",
"rollup-plugin-terser": "^7.0.2",
-
"rollup-plugin-typescript2": "^0.27.2",
+
"rollup-plugin-typescript2": "^0.30.0",
"typescript": "^4.0.3"
}
}
+119
rollup.config.js
···
+
import commonjs from '@rollup/plugin-commonjs';
+
import resolve from '@rollup/plugin-node-resolve';
+
import typescript from 'rollup-plugin-typescript2';
+
import buble from '@rollup/plugin-buble';
+
import { terser } from 'rollup-plugin-terser';
+
+
const pkg = require('./package.json');
+
+
export const externalModules = ['dns', 'fs', 'path', 'url'];
+
if (pkg.peerDependencies)
+
externalModules.push(...Object.keys(pkg.peerDependencies));
+
if (pkg.dependencies) externalModules.push(...Object.keys(pkg.dependencies));
+
+
const externalPredicate = new RegExp(`^(${externalModules.join('|')})($|/)`);
+
+
const config = {
+
input: {
+
[pkg.name]: './src/index.ts',
+
},
+
onwarn() {},
+
external(id) {
+
return externalPredicate.test(id);
+
},
+
treeshake: {
+
unknownGlobalSideEffects: false,
+
tryCatchDeoptimization: false,
+
moduleSideEffects: false,
+
},
+
};
+
+
const plugins = [
+
resolve({
+
extensions: ['.js', '.jsx', '.ts', '.tsx'],
+
mainFields: ['module', 'jsnext', 'main'],
+
preferBuiltins: false,
+
browser: true,
+
}),
+
+
commonjs({
+
ignoreGlobal: true,
+
include: /\/node_modules\//,
+
namedExports: {},
+
}),
+
+
typescript({
+
useTsconfigDeclarationDir: true,
+
tsconfigOverride: {
+
compilerOptions: {
+
sourceMap: true,
+
noEmit: false,
+
declaration: true,
+
declarationDir: './dist/types',
+
target: 'esnext',
+
},
+
},
+
}),
+
+
buble({
+
transforms: {
+
unicodeRegExp: false,
+
dangerousForOf: true,
+
dangerousTaggedTemplateString: true,
+
asyncAwait: false,
+
},
+
objectAssign: 'Object.assign',
+
}),
+
+
terser({
+
warnings: true,
+
ecma: 5,
+
keep_fnames: true,
+
ie8: false,
+
compress: {
+
pure_getters: true,
+
toplevel: true,
+
booleans_as_integers: false,
+
keep_fnames: true,
+
keep_fargs: true,
+
if_return: false,
+
ie8: false,
+
sequences: false,
+
loops: false,
+
conditionals: false,
+
join_vars: false
+
},
+
mangle: {
+
module: true,
+
keep_fnames: true,
+
},
+
output: {
+
beautify: true,
+
braces: true,
+
indent_level: 2
+
}
+
}),
+
];
+
+
const output = (format = 'cjs', extension = '.js') => ({
+
chunkFileNames: '[hash]' + extension,
+
entryFileNames: '[name]' + extension,
+
dir: './dist',
+
exports: 'named',
+
externalLiveBindings: false,
+
sourcemap: true,
+
esModule: false,
+
indent: false,
+
freeze: false,
+
strict: false,
+
format,
+
});
+
+
export default [
+
{
+
...config,
+
shimMissingExports: true,
+
plugins,
+
output: [output('esm', '.es.js'), output('cjs', '.js')],
+
},
+
];
+1
src/index.ts
···
+
export { useFocusLoop } from './useFocusLoop';
+3
src/types.ts
···
+
export interface Ref<T extends HTMLElement> {
+
readonly current: T | null;
+
}
+53
src/useFocusLoop.ts
···
+
import { useLayoutEffect } from 'react';
+
import { getFirstFocusTarget, getFocusTargets } from './utils/focus';
+
import { contains } from './utils/element';
+
import { Ref } from './types';
+
+
export function useFocusLoop<T extends HTMLElement>(ref: Ref<T>) {
+
useLayoutEffect(() => {
+
if (!ref.current) return;
+
+
let active = document.activeElement as HTMLElement | null;
+
if (!active || !ref.current.contains(active)) {
+
active = getFirstFocusTarget(ref.current);
+
if (active) active.focus();
+
}
+
+
function onBlur(event: FocusEvent) {
+
const parent = ref.current;
+
if (!parent || event.defaultPrevented) return;
+
+
if (contains(parent, event.target) && !contains(parent, event.relatedTarget)) {
+
const target = getFirstFocusTarget(parent);
+
if (target) target.focus();
+
}
+
}
+
+
function onKeyDown(event: KeyboardEvent) {
+
const parent = ref.current;
+
if (!parent || event.defaultPrevented) return;
+
+
if (event.code === 'Tab') {
+
const activeElement = document.activeElement as HTMLElement;
+
const targets = getFocusTargets(parent);
+
const index = targets.indexOf(activeElement);
+
if (event.shiftKey && index === 0) {
+
event.preventDefault();
+
targets[targets.length - 1].focus();
+
} else if (!event.shiftKey && index === targets.length - 1) {
+
event.preventDefault();
+
targets[0].focus();
+
}
+
+
}
+
}
+
+
document.body.addEventListener('focusout', onBlur);
+
document.addEventListener('keydown', onKeyDown);
+
+
return () => {
+
document.body.removeEventListener('focusout', onBlur);
+
document.removeEventListener('keydown', onKeyDown);
+
};
+
}, [ref]);
+
}
+20
src/utils/element.ts
···
+
/** Returns a given tab index for an element, defaulting to zero. */
+
export const getTabIndex = (node: Element): number => {
+
const index = parseInt(node.getAttribute('tabindex')!, 10);
+
return (
+
index === index &&
+
(node as HTMLElement).contentEditable !== 'true' &&
+
index
+
) || 0;
+
};
+
+
/** Returns whether an element is visible in the context of focusability. */
+
export const isVisible = (node: Element): boolean => !!(
+
(node as HTMLElement).offsetWidth &&
+
(node as HTMLElement).offsetHeight &&
+
node.getClientRects().length &&
+
getComputedStyle(node).visibility !== 'hidden'
+
);
+
+
export const contains = (owner: Element | null, node: Element | EventTarget | null) =>
+
!!(node && owner && (owner === node || owner.contains(node as Element)));
+3 -19
src/utils/focus.ts
···
+
import { getTabIndex, isVisible } from './element';
+
const excludeSelector = ':not([tabindex^="-"]):not([aria-modal]):not([role="dialog"])';
const focusableSelectors = [
···
'[tabindex]' + excludeSelector,
].join(',');
-
/** Returns a given tab index for an element, defaulting to zero. */
-
const getTabIndex = (node: Element): number => {
-
const index = parseInt(node.getAttribute('tabindex')!, 10);
-
return (
-
index === index &&
-
(node as HTMLElement).contentEditable !== 'true' &&
-
index
-
) || 0;
-
};
-
/** Generic sorting function for tupel containing elements with indices and tab indices. */
const sortByTabindex = <T extends HTMLElement>(a: [number, number, T], b: [number, number, T]) => {
return a[1] === a[1]
? a[0] - b[0]
: a[1] - a[1];
};
-
-
/** Returns whether an element is visible in the context of focusability. */
-
const isVisible = (node: Element): boolean => !!(
-
(node as HTMLElement).offsetWidth &&
-
(node as HTMLElement).offsetHeight &&
-
node.getClientRects().length &&
-
getComputedStyle(node).visibility !== 'hidden'
-
);
/** Returns whether this node may contain focusable elements. */
export const hasFocusTargets = (node: Element): boolean =>
···
};
/** Returns the first focus target that should be focused automatically. */
-
export const getFirstFocusTargets = (node: HTMLElement): HTMLElement | null => {
+
export const getFirstFocusTarget = (node: HTMLElement): HTMLElement | null => {
const targets = getFocusTargets(node);
return targets.find(x => x.matches('[autofocus]')) || targets[0] || null;
};
+85 -245
yarn.lock
···
dependencies:
"@babel/highlight" "^7.14.5"
-
"@babel/helper-module-imports@^7.0.0":
-
version "7.14.5"
-
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3"
-
integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==
-
dependencies:
-
"@babel/types" "^7.14.5"
-
"@babel/helper-validator-identifier@^7.14.5":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8"
···
chalk "^2.0.0"
js-tokens "^4.0.0"
-
"@babel/types@^7.14.5":
-
version "7.14.5"
-
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff"
-
integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==
-
dependencies:
-
"@babel/helper-validator-identifier" "^7.14.5"
-
to-fast-properties "^2.0.0"
-
"@rollup/plugin-buble@^0.21.3":
version "0.21.3"
resolved "https://registry.yarnpkg.com/@rollup/plugin-buble/-/plugin-buble-0.21.3.tgz#1649a915b1d051a4f430d40e7734a7f67a69b33e"
···
"@types/buble" "^0.19.2"
buble "^0.20.0"
-
"@rollup/plugin-commonjs@^15.0.0":
-
version "15.1.0"
-
resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz#1e7d076c4f1b2abf7e65248570e555defc37c238"
-
integrity sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==
+
"@rollup/plugin-commonjs@^19.0.1":
+
version "19.0.1"
+
resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.1.tgz#94a2c103d675523d3ab1c60bfbec567b3eb70410"
+
integrity sha512-bRrPTIAsWw2LmEspEMvV9f+7N7CEQgZCj2Zi1F0e0P3+/tbjQaSNNVVRSRWVhuDagp8yjK5kbIut8KTPsseRhg==
dependencies:
"@rollup/pluginutils" "^3.1.0"
commondir "^1.0.1"
···
magic-string "^0.25.7"
resolve "^1.17.0"
-
"@rollup/plugin-node-resolve@^9.0.0":
-
version "9.0.0"
-
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz#39bd0034ce9126b39c1699695f440b4b7d2b62e6"
-
integrity sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==
+
"@rollup/plugin-node-resolve@^13.0.2":
+
version "13.0.2"
+
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.2.tgz#bfe58e9bfc7284ee0fabc6da7fabcb268f04e0a4"
+
integrity sha512-hv+eAMcA2hQ7qvPVcXbtIyc0dtue4jMyA2sCW4IMkrmh+SeDDEHg1MXTv65VPpKdtjvWzN3+4mHAEl4rT+zgzQ==
dependencies:
"@rollup/pluginutils" "^3.1.0"
"@types/resolve" "1.17.1"
builtin-modules "^3.1.0"
deepmerge "^4.2.2"
is-module "^1.0.0"
-
resolve "^1.17.0"
+
resolve "^1.19.0"
"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0":
version "3.1.0"
···
dependencies:
"@types/estree" "0.0.39"
estree-walker "^1.0.1"
+
picomatch "^2.2.2"
+
+
"@rollup/pluginutils@^4.1.0":
+
version "4.1.1"
+
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.1.tgz#1d4da86dd4eded15656a57d933fda2b9a08d47ec"
+
integrity sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==
+
dependencies:
+
estree-walker "^2.0.1"
picomatch "^2.2.2"
"@types/buble@^0.19.2":
···
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
-
"@types/react@^16.9.49":
-
version "16.14.11"
-
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.11.tgz#992a0cd4b66b9f27315042b5d96e976717368f04"
-
integrity sha512-Don0MtsZZ3fjwTJ2BsoqkyOy7e176KplEAKOpr/4XDdzinlyJBn9yfsKn5mcSgn4kh1B22+3tBnzBC1z63ybtQ==
+
"@types/react@^17.0.14":
+
version "17.0.14"
+
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.14.tgz#f0629761ca02945c4e8fea99b8177f4c5c61fb0f"
+
integrity sha512-0WwKHUbWuQWOce61UexYuWTGuGY/8JvtUe/dtQ6lR4sZ3UiylHotJeWpf3ArP9+DSGUoLY3wbU59VyMrJps5VQ==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
···
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-
chalk@^4.0.0, chalk@^4.1.0:
+
chalk@^4.1.0, chalk@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-
-
ci-info@^2.0.0:
-
version "2.0.0"
-
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
-
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
clean-stack@^2.0.0:
version "2.2.0"
···
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-
commander@^6.2.0:
-
version "6.2.1"
-
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
-
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
+
commander@^7.2.0:
+
version "7.2.0"
+
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
+
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
-
-
compare-versions@^3.6.0:
-
version "3.6.0"
-
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
-
integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
concat-map@0.0.1:
version "0.0.1"
···
shebang-command "^1.2.0"
which "^1.2.9"
-
cross-spawn@^7.0.0:
+
cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
···
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340"
integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==
-
debug@^4.2.0:
+
debug@^4.3.1:
version "4.3.2"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
···
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
end-of-stream@^1.1.0:
-
version "1.4.4"
-
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
-
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
-
dependencies:
-
once "^1.4.0"
-
enquirer@^2.3.6:
version "2.3.6"
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
···
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-
estree-walker@^0.6.1:
-
version "0.6.1"
-
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
-
integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==
-
estree-walker@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
···
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
-
execa@^4.1.0:
-
version "4.1.0"
-
resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
-
integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
+
execa@^5.0.0:
+
version "5.1.1"
+
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
dependencies:
-
cross-spawn "^7.0.0"
-
get-stream "^5.0.0"
-
human-signals "^1.1.1"
+
cross-spawn "^7.0.3"
+
get-stream "^6.0.0"
+
human-signals "^2.1.0"
is-stream "^2.0.0"
merge-stream "^2.0.0"
-
npm-run-path "^4.0.0"
-
onetime "^5.1.0"
-
signal-exit "^3.0.2"
+
npm-run-path "^4.0.1"
+
onetime "^5.1.2"
+
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
fill-range@^7.0.1:
···
locate-path "^5.0.0"
path-exists "^4.0.0"
-
find-up@^5.0.0:
-
version "5.0.0"
-
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
-
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
-
dependencies:
-
locate-path "^6.0.0"
-
path-exists "^4.0.0"
-
-
find-versions@^4.0.0:
-
version "4.0.0"
-
resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965"
-
integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==
-
dependencies:
-
semver-regex "^3.1.2"
-
fs-extra@8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
···
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
-
get-stream@^5.0.0:
-
version "5.2.0"
-
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
-
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
-
dependencies:
-
pump "^3.0.0"
+
get-stream@^6.0.0:
+
version "6.0.1"
+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
glob@^7.1.6:
version "7.1.7"
···
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
-
human-signals@^1.1.1:
-
version "1.1.1"
-
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
-
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
human-signals@^2.1.0:
+
version "2.1.0"
+
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
-
husky@^4.3.0:
-
version "4.3.8"
-
resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d"
-
integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==
-
dependencies:
-
chalk "^4.0.0"
-
ci-info "^2.0.0"
-
compare-versions "^3.6.0"
-
cosmiconfig "^7.0.0"
-
find-versions "^4.0.0"
-
opencollective-postinstall "^2.0.2"
-
pkg-dir "^5.0.0"
-
please-upgrade-node "^3.2.0"
-
slash "^3.0.0"
-
which-pm-runs "^1.0.0"
+
husky@^7.0.1:
+
version "7.0.1"
+
resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.1.tgz#579f4180b5da4520263e8713cc832942b48e1f1c"
+
integrity sha512-gceRaITVZ+cJH9sNHqx5tFwbzlLCVxtVZcusME8JYQ8Edy5mpGDOqD8QBCdMhpyo9a+JXddnujQ4rpY2Ff9SJA==
import-fresh@^3.2.1:
version "3.3.0"
···
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
-
lint-staged@^10.4.0:
-
version "10.5.4"
-
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665"
-
integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==
+
lint-staged@^11.0.1:
+
version "11.0.1"
+
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.0.1.tgz#1b8ae8ed5a52ed87252db95fe008c2618c85f55a"
+
integrity sha512-RkTA1ulE6jAGFskxpGAwxfVRXjHp7D9gFg/+KMARUWMPiVFP0t28Em2u0gL8sA0w3/ck3TC57F2v2RNeQ5XPnw==
dependencies:
-
chalk "^4.1.0"
+
chalk "^4.1.1"
cli-truncate "^2.1.0"
-
commander "^6.2.0"
+
commander "^7.2.0"
cosmiconfig "^7.0.0"
-
debug "^4.2.0"
+
debug "^4.3.1"
dedent "^0.7.0"
enquirer "^2.3.6"
-
execa "^4.1.0"
-
listr2 "^3.2.2"
-
log-symbols "^4.0.0"
-
micromatch "^4.0.2"
+
execa "^5.0.0"
+
listr2 "^3.8.2"
+
log-symbols "^4.1.0"
+
micromatch "^4.0.4"
normalize-path "^3.0.0"
please-upgrade-node "^3.2.0"
string-argv "0.3.1"
stringify-object "^3.3.0"
-
listr2@^3.2.2:
+
listr2@^3.8.2:
version "3.10.0"
resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.10.0.tgz#58105a53ed7fa1430d1b738c6055ef7bb006160f"
integrity sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw==
···
dependencies:
p-locate "^4.1.0"
-
locate-path@^6.0.0:
-
version "6.0.0"
-
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
-
integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
-
dependencies:
-
p-locate "^5.0.0"
-
-
log-symbols@^4.0.0:
+
log-symbols@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
···
slice-ansi "^4.0.0"
wrap-ansi "^6.2.0"
-
loose-envify@^1.1.0, loose-envify@^1.4.0:
+
loose-envify@^1.1.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
···
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-
micromatch@^4.0.2:
+
micromatch@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
···
shell-quote "^1.6.1"
string.prototype.padend "^3.0.0"
-
npm-run-path@^4.0.0:
+
npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
···
has-symbols "^1.0.1"
object-keys "^1.1.1"
-
once@^1.3.0, once@^1.3.1, once@^1.4.0:
+
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
-
onetime@^5.1.0:
+
onetime@^5.1.0, onetime@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
dependencies:
mimic-fn "^2.1.0"
-
opencollective-postinstall@^2.0.2:
-
version "2.0.3"
-
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
-
integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
-
p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
···
dependencies:
p-try "^2.0.0"
-
p-limit@^3.0.2:
-
version "3.1.0"
-
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
-
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
-
dependencies:
-
yocto-queue "^0.1.0"
-
p-locate@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
dependencies:
p-limit "^2.2.0"
-
-
p-locate@^5.0.0:
-
version "5.0.0"
-
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
-
integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
-
dependencies:
-
p-limit "^3.0.2"
p-map@^4.0.0:
version "4.0.0"
···
dependencies:
find-up "^4.0.0"
-
pkg-dir@^5.0.0:
-
version "5.0.0"
-
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"
-
integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==
-
dependencies:
-
find-up "^5.0.0"
-
please-upgrade-node@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
···
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d"
integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==
-
prop-types@^15.6.2:
-
version "15.7.2"
-
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
-
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
-
dependencies:
-
loose-envify "^1.4.0"
-
object-assign "^4.1.1"
-
react-is "^16.8.1"
-
-
pump@^3.0.0:
-
version "3.0.0"
-
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
-
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
-
dependencies:
-
end-of-stream "^1.1.0"
-
once "^1.3.1"
-
randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
···
dependencies:
safe-buffer "^5.1.0"
-
react-is@^16.8.1:
-
version "16.13.1"
-
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
-
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
-
-
react@^16.13.1:
-
version "16.14.0"
-
resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
-
integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
+
react@^17.0.2:
+
version "17.0.2"
+
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
+
integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
-
prop-types "^15.6.2"
read-pkg@^3.0.0:
version "3.0.0"
···
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-
resolve@1.17.0:
-
version "1.17.0"
-
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
-
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
-
dependencies:
-
path-parse "^1.0.6"
-
-
resolve@^1.10.0, resolve@^1.17.0:
+
resolve@1.20.0, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.19.0:
version "1.20.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
···
onetime "^5.1.0"
signal-exit "^3.0.2"
-
rollup-plugin-babel@^4.4.0:
-
version "4.4.0"
-
resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb"
-
integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==
-
dependencies:
-
"@babel/helper-module-imports" "^7.0.0"
-
rollup-pluginutils "^2.8.1"
-
rollup-plugin-terser@^7.0.2:
version "7.0.2"
resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
···
serialize-javascript "^4.0.0"
terser "^5.0.0"
-
rollup-plugin-typescript2@^0.27.2:
-
version "0.27.3"
-
resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.3.tgz#cd9455ac026d325b20c5728d2cc54a08a771b68b"
-
integrity sha512-gmYPIFmALj9D3Ga1ZbTZAKTXq1JKlTQBtj299DXhqYz9cL3g/AQfUvbb2UhH+Nf++cCq941W2Mv7UcrcgLzJJg==
+
rollup-plugin-typescript2@^0.30.0:
+
version "0.30.0"
+
resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz#1cc99ac2309bf4b9d0a3ebdbc2002aecd56083d3"
+
integrity sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==
dependencies:
-
"@rollup/pluginutils" "^3.1.0"
+
"@rollup/pluginutils" "^4.1.0"
find-cache-dir "^3.3.1"
fs-extra "8.1.0"
-
resolve "1.17.0"
-
tslib "2.0.1"
-
-
rollup-pluginutils@^2.8.1:
-
version "2.8.2"
-
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
-
integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
-
dependencies:
-
estree-walker "^0.6.1"
+
resolve "1.20.0"
+
tslib "2.1.0"
rollup@^2.27.1:
version "2.53.2"
···
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
-
-
semver-regex@^3.1.2:
-
version "3.1.2"
-
resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807"
-
integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==
"semver@2 || 3 || 4 || 5", semver@^5.5.0:
version "5.7.1"
···
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
-
signal-exit@^3.0.2:
+
signal-exit@^3.0.2, signal-exit@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
-
-
slash@^3.0.0:
-
version "3.0.0"
-
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
-
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
slice-ansi@^3.0.0:
version "3.0.0"
···
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-
to-fast-properties@^2.0.0:
-
version "2.0.0"
-
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
-
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
-
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
···
dependencies:
is-number "^7.0.0"
-
tslib@2.0.1:
-
version "2.0.1"
-
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e"
-
integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==
+
tslib@2.1.0:
+
version "2.1.0"
+
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
+
integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
tslib@^1.9.0:
version "1.14.1"
···
is-string "^1.0.5"
is-symbol "^1.0.3"
-
which-pm-runs@^1.0.0:
-
version "1.0.0"
-
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
-
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
-
which@^1.2.9:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
···
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
-
-
yocto-queue@^0.1.0:
-
version "0.1.0"
-
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
-
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==