├── .gitignore ├── .gitpod.yml ├── .npmignore ├── .prettierrc ├── README.md ├── assets └── JotaiTaskDevTools.gif ├── dist ├── JotaiDevtools.d.ts ├── index.d.ts ├── index.js └── index.js.map ├── example ├── .gitignore ├── package.json ├── public │ └── index.html ├── src │ ├── App.tsx │ ├── index.tsx │ └── react-app-env.d.ts ├── tsconfig.json └── yarn.lock ├── install-detect ├── .gitignore ├── .npmignore ├── README.md └── is-git.txt ├── package.json ├── rollup.config.js ├── src ├── JotaiDevtools.tsx └── index.tsx ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Directory for instrumented libs generated by jscoverage/JSCover 10 | lib-cov 11 | 12 | # Coverage directory used by tools like istanbul 13 | coverage 14 | *.lcov 15 | 16 | # nyc test coverage 17 | .nyc_output 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (https://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directories 26 | node_modules/ 27 | jspm_packages/ 28 | 29 | # TypeScript v1 declaration files 30 | typings/ 31 | 32 | # TypeScript cache 33 | *.tsbuildinfo 34 | 35 | # Optional npm cache directory 36 | .npm 37 | 38 | # Optional eslint cache 39 | .eslintcache 40 | 41 | # Output of 'npm pack' 42 | *.tgz 43 | 44 | # Yarn Integrity file 45 | .yarn-integrity 46 | 47 | # generate output 48 | # dist 49 | -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | tasks: 2 | - init: yarn install && yarn run build 3 | command: yarn run start 4 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | dist 2 | .babelrc 3 | .storybook 4 | .gitignore 5 | .prettierrc 6 | rollup.config.js 7 | tsconfig.json 8 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jotai Devtools 2 | 3 | ![Sample GIF](https://github.com/c0d3t3k/jotai-devtools/raw/master/assets/JotaiTaskDevTools.gif) 4 | 5 | ## About 6 | 7 | [Redux Devtools](https://github.com/reduxjs/redux-devtools) integration for [Jotai](https://github.com/pmndrs/jotai). This library only supports the Redux Devtools browser extensions ([Chrome](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd), [Edge](https://microsoftedge.microsoft.com/addons/detail/redux-devtools/nnkgneoiohoecpdiaponcejilbhhikei) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/reduxdevtools/)). It does not currently support the standalone app or the embedded component. 8 | 9 | ## Installation 10 | 11 | NPM Package is coming soon. In the meantime, use the following to install: 12 | 13 | ```shell 14 | yarn add https://github.com/c0d3t3k/jotai-devtools.git 15 | ``` 16 | 17 | ## How to use 18 | 19 | The Jotai Devtools library creates devtools integration instances on an [atom](https://github.com/pmndrs/jotai/blob/master/docs/core.md#atom) by atom basis. To create a devtools instance, two parameters are required: 20 | 21 | ```tsx 22 | { 23 | // The display name for the atom 24 | name: "Count Atom (Hook)", 25 | 26 | // The atom to be mapped to a devtools instance 27 | atom: countAtom, 28 | } 29 | ``` 30 | 31 | Also see the [Dev.to Article](https://dev.to/c0d3t3k/jotai-not-exactly-redux-dev-tools-57i6), [Sample Code](https://github.com/c0d3t3k/recoil-todo-list/tree/jotai-devtools) and [CodeSandBox](https://codesandbox.io/s/happy-shockley-35roh) 32 | 33 | The library provides two methods to enable a devtools instance: 34 | 35 | ### Hook Method 36 | 37 | ```tsx 38 | import React from 'react' 39 | 40 | import { useAtom, atom } from 'jotai' 41 | import { useJotaiDevtools, JotaiDevtools } from '@c0d3t3k/jotai-devtools' 42 | 43 | // The atom to be monitored by the devtools. 44 | const countAtom = atom(0) 45 | 46 | const App: React.FC = () => { 47 | 48 | const [count, setCount] = useAtom(countAtom) 49 | 50 | // This hook maps the "Count Atom (Hook)" devtools instance to `countAtom`. 51 | useJotaiDevtools({ 52 | name: "Count Atom (Hook)", 53 | atom: countAtom 54 | }); 55 | 56 | // Some functions to modify `countAtom` 57 | const increment = () => { 58 | setCount(count + 1); 59 | } 60 | 61 | const decrement = () => { 62 | setCount(count - 1); 63 | } 64 | 65 | // The React component tree. 66 | return ( 67 | <> 68 |
69 |

Count is {count}

70 | 71 | 72 |
73 | 74 | ) 75 | } 76 | ``` 77 | 78 | ### Component Method 79 | 80 | ```tsx 81 | import React from 'react' 82 | 83 | import { useAtom, atom } from 'jotai' 84 | import { useJotaiDevtools, JotaiDevtools } from '@c0d3t3k/jotai-devtools' 85 | 86 | // The atom to be monitored by the devtools. 87 | const countAtom = atom(0) 88 | 89 | const App: React.FC = () => { 90 | 91 | const [count, setCount] = useAtom(countAtom) 92 | 93 | // Some functions to modify `countAtom` 94 | const increment = () => { 95 | setCount(count + 1); 96 | } 97 | 98 | const decrement = () => { 99 | setCount(count - 1); 100 | } 101 | 102 | // The React component tree. 103 | return ( 104 | <> 105 | {/* This component maps the "Count Atom (Component)" devtools instance to `countAtom`. */} 106 | 107 | 108 |
109 |

Count is {count}

110 | 111 | 112 |
113 | 114 | ) 115 | } 116 | ``` 117 | 118 | ## Development 119 | 120 | To compile the code once, run 121 | 122 | - `npm run build`. 123 | 124 | To compile the code once and refresh on file change, run 125 | 126 | - `npm run start`. 127 | 128 | To publish the package to npm, make sure you're logged in the correct account by running 129 | 130 | - `npm login`. 131 | 132 | Compile the package by running 133 | 134 | - `npm run build` 135 | 136 | Update the package version accordingly by using 137 | 138 | - [`npm version [patch | minor | major]`](https://docs.npmjs.com/about-semantic-versioning) 139 | 140 | Then publish the package by running 141 | 142 | - `npm publish` 143 | 144 | 145 | -------------------------------------------------------------------------------- /assets/JotaiTaskDevTools.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c0d3t3k/jotai-devtools/99d8b4b78c2d4570f3f117a6344c644bbdfe64bf/assets/JotaiTaskDevTools.gif -------------------------------------------------------------------------------- /dist/JotaiDevtools.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import { WritableAtom } from 'jotai'; 3 | interface Config { 4 | instanceID?: number; 5 | name?: string; 6 | serialize?: boolean; 7 | actionCreators?: any; 8 | latency?: number; 9 | predicate?: any; 10 | autoPause?: boolean; 11 | } 12 | interface JotaiDevtoolsProps { 13 | atom: WritableAtom; 14 | name?: string; 15 | config?: Config; 16 | } 17 | export declare const useJotaiDevtools: ({ atom, name, config, ...props }: JotaiDevtoolsProps) => void; 18 | export declare const JotaiDevtools: React.FC; 19 | export {}; 20 | -------------------------------------------------------------------------------- /dist/index.d.ts: -------------------------------------------------------------------------------- 1 | export * from './JotaiDevtools'; 2 | -------------------------------------------------------------------------------- /dist/index.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | function ___$insertStyle(css) { 4 | if (!css) { 5 | return; 6 | } 7 | if (typeof window === 'undefined') { 8 | return; 9 | } 10 | 11 | var style = document.createElement('style'); 12 | 13 | style.setAttribute('type', 'text/css'); 14 | style.innerHTML = css; 15 | document.head.appendChild(style); 16 | return css; 17 | } 18 | 19 | Object.defineProperty(exports, '__esModule', { value: true }); 20 | 21 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } 22 | 23 | var jotai = require('jotai'); 24 | var rxjs = require('rxjs'); 25 | var operators = require('rxjs/operators'); 26 | var observableHooks = require('observable-hooks'); 27 | var moment = _interopDefault(require('moment')); 28 | var react = require('react'); 29 | var reactUse = require('react-use'); 30 | 31 | /*! ***************************************************************************** 32 | Copyright (c) Microsoft Corporation. All rights reserved. 33 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 34 | this file except in compliance with the License. You may obtain a copy of the 35 | License at http://www.apache.org/licenses/LICENSE-2.0 36 | 37 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 38 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 39 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 40 | MERCHANTABLITY OR NON-INFRINGEMENT. 41 | 42 | See the Apache Version 2.0 License for specific language governing permissions 43 | and limitations under the License. 44 | ***************************************************************************** */ 45 | 46 | var __assign = function() { 47 | __assign = Object.assign || function __assign(t) { 48 | for (var s, i = 1, n = arguments.length; i < n; i++) { 49 | s = arguments[i]; 50 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; 51 | } 52 | return t; 53 | }; 54 | return __assign.apply(this, arguments); 55 | }; 56 | 57 | function __rest(s, e) { 58 | var t = {}; 59 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) 60 | t[p] = s[p]; 61 | if (s != null && typeof Object.getOwnPropertySymbols === "function") 62 | for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { 63 | if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) 64 | t[p[i]] = s[p[i]]; 65 | } 66 | return t; 67 | } 68 | 69 | // import * as R from 'ramda'; 70 | var wrapConnectionResult = function (result) { 71 | var subject = new rxjs.Subject(); 72 | result.subscribe(function (x) { return subject.next(x); }, function (x) { return subject.error(x); }, function () { subject.complete(); }); 73 | return subject; 74 | }; 75 | var useJotaiDevtools = function (_a) { 76 | var atom = _a.atom, name = _a.name, config = _a.config, props = __rest(_a, ["atom", "name", "config"]); 77 | var options = __assign(__assign({}, config), { name: name }); 78 | var _b = jotai.useAtom(atom), atomCurrentValue = _b[0], setAtom = _b[1]; 79 | // Use hook to pipe value of atom to observable. 80 | var atom$ = observableHooks.useObservable(function (input$) { return input$.pipe(operators.map(function (_a) { 81 | var x = _a[0]; 82 | return x; 83 | })); }, [atomCurrentValue]); 84 | // Flag determines whether the last state update was a 'Time Travel' event 85 | var _c = react.useState(function () { return false; }), wasTriggeredByDevtools = _c[0], setWasTriggeredByDevtools = _c[1]; 86 | // Flag determines whether initial state has already been sent to DevTools extension 87 | var _d = react.useState(function () { return false; }), sentInitialState = _d[0], setSentInitialState = _d[1]; 88 | var _e = react.useState(), devTools = _e[0], setDevTools = _e[1]; 89 | // This observable hook provides a sanitized observable of DevTools extension events 90 | var devTools$ = observableHooks.useObservable(function (input$) { return input$.pipe(operators.filter(function (_a) { 91 | var x = _a[0]; 92 | return !!x; 93 | }), operators.switchMap(function (_a) { 94 | var x = _a[0]; 95 | return wrapConnectionResult(x); 96 | }), operators.catchError(function (error, observable) { 97 | console.error(error); 98 | return observable; 99 | })); }, [devTools]); 100 | // Function handles State Jumps and Time Traveling 101 | var jumpToState = function (newState) { 102 | setWasTriggeredByDevtools(true); 103 | // var oldState = atomCurrentValue(); 104 | setAtom(newState); 105 | // setWasTriggeredByDevtools(false); 106 | }; 107 | // Hook for subscribing to DevTools extension events 108 | observableHooks.useSubscription(devTools$, function (message) { 109 | switch (message.type) { 110 | case 'START': 111 | console.log("Atom Devtools Start", options.name, atomCurrentValue); 112 | if (!sentInitialState) { 113 | // devTools.send("\"" + options.name + "\" - Initial State", atom.getState()); 114 | devTools === null || devTools === void 0 ? void 0 : devTools.send(name + " - Initial State", atomCurrentValue); 115 | setSentInitialState(true); 116 | } 117 | return; 118 | case 'DISPATCH': 119 | if (!message.state) { 120 | return; 121 | } 122 | switch (message.payload.type) { 123 | case 'JUMP_TO_ACTION': 124 | case 'JUMP_TO_STATE': 125 | jumpToState(JSON.parse(message.state)); 126 | return; 127 | } 128 | return; 129 | } 130 | }); 131 | // Subscription to Atom state changes 132 | observableHooks.useSubscription(atom$, function (state) { 133 | if (wasTriggeredByDevtools) { 134 | setWasTriggeredByDevtools(false); 135 | return; 136 | } 137 | devTools === null || devTools === void 0 ? void 0 : devTools.send(name + " - " + moment().toISOString(), state); 138 | }); 139 | // Initial life cycle event to connect to DevTools Extension 140 | var initDevtools = function () { 141 | var devtools = window.__REDUX_DEVTOOLS_EXTENSION__; 142 | // const options = config; 143 | var name = options.name || window.document.title; 144 | if (!devtools) { 145 | console.error('Jotai Devtools plugin: Cannot find Redux Devtools browser extension. Is it installed?'); 146 | return atom; 147 | } 148 | var devTools = devtools.connect(options); 149 | console.log("Get Dev Tools", devTools, rxjs.of(devTools)); 150 | setDevTools(devTools); 151 | // setTimeout(() => devTools.send(name + " - Initial State", atomCurrentValue), 50) 152 | return atom; 153 | }; 154 | // [React Use Hook]() that fires initialization 155 | reactUse.useLifecycles(function () { 156 | initDevtools(); 157 | }); 158 | }; 159 | var JotaiDevtools = function (props) { 160 | useJotaiDevtools(props); 161 | return null; 162 | }; 163 | 164 | exports.JotaiDevtools = JotaiDevtools; 165 | exports.useJotaiDevtools = useJotaiDevtools; 166 | //# sourceMappingURL=index.js.map 167 | -------------------------------------------------------------------------------- /dist/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sources":["../src/JotaiDevtools.tsx"],"sourcesContent":["// import * as R from 'ramda';\n\nimport { useAtom, WritableAtom } from 'jotai'\nimport { Observable, Subject, of } from 'rxjs';\nimport { map, switchMap, filter, catchError } from 'rxjs/operators';\nimport { useObservable, useSubscription } from 'observable-hooks'\n\nimport moment from 'moment';\nimport { useState } from 'react';\nimport { useLifecycles } from 'react-use';\n\ninterface Config {\n instanceID?: number,\n name?: string,\n serialize?: boolean,\n actionCreators?: any,\n latency?: number,\n predicate?: any,\n autoPause?: boolean\n}\n\ninterface Message {\n type: string,\n payload?: any,\n state?: any\n}\n\ninterface IConnectionResult {\n subscribe: (dispatch: any) => {};\n unsubscribe: () => {};\n send: (action: string, state: any) => {};\n error: (payload: any) => {};\n}\n\ntype ConnectionResult = IConnectionResult & Observable\n\ninterface Extension {\n connect: (options?: Config) => ConnectionResult;\n}\n\n\n\ninterface JotaiDevtoolsProps {\n atom: WritableAtom,\n name?: string,\n config?: Config\n}\n\nconst wrapConnectionResult = (result: ConnectionResult) => {\n const subject = new Subject()\n\n result.subscribe(\n (x: any) => subject.next(x),\n (x: any) => subject.error(x),\n () => {subject.complete()}\n );\n\n return subject;\n}\n\nexport const useJotaiDevtools = ({ atom, name, config, ...props }: JotaiDevtoolsProps) => {\n\n const options = {\n ...config,\n name\n }\n\n const [atomCurrentValue, setAtom] = useAtom(atom);\n\n // Use hook to pipe value of atom to observable.\n const atom$ = useObservable((input$) => input$.pipe(\n map(([x]) => x)\n ), [atomCurrentValue]);\n \n // Flag determines whether the last state update was a 'Time Travel' event\n const [wasTriggeredByDevtools, setWasTriggeredByDevtools] = useState(() => false);\n\n // Flag determines whether initial state has already been sent to DevTools extension\n const [sentInitialState, setSentInitialState] = useState(() => false);\n\n const [devTools, setDevTools] = useState();\n\n // This observable hook provides a sanitized observable of DevTools extension events\n const devTools$ = useObservable((input$) => input$.pipe(\n filter(([x]) => !!x),\n switchMap(([x]) => wrapConnectionResult(x as ConnectionResult)),\n catchError((error, observable) => {\n console.error(error);\n return observable;\n })\n ), [devTools]);\n\n // Function handles State Jumps and Time Traveling\n const jumpToState = (newState: any) => {\n setWasTriggeredByDevtools(true)\n // var oldState = atomCurrentValue();\n setAtom(newState);\n // setWasTriggeredByDevtools(false);\n };\n\n // Hook for subscribing to DevTools extension events\n useSubscription(devTools$, (message) => {\n switch (message.type) {\n case 'START':\n console.log(\"Atom Devtools Start\", options.name, atomCurrentValue)\n if(!sentInitialState) {\n // devTools.send(\"\\\"\" + options.name + \"\\\" - Initial State\", atom.getState());\n devTools?.send(name + \" - Initial State\", atomCurrentValue);\n setSentInitialState(true);\n }\n return;\n case 'DISPATCH':\n if (!message.state) {\n return;\n }\n switch (message.payload.type) {\n case 'JUMP_TO_ACTION':\n case 'JUMP_TO_STATE':\n jumpToState(JSON.parse(message.state));\n return;\n }\n return;\n }\n });\n\n // Subscription to Atom state changes\n useSubscription(atom$, (state) => {\n if (wasTriggeredByDevtools) {\n setWasTriggeredByDevtools(false);\n return;\n }\n devTools?.send(name + \" - \" + moment().toISOString(), state);\n })\n\n // Initial life cycle event to connect to DevTools Extension\n const initDevtools = () => {\n const devtools = (window as any).__REDUX_DEVTOOLS_EXTENSION__ as Extension;\n // const options = config;\n const name = options.name || window.document.title;\n\n if (!devtools) {\n console.error('Jotai Devtools plugin: Cannot find Redux Devtools browser extension. Is it installed?');\n return atom;\n }\n\n const devTools = devtools.connect(options);\n \n console.log(\"Get Dev Tools\", devTools, of(devTools));\n\n setDevTools(devTools);\n\n // setTimeout(() => devTools.send(name + \" - Initial State\", atomCurrentValue), 50)\n\n return atom;\n }\n\n // [React Use Hook]() that fires initialization\n useLifecycles(() => {\n initDevtools();\n });\n}\n\nexport const JotaiDevtools: React.FC = (props) => {\n useJotaiDevtools(props);\n\n return null;\n}"],"names":["Subject","useAtom","useObservable","map","useState","filter","switchMap","catchError","useSubscription","of","useLifecycles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAgDA,IAAM,oBAAoB,GAAG,UAAC,MAAwB;IAClD,IAAM,OAAO,GAAG,IAAIA,YAAO,EAAW,CAAA;IAEtC,MAAM,CAAC,SAAS,CACZ,UAAC,CAAM,IAAK,OAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAA,EAC3B,UAAC,CAAM,IAAK,OAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAA,EAC5B,cAAO,OAAO,CAAC,QAAQ,EAAE,CAAA,EAAC,CAC7B,CAAC;IAEF,OAAO,OAAO,CAAC;AACnB,CAAC,CAAA;IAEY,gBAAgB,GAAG,UAAC,EAAoD;IAAlD,IAAA,IAAI,UAAA,EAAE,IAAI,UAAA,EAAE,MAAM,YAAA,EAAK,KAAK,cAA9B,0BAAgC,CAAF;IAE3D,IAAM,OAAO,yBACN,MAAM,KACT,IAAI,MAAA,GACP,CAAA;IAEK,IAAA,KAA8BC,aAAO,CAAC,IAAI,CAAC,EAA1C,gBAAgB,QAAA,EAAE,OAAO,QAAiB,CAAC;;IAGlD,IAAM,KAAK,GAAGC,6BAAa,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,IAAI,CAC/CC,aAAG,CAAC,UAAC,EAAG;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC;KAAA,CAAC,CAClB,GAAA,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;;IAGjB,IAAA,KAAsDC,cAAQ,CAAC,cAAM,OAAA,KAAK,GAAA,CAAC,EAA1E,sBAAsB,QAAA,EAAE,yBAAyB,QAAyB,CAAC;;IAG5E,IAAA,KAA0CA,cAAQ,CAAC,cAAM,OAAA,KAAK,GAAA,CAAC,EAA9D,gBAAgB,QAAA,EAAE,mBAAmB,QAAyB,CAAC;IAEhE,IAAA,KAA0BA,cAAQ,EAAoB,EAArD,QAAQ,QAAA,EAAE,WAAW,QAAgC,CAAC;;IAG7D,IAAM,SAAS,GAAGF,6BAAa,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,IAAI,CACnDG,gBAAM,CAAC,UAAC,EAAG;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC,CAAC,CAAC;KAAA,CAAC,EACpBC,mBAAS,CAAC,UAAC,EAAG;YAAF,CAAC,QAAA;QAAM,OAAA,oBAAoB,CAAC,CAAqB,CAAC;KAAA,CAAC,EAC/DC,oBAAU,CAAC,UAAC,KAAK,EAAE,UAAU;QACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,UAAU,CAAC;KACrB,CAAC,CACL,GAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAGf,IAAM,WAAW,GAAG,UAAC,QAAa;QAC9B,yBAAyB,CAAC,IAAI,CAAC,CAAA;;QAE/B,OAAO,CAAC,QAAQ,CAAC,CAAC;;KAErB,CAAC;;IAGFC,+BAAe,CAAC,SAAS,EAAE,UAAC,OAAO;QAC/B,QAAQ,OAAO,CAAC,IAAI;YAChB,KAAK,OAAO;gBACR,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;gBAClE,IAAG,CAAC,gBAAgB,EAAE;;oBAElB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,IAAI,GAAG,kBAAkB,EAAE,gBAAgB,EAAE;oBAC5D,mBAAmB,CAAC,IAAI,CAAC,CAAC;iBAC7B;gBACD,OAAO;YACX,KAAK,UAAU;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBAChB,OAAO;iBACV;gBACD,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI;oBACxB,KAAK,gBAAgB,CAAC;oBACtB,KAAK,eAAe;wBAChB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;wBACvC,OAAO;iBACd;gBACD,OAAO;SACd;KACJ,CAAC,CAAC;;IAGHA,+BAAe,CAAC,KAAK,EAAE,UAAC,KAAK;QACzB,IAAI,sBAAsB,EAAE;YACxB,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO;SACV;QACD,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE;KAChE,CAAC,CAAA;;IAGF,IAAM,YAAY,GAAG;QACjB,IAAM,QAAQ,GAAI,MAAc,CAAC,4BAAyC,CAAC;;QAE3E,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAEnD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;YACvG,OAAO,IAAI,CAAC;SACf;QAED,IAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,EAAEC,OAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAErD,WAAW,CAAC,QAAQ,CAAC,CAAC;;QAItB,OAAO,IAAI,CAAC;KACf,CAAA;;IAGDC,sBAAa,CAAC;QACV,YAAY,EAAE,CAAC;KAClB,CAAC,CAAC;AACP,EAAC;IAEY,aAAa,GAAiC,UAAC,KAAK;IAC7D,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExB,OAAO,IAAI,CAAC;AAChB;;;;;"} -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Directory for instrumented libs generated by jscoverage/JSCover 10 | lib-cov 11 | 12 | # Coverage directory used by tools like istanbul 13 | coverage 14 | *.lcov 15 | 16 | # nyc test coverage 17 | .nyc_output 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (https://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directories 26 | node_modules/ 27 | jspm_packages/ 28 | 29 | # TypeScript v1 declaration files 30 | typings/ 31 | 32 | # TypeScript cache 33 | *.tsbuildinfo 34 | 35 | # Optional npm cache directory 36 | .npm 37 | 38 | # Optional eslint cache 39 | .eslintcache 40 | 41 | # Output of 'npm pack' 42 | *.tgz 43 | 44 | # Yarn Integrity file 45 | .yarn-integrity 46 | 47 | # generate output 48 | dist 49 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@c0d3t3k/jotai-devtools-example", 3 | "version": "1.0.0", 4 | "description": "An example for jotai-devtools", 5 | "author": "c0d3t3k", 6 | "license": "MIT", 7 | "private": true, 8 | "engines": { 9 | "node": ">=8", 10 | "npm": ">=5" 11 | }, 12 | "scripts": { 13 | "start": "react-scripts start", 14 | "build": "react-scripts build", 15 | "test": "react-scripts test", 16 | "eject": "react-scripts eject" 17 | }, 18 | "dependencies": { 19 | "jotai": "^0.10.1", 20 | "moment": "^2.29.1", 21 | "observable-hooks": "^3.1.2", 22 | "react-use": "^15.3.4", 23 | "react": "^17.0.1", 24 | "react-dom": "^17.0.1", 25 | "@c0d3t3k/jotai-devtools": "file:../" 26 | }, 27 | "devDependencies": { 28 | "@types/moment": "^2.13.0", 29 | "@types/react": "^16.3.13", 30 | "@types/react-dom": "^16.0.5", 31 | "react-scripts": "3.4.1", 32 | "typescript": "^3.8.0" 33 | }, 34 | "browserslist": { 35 | "production": [ 36 | ">0.2%", 37 | "not dead", 38 | "not op_mini all" 39 | ], 40 | "development": [ 41 | "last 1 chrome version", 42 | "last 1 firefox version", 43 | "last 1 safari version" 44 | ] 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /example/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | Jotai Devtools Example 16 | 20 | 21 | 22 | 26 |
27 | 28 | 29 | -------------------------------------------------------------------------------- /example/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | import { useAtom, atom } from 'jotai' 4 | import { useJotaiDevtools, JotaiDevtools } from '@c0d3t3k/jotai-devtools' 5 | 6 | // The atom to be monitored by the devtools. 7 | const countAtom = atom(0) 8 | 9 | const App: React.FC = () => { 10 | 11 | const [count, setCount] = useAtom(countAtom) 12 | 13 | // This hook maps the "Count Atom (Hook)" devtools instance to `countAtom`. 14 | useJotaiDevtools({ 15 | name: "Count Atom (Hook)", 16 | atom: countAtom 17 | }); 18 | 19 | // Some functions to modify `countAtom` 20 | const increment = () => { 21 | setCount(count + 1); 22 | } 23 | 24 | const decrement = () => { 25 | setCount(count - 1); 26 | } 27 | 28 | // The React component tree. 29 | return ( 30 | <> 31 | {/* This component maps the "Count Atom (Component)" devtools instance to `countAtom`. */} 32 | 33 | 34 |
35 |

Count is {count}

36 | 37 | 38 |
39 | 40 | ) 41 | } 42 | 43 | export default App 44 | -------------------------------------------------------------------------------- /example/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | import { Provider } from 'jotai' 5 | 6 | ReactDOM.render( 7 | // 8 | 9 | 10 | , 11 | // , 12 | document.getElementById('root'), 13 | ) 14 | -------------------------------------------------------------------------------- /example/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /example/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "noEmit": true, 19 | "jsx": "react", 20 | "isolatedModules": true 21 | }, 22 | "include": [ 23 | "src" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /install-detect/.gitignore: -------------------------------------------------------------------------------- 1 | is-fs.* 2 | is-npm.* -------------------------------------------------------------------------------- /install-detect/.npmignore: -------------------------------------------------------------------------------- 1 | is-fs.* 2 | is-git.* -------------------------------------------------------------------------------- /install-detect/README.md: -------------------------------------------------------------------------------- 1 | # Install-Detect 2 | 3 | This folder enables git package install detection as described here: 4 | [https://stackoverflow.com/a/48392815](https://stackoverflow.com/a/48392815) -------------------------------------------------------------------------------- /install-detect/is-git.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c0d3t3k/jotai-devtools/99d8b4b78c2d4570f3f117a6344c644bbdfe64bf/install-detect/is-git.txt -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@c0d3t3k/jotai-devtools", 3 | "version": "0.10.2", 4 | "description": "Redux Devtools integrations for jotai.", 5 | "author": "c0d3t3k", 6 | "license": "MIT", 7 | "repository": "c0d3t3k/jotai-devtools", 8 | "main": "dist/index.js", 9 | "private": true, 10 | "engines": { 11 | "node": ">=8", 12 | "npm": ">=5" 13 | }, 14 | "scripts": { 15 | "build": "rollup -c", 16 | "start": "rollup -c -w", 17 | "prepare": "rollup -c", 18 | "prepublish": "rollup -c" 19 | }, 20 | "dependencies": { 21 | "jotai": "^0.10.1", 22 | "moment": "^2.29.1", 23 | "observable-hooks": "^3.1.2", 24 | "react-use": "^15.3.4", 25 | "rxjs": "^6.6.3" 26 | }, 27 | "peerDependencies": { 28 | "react": "=< 16.13.0", 29 | "react-dom": "=< 16.13.0" 30 | }, 31 | "devDependencies": { 32 | "@types/moment": "^2.13.0", 33 | "@types/react": "^16.9.0", 34 | "@types/react-dom": "^16.9.0", 35 | "babel-core": "^6.26.3", 36 | "babel-runtime": "^6.26.0", 37 | "react": "^16.12.0", 38 | "react-dom": "^16.12.0", 39 | "rollup": "^1.29.0", 40 | "rollup-plugin-sass": "^1.2.2", 41 | "rollup-plugin-typescript2": "^0.25.3", 42 | "typescript": "^4.0.0" 43 | }, 44 | "files": [ 45 | "dist" 46 | ], 47 | "keywords": [ 48 | "react", 49 | "typescript", 50 | "npm", 51 | "jotai", 52 | "devtools", 53 | "redux-devtools" 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import sass from 'rollup-plugin-sass' 2 | import typescript from 'rollup-plugin-typescript2' 3 | 4 | import pkg from './package.json' 5 | 6 | export default { 7 | input: 'src/index.tsx', 8 | output: [ 9 | { 10 | file: pkg.main, 11 | format: 'cjs', 12 | exports: 'named', 13 | sourcemap: true, 14 | strict: false 15 | } 16 | ], 17 | plugins: [sass({ insert: true }), typescript()], 18 | external: ['react', 'react-dom'] 19 | } 20 | -------------------------------------------------------------------------------- /src/JotaiDevtools.tsx: -------------------------------------------------------------------------------- 1 | // import * as R from 'ramda'; 2 | 3 | import { useAtom, WritableAtom } from 'jotai' 4 | import { Observable, Subject, of } from 'rxjs'; 5 | import { map, switchMap, filter, catchError } from 'rxjs/operators'; 6 | import { useObservable, useSubscription } from 'observable-hooks' 7 | 8 | import moment from 'moment'; 9 | import { useState } from 'react'; 10 | import { useLifecycles } from 'react-use'; 11 | 12 | interface Config { 13 | instanceID?: number, 14 | name?: string, 15 | serialize?: boolean, 16 | actionCreators?: any, 17 | latency?: number, 18 | predicate?: any, 19 | autoPause?: boolean 20 | } 21 | 22 | interface Message { 23 | type: string, 24 | payload?: any, 25 | state?: any 26 | } 27 | 28 | interface IConnectionResult { 29 | subscribe: (dispatch: any) => {}; 30 | unsubscribe: () => {}; 31 | send: (action: string, state: any) => {}; 32 | error: (payload: any) => {}; 33 | } 34 | 35 | type ConnectionResult = IConnectionResult & Observable 36 | 37 | interface Extension { 38 | connect: (options?: Config) => ConnectionResult; 39 | } 40 | 41 | 42 | 43 | interface JotaiDevtoolsProps { 44 | atom: WritableAtom, 45 | name?: string, 46 | config?: Config 47 | } 48 | 49 | const wrapConnectionResult = (result: ConnectionResult) => { 50 | const subject = new Subject() 51 | 52 | result.subscribe( 53 | (x: any) => subject.next(x), 54 | (x: any) => subject.error(x), 55 | () => {subject.complete()} 56 | ); 57 | 58 | return subject; 59 | } 60 | 61 | export const useJotaiDevtools = ({ atom, name, config, ...props }: JotaiDevtoolsProps) => { 62 | 63 | const options = { 64 | ...config, 65 | name 66 | } 67 | 68 | const [atomCurrentValue, setAtom] = useAtom(atom); 69 | 70 | // Use hook to pipe value of atom to observable. 71 | const atom$ = useObservable((input$) => input$.pipe( 72 | map(([x]) => x) 73 | ), [atomCurrentValue]); 74 | 75 | // Flag determines whether the last state update was a 'Time Travel' event 76 | const [wasTriggeredByDevtools, setWasTriggeredByDevtools] = useState(() => false); 77 | 78 | // Flag determines whether initial state has already been sent to DevTools extension 79 | const [sentInitialState, setSentInitialState] = useState(() => false); 80 | 81 | const [devTools, setDevTools] = useState(); 82 | 83 | // This observable hook provides a sanitized observable of DevTools extension events 84 | const devTools$ = useObservable((input$) => input$.pipe( 85 | filter(([x]) => !!x), 86 | switchMap(([x]) => wrapConnectionResult(x as ConnectionResult)), 87 | catchError((error, observable) => { 88 | console.error(error); 89 | return observable; 90 | }) 91 | ), [devTools]); 92 | 93 | // Function handles State Jumps and Time Traveling 94 | const jumpToState = (newState: any) => { 95 | setWasTriggeredByDevtools(true) 96 | // var oldState = atomCurrentValue(); 97 | setAtom(newState); 98 | // setWasTriggeredByDevtools(false); 99 | }; 100 | 101 | // Hook for subscribing to DevTools extension events 102 | useSubscription(devTools$, (message) => { 103 | switch (message.type) { 104 | case 'START': 105 | console.log("Atom Devtools Start", options.name, atomCurrentValue) 106 | if(!sentInitialState) { 107 | // devTools.send("\"" + options.name + "\" - Initial State", atom.getState()); 108 | devTools?.send(name + " - Initial State", atomCurrentValue); 109 | setSentInitialState(true); 110 | } 111 | return; 112 | case 'DISPATCH': 113 | if (!message.state) { 114 | return; 115 | } 116 | switch (message.payload.type) { 117 | case 'JUMP_TO_ACTION': 118 | case 'JUMP_TO_STATE': 119 | jumpToState(JSON.parse(message.state)); 120 | return; 121 | } 122 | return; 123 | } 124 | }); 125 | 126 | // Subscription to Atom state changes 127 | useSubscription(atom$, (state) => { 128 | if (wasTriggeredByDevtools) { 129 | setWasTriggeredByDevtools(false); 130 | return; 131 | } 132 | devTools?.send(name + " - " + moment().toISOString(), state); 133 | }) 134 | 135 | // Initial life cycle event to connect to DevTools Extension 136 | const initDevtools = () => { 137 | const devtools = (window as any).__REDUX_DEVTOOLS_EXTENSION__ as Extension; 138 | // const options = config; 139 | const name = options.name || window.document.title; 140 | 141 | if (!devtools) { 142 | console.error('Jotai Devtools plugin: Cannot find Redux Devtools browser extension. Is it installed?'); 143 | return atom; 144 | } 145 | 146 | const devTools = devtools.connect(options); 147 | 148 | console.log("Get Dev Tools", devTools, of(devTools)); 149 | 150 | setDevTools(devTools); 151 | 152 | // setTimeout(() => devTools.send(name + " - Initial State", atomCurrentValue), 50) 153 | 154 | return atom; 155 | } 156 | 157 | // [React Use Hook]() that fires initialization 158 | useLifecycles(() => { 159 | initDevtools(); 160 | }); 161 | } 162 | 163 | export const JotaiDevtools: React.FC = (props) => { 164 | useJotaiDevtools(props); 165 | 166 | return null; 167 | } -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './JotaiDevtools'; -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "dist", 4 | "module": "esnext", 5 | "target": "es5", 6 | "lib": ["es6", "dom", "es2016", "es2017"], 7 | "sourceMap": true, 8 | "allowJs": false, 9 | "jsx": "react", 10 | "declaration": true, 11 | "moduleResolution": "node", 12 | "forceConsistentCasingInFileNames": true, 13 | "suppressImplicitAnyIndexErrors": true, 14 | "allowSyntheticDefaultImports": true 15 | }, 16 | "include": ["src"], 17 | "exclude": ["node_modules", "dist", "example", "rollup.config.js"] 18 | } 19 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.1.2": 6 | version "7.12.1" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" 8 | integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== 9 | dependencies: 10 | regenerator-runtime "^0.13.4" 11 | 12 | "@types/estree@*": 13 | version "0.0.45" 14 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" 15 | integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== 16 | 17 | "@types/js-cookie@2.2.6": 18 | version "2.2.6" 19 | resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f" 20 | integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw== 21 | 22 | "@types/moment@^2.13.0": 23 | version "2.13.0" 24 | resolved "https://registry.yarnpkg.com/@types/moment/-/moment-2.13.0.tgz#604ebd189bc3bc34a1548689404e61a2a4aac896" 25 | integrity sha1-YE69GJvDvDShVIaJQE5hoqSqyJY= 26 | dependencies: 27 | moment "*" 28 | 29 | "@types/node@*": 30 | version "14.14.6" 31 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.6.tgz#146d3da57b3c636cc0d1769396ce1cfa8991147f" 32 | integrity sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw== 33 | 34 | "@types/prop-types@*": 35 | version "15.7.3" 36 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" 37 | integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== 38 | 39 | "@types/react-dom@^16.9.0": 40 | version "16.9.9" 41 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.9.tgz#d2d0a6f720a0206369ccbefff752ba37b9583136" 42 | integrity sha512-jE16FNWO3Logq/Lf+yvEAjKzhpST/Eac8EMd1i4dgZdMczfgqC8EjpxwNgEe3SExHYLliabXDh9DEhhqnlXJhg== 43 | dependencies: 44 | "@types/react" "*" 45 | 46 | "@types/react@*", "@types/react@^16.9.0": 47 | version "16.9.55" 48 | resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.55.tgz#47078587f5bfe028a23b6b46c7b94ac0d436acff" 49 | integrity sha512-6KLe6lkILeRwyyy7yG9rULKJ0sXplUsl98MGoCfpteXf9sPWFWWMknDcsvubcpaTdBuxtsLF6HDUwdApZL/xIg== 50 | dependencies: 51 | "@types/prop-types" "*" 52 | csstype "^3.0.2" 53 | 54 | "@xobotyi/scrollbar-width@1.9.5": 55 | version "1.9.5" 56 | resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d" 57 | integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== 58 | 59 | acorn@^7.1.0: 60 | version "7.4.1" 61 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 62 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 63 | 64 | ansi-regex@^2.0.0: 65 | version "2.1.1" 66 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 67 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 68 | 69 | ansi-styles@^2.2.1: 70 | version "2.2.1" 71 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 72 | integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= 73 | 74 | anymatch@^2.0.0: 75 | version "2.0.0" 76 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 77 | integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== 78 | dependencies: 79 | micromatch "^3.1.4" 80 | normalize-path "^2.1.1" 81 | 82 | arr-diff@^4.0.0: 83 | version "4.0.0" 84 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 85 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= 86 | 87 | arr-flatten@^1.1.0: 88 | version "1.1.0" 89 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 90 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== 91 | 92 | arr-union@^3.1.0: 93 | version "3.1.0" 94 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 95 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= 96 | 97 | array-unique@^0.3.2: 98 | version "0.3.2" 99 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 100 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= 101 | 102 | assign-symbols@^1.0.0: 103 | version "1.0.0" 104 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 105 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= 106 | 107 | async-each@^1.0.1: 108 | version "1.0.3" 109 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" 110 | integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== 111 | 112 | atob@^2.1.2: 113 | version "2.1.2" 114 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 115 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== 116 | 117 | babel-code-frame@^6.26.0: 118 | version "6.26.0" 119 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 120 | integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= 121 | dependencies: 122 | chalk "^1.1.3" 123 | esutils "^2.0.2" 124 | js-tokens "^3.0.2" 125 | 126 | babel-core@^6.26.0, babel-core@^6.26.3: 127 | version "6.26.3" 128 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" 129 | integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== 130 | dependencies: 131 | babel-code-frame "^6.26.0" 132 | babel-generator "^6.26.0" 133 | babel-helpers "^6.24.1" 134 | babel-messages "^6.23.0" 135 | babel-register "^6.26.0" 136 | babel-runtime "^6.26.0" 137 | babel-template "^6.26.0" 138 | babel-traverse "^6.26.0" 139 | babel-types "^6.26.0" 140 | babylon "^6.18.0" 141 | convert-source-map "^1.5.1" 142 | debug "^2.6.9" 143 | json5 "^0.5.1" 144 | lodash "^4.17.4" 145 | minimatch "^3.0.4" 146 | path-is-absolute "^1.0.1" 147 | private "^0.1.8" 148 | slash "^1.0.0" 149 | source-map "^0.5.7" 150 | 151 | babel-generator@^6.26.0: 152 | version "6.26.1" 153 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" 154 | integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== 155 | dependencies: 156 | babel-messages "^6.23.0" 157 | babel-runtime "^6.26.0" 158 | babel-types "^6.26.0" 159 | detect-indent "^4.0.0" 160 | jsesc "^1.3.0" 161 | lodash "^4.17.4" 162 | source-map "^0.5.7" 163 | trim-right "^1.0.1" 164 | 165 | babel-helpers@^6.24.1: 166 | version "6.24.1" 167 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 168 | integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= 169 | dependencies: 170 | babel-runtime "^6.22.0" 171 | babel-template "^6.24.1" 172 | 173 | babel-messages@^6.23.0: 174 | version "6.23.0" 175 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 176 | integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= 177 | dependencies: 178 | babel-runtime "^6.22.0" 179 | 180 | babel-register@^6.26.0: 181 | version "6.26.0" 182 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" 183 | integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= 184 | dependencies: 185 | babel-core "^6.26.0" 186 | babel-runtime "^6.26.0" 187 | core-js "^2.5.0" 188 | home-or-tmp "^2.0.0" 189 | lodash "^4.17.4" 190 | mkdirp "^0.5.1" 191 | source-map-support "^0.4.15" 192 | 193 | babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: 194 | version "6.26.0" 195 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 196 | integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= 197 | dependencies: 198 | core-js "^2.4.0" 199 | regenerator-runtime "^0.11.0" 200 | 201 | babel-template@^6.24.1, babel-template@^6.26.0: 202 | version "6.26.0" 203 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" 204 | integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= 205 | dependencies: 206 | babel-runtime "^6.26.0" 207 | babel-traverse "^6.26.0" 208 | babel-types "^6.26.0" 209 | babylon "^6.18.0" 210 | lodash "^4.17.4" 211 | 212 | babel-traverse@^6.26.0: 213 | version "6.26.0" 214 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" 215 | integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= 216 | dependencies: 217 | babel-code-frame "^6.26.0" 218 | babel-messages "^6.23.0" 219 | babel-runtime "^6.26.0" 220 | babel-types "^6.26.0" 221 | babylon "^6.18.0" 222 | debug "^2.6.8" 223 | globals "^9.18.0" 224 | invariant "^2.2.2" 225 | lodash "^4.17.4" 226 | 227 | babel-types@^6.26.0: 228 | version "6.26.0" 229 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 230 | integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= 231 | dependencies: 232 | babel-runtime "^6.26.0" 233 | esutils "^2.0.2" 234 | lodash "^4.17.4" 235 | to-fast-properties "^1.0.3" 236 | 237 | babylon@^6.18.0: 238 | version "6.18.0" 239 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 240 | integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== 241 | 242 | balanced-match@^1.0.0: 243 | version "1.0.0" 244 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 245 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 246 | 247 | base@^0.11.1: 248 | version "0.11.2" 249 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 250 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== 251 | dependencies: 252 | cache-base "^1.0.1" 253 | class-utils "^0.3.5" 254 | component-emitter "^1.2.1" 255 | define-property "^1.0.0" 256 | isobject "^3.0.1" 257 | mixin-deep "^1.2.0" 258 | pascalcase "^0.1.1" 259 | 260 | binary-extensions@^1.0.0: 261 | version "1.13.1" 262 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" 263 | integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== 264 | 265 | bindings@^1.5.0: 266 | version "1.5.0" 267 | resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" 268 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 269 | dependencies: 270 | file-uri-to-path "1.0.0" 271 | 272 | bowser@^1.7.3: 273 | version "1.9.4" 274 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" 275 | integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== 276 | 277 | brace-expansion@^1.1.7: 278 | version "1.1.11" 279 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 280 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 281 | dependencies: 282 | balanced-match "^1.0.0" 283 | concat-map "0.0.1" 284 | 285 | braces@^2.3.1, braces@^2.3.2: 286 | version "2.3.2" 287 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 288 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== 289 | dependencies: 290 | arr-flatten "^1.1.0" 291 | array-unique "^0.3.2" 292 | extend-shallow "^2.0.1" 293 | fill-range "^4.0.0" 294 | isobject "^3.0.1" 295 | repeat-element "^1.1.2" 296 | snapdragon "^0.8.1" 297 | snapdragon-node "^2.0.1" 298 | split-string "^3.0.2" 299 | to-regex "^3.0.1" 300 | 301 | cache-base@^1.0.1: 302 | version "1.0.1" 303 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 304 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== 305 | dependencies: 306 | collection-visit "^1.0.0" 307 | component-emitter "^1.2.1" 308 | get-value "^2.0.6" 309 | has-value "^1.0.0" 310 | isobject "^3.0.1" 311 | set-value "^2.0.0" 312 | to-object-path "^0.3.0" 313 | union-value "^1.0.0" 314 | unset-value "^1.0.0" 315 | 316 | chalk@^1.1.3: 317 | version "1.1.3" 318 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 319 | integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= 320 | dependencies: 321 | ansi-styles "^2.2.1" 322 | escape-string-regexp "^1.0.2" 323 | has-ansi "^2.0.0" 324 | strip-ansi "^3.0.0" 325 | supports-color "^2.0.0" 326 | 327 | chokidar@^2.0.0: 328 | version "2.1.8" 329 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" 330 | integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== 331 | dependencies: 332 | anymatch "^2.0.0" 333 | async-each "^1.0.1" 334 | braces "^2.3.2" 335 | glob-parent "^3.1.0" 336 | inherits "^2.0.3" 337 | is-binary-path "^1.0.0" 338 | is-glob "^4.0.0" 339 | normalize-path "^3.0.0" 340 | path-is-absolute "^1.0.0" 341 | readdirp "^2.2.1" 342 | upath "^1.1.1" 343 | optionalDependencies: 344 | fsevents "^1.2.7" 345 | 346 | class-utils@^0.3.5: 347 | version "0.3.6" 348 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 349 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== 350 | dependencies: 351 | arr-union "^3.1.0" 352 | define-property "^0.2.5" 353 | isobject "^3.0.0" 354 | static-extend "^0.1.1" 355 | 356 | collection-visit@^1.0.0: 357 | version "1.0.0" 358 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 359 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= 360 | dependencies: 361 | map-visit "^1.0.0" 362 | object-visit "^1.0.0" 363 | 364 | commondir@^1.0.1: 365 | version "1.0.1" 366 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 367 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 368 | 369 | component-emitter@^1.2.1: 370 | version "1.3.0" 371 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" 372 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 373 | 374 | concat-map@0.0.1: 375 | version "0.0.1" 376 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 377 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 378 | 379 | convert-source-map@^1.5.1: 380 | version "1.7.0" 381 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" 382 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== 383 | dependencies: 384 | safe-buffer "~5.1.1" 385 | 386 | copy-descriptor@^0.1.0: 387 | version "0.1.1" 388 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 389 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 390 | 391 | copy-to-clipboard@^3.2.0: 392 | version "3.3.1" 393 | resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" 394 | integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== 395 | dependencies: 396 | toggle-selection "^1.0.6" 397 | 398 | core-js@^2.4.0, core-js@^2.5.0: 399 | version "2.6.11" 400 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" 401 | integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== 402 | 403 | core-util-is@~1.0.0: 404 | version "1.0.2" 405 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 406 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 407 | 408 | css-in-js-utils@^2.0.0: 409 | version "2.0.1" 410 | resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" 411 | integrity sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA== 412 | dependencies: 413 | hyphenate-style-name "^1.0.2" 414 | isobject "^3.0.1" 415 | 416 | css-tree@^1.0.0-alpha.28: 417 | version "1.0.0" 418 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0.tgz#21993fa270d742642a90409a2c0cb3ac0298adf6" 419 | integrity sha512-CdVYz/Yuqw0VdKhXPBIgi8DO3NicJVYZNWeX9XcIuSp9ZoFT5IcleVRW07O5rMjdcx1mb+MEJPknTTEW7DdsYw== 420 | dependencies: 421 | mdn-data "2.0.12" 422 | source-map "^0.6.1" 423 | 424 | csstype@^2.5.5: 425 | version "2.6.13" 426 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" 427 | integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== 428 | 429 | csstype@^3.0.2: 430 | version "3.0.4" 431 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.4.tgz#b156d7be03b84ff425c9a0a4b1e5f4da9c5ca888" 432 | integrity sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA== 433 | 434 | debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: 435 | version "2.6.9" 436 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 437 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 438 | dependencies: 439 | ms "2.0.0" 440 | 441 | decode-uri-component@^0.2.0: 442 | version "0.2.0" 443 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 444 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 445 | 446 | define-property@^0.2.5: 447 | version "0.2.5" 448 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 449 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= 450 | dependencies: 451 | is-descriptor "^0.1.0" 452 | 453 | define-property@^1.0.0: 454 | version "1.0.0" 455 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 456 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= 457 | dependencies: 458 | is-descriptor "^1.0.0" 459 | 460 | define-property@^2.0.2: 461 | version "2.0.2" 462 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 463 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== 464 | dependencies: 465 | is-descriptor "^1.0.2" 466 | isobject "^3.0.1" 467 | 468 | detect-indent@^4.0.0: 469 | version "4.0.0" 470 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 471 | integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= 472 | dependencies: 473 | repeating "^2.0.0" 474 | 475 | error-stack-parser@^2.0.6: 476 | version "2.0.6" 477 | resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" 478 | integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== 479 | dependencies: 480 | stackframe "^1.1.1" 481 | 482 | escape-string-regexp@^1.0.2: 483 | version "1.0.5" 484 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 485 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 486 | 487 | estree-walker@^0.6.1: 488 | version "0.6.1" 489 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 490 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 491 | 492 | esutils@^2.0.2: 493 | version "2.0.3" 494 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 495 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 496 | 497 | expand-brackets@^2.1.4: 498 | version "2.1.4" 499 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 500 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= 501 | dependencies: 502 | debug "^2.3.3" 503 | define-property "^0.2.5" 504 | extend-shallow "^2.0.1" 505 | posix-character-classes "^0.1.0" 506 | regex-not "^1.0.0" 507 | snapdragon "^0.8.1" 508 | to-regex "^3.0.1" 509 | 510 | extend-shallow@^2.0.1: 511 | version "2.0.1" 512 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 513 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= 514 | dependencies: 515 | is-extendable "^0.1.0" 516 | 517 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 518 | version "3.0.2" 519 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 520 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= 521 | dependencies: 522 | assign-symbols "^1.0.0" 523 | is-extendable "^1.0.1" 524 | 525 | extglob@^2.0.4: 526 | version "2.0.4" 527 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 528 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== 529 | dependencies: 530 | array-unique "^0.3.2" 531 | define-property "^1.0.0" 532 | expand-brackets "^2.1.4" 533 | extend-shallow "^2.0.1" 534 | fragment-cache "^0.2.1" 535 | regex-not "^1.0.0" 536 | snapdragon "^0.8.1" 537 | to-regex "^3.0.1" 538 | 539 | fast-deep-equal@^3.1.3: 540 | version "3.1.3" 541 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 542 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 543 | 544 | fast-shallow-equal@^1.0.0: 545 | version "1.0.0" 546 | resolved "https://registry.yarnpkg.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b" 547 | integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw== 548 | 549 | fastest-stable-stringify@^1.0.1: 550 | version "1.0.1" 551 | resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-1.0.1.tgz#9122d406d4c9d98bea644a6b6853d5874b87b028" 552 | integrity sha1-kSLUBtTJ2YvqZEpraFPVh0uHsCg= 553 | 554 | file-uri-to-path@1.0.0: 555 | version "1.0.0" 556 | resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 557 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 558 | 559 | fill-range@^4.0.0: 560 | version "4.0.0" 561 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 562 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= 563 | dependencies: 564 | extend-shallow "^2.0.1" 565 | is-number "^3.0.0" 566 | repeat-string "^1.6.1" 567 | to-regex-range "^2.1.0" 568 | 569 | find-cache-dir@^3.0.0: 570 | version "3.3.1" 571 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" 572 | integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== 573 | dependencies: 574 | commondir "^1.0.1" 575 | make-dir "^3.0.2" 576 | pkg-dir "^4.1.0" 577 | 578 | find-up@^4.0.0: 579 | version "4.1.0" 580 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 581 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 582 | dependencies: 583 | locate-path "^5.0.0" 584 | path-exists "^4.0.0" 585 | 586 | for-in@^1.0.2: 587 | version "1.0.2" 588 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 589 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= 590 | 591 | fragment-cache@^0.2.1: 592 | version "0.2.1" 593 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 594 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= 595 | dependencies: 596 | map-cache "^0.2.2" 597 | 598 | fs-extra@8.1.0: 599 | version "8.1.0" 600 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 601 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 602 | dependencies: 603 | graceful-fs "^4.2.0" 604 | jsonfile "^4.0.0" 605 | universalify "^0.1.0" 606 | 607 | fs-extra@^0.30.0: 608 | version "0.30.0" 609 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" 610 | integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= 611 | dependencies: 612 | graceful-fs "^4.1.2" 613 | jsonfile "^2.1.0" 614 | klaw "^1.0.0" 615 | path-is-absolute "^1.0.0" 616 | rimraf "^2.2.8" 617 | 618 | fs.realpath@^1.0.0: 619 | version "1.0.0" 620 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 621 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 622 | 623 | fsevents@^1.2.7: 624 | version "1.2.13" 625 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" 626 | integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== 627 | dependencies: 628 | bindings "^1.5.0" 629 | nan "^2.12.1" 630 | 631 | function-bind@^1.1.1: 632 | version "1.1.1" 633 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 634 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 635 | 636 | get-value@^2.0.3, get-value@^2.0.6: 637 | version "2.0.6" 638 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 639 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= 640 | 641 | glob-parent@^3.1.0: 642 | version "3.1.0" 643 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 644 | integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= 645 | dependencies: 646 | is-glob "^3.1.0" 647 | path-dirname "^1.0.0" 648 | 649 | glob@^7.1.3: 650 | version "7.1.6" 651 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 652 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 653 | dependencies: 654 | fs.realpath "^1.0.0" 655 | inflight "^1.0.4" 656 | inherits "2" 657 | minimatch "^3.0.4" 658 | once "^1.3.0" 659 | path-is-absolute "^1.0.0" 660 | 661 | globals@^9.18.0: 662 | version "9.18.0" 663 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 664 | integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== 665 | 666 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: 667 | version "4.2.4" 668 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 669 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 670 | 671 | has-ansi@^2.0.0: 672 | version "2.0.0" 673 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 674 | integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= 675 | dependencies: 676 | ansi-regex "^2.0.0" 677 | 678 | has-value@^0.3.1: 679 | version "0.3.1" 680 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 681 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= 682 | dependencies: 683 | get-value "^2.0.3" 684 | has-values "^0.1.4" 685 | isobject "^2.0.0" 686 | 687 | has-value@^1.0.0: 688 | version "1.0.0" 689 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 690 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= 691 | dependencies: 692 | get-value "^2.0.6" 693 | has-values "^1.0.0" 694 | isobject "^3.0.0" 695 | 696 | has-values@^0.1.4: 697 | version "0.1.4" 698 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 699 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= 700 | 701 | has-values@^1.0.0: 702 | version "1.0.0" 703 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 704 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= 705 | dependencies: 706 | is-number "^3.0.0" 707 | kind-of "^4.0.0" 708 | 709 | has@^1.0.3: 710 | version "1.0.3" 711 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 712 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 713 | dependencies: 714 | function-bind "^1.1.1" 715 | 716 | home-or-tmp@^2.0.0: 717 | version "2.0.0" 718 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 719 | integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= 720 | dependencies: 721 | os-homedir "^1.0.0" 722 | os-tmpdir "^1.0.1" 723 | 724 | hyphenate-style-name@^1.0.2: 725 | version "1.0.4" 726 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" 727 | integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== 728 | 729 | inflight@^1.0.4: 730 | version "1.0.6" 731 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 732 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 733 | dependencies: 734 | once "^1.3.0" 735 | wrappy "1" 736 | 737 | inherits@2, inherits@^2.0.3, inherits@~2.0.3: 738 | version "2.0.4" 739 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 740 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 741 | 742 | inline-style-prefixer@^4.0.0: 743 | version "4.0.2" 744 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-4.0.2.tgz#d390957d26f281255fe101da863158ac6eb60911" 745 | integrity sha512-N8nVhwfYga9MiV9jWlwfdj1UDIaZlBFu4cJSJkIr7tZX7sHpHhGR5su1qdpW+7KPL8ISTvCIkcaFi/JdBknvPg== 746 | dependencies: 747 | bowser "^1.7.3" 748 | css-in-js-utils "^2.0.0" 749 | 750 | invariant@^2.2.2: 751 | version "2.2.4" 752 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 753 | integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== 754 | dependencies: 755 | loose-envify "^1.0.0" 756 | 757 | is-accessor-descriptor@^0.1.6: 758 | version "0.1.6" 759 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 760 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= 761 | dependencies: 762 | kind-of "^3.0.2" 763 | 764 | is-accessor-descriptor@^1.0.0: 765 | version "1.0.0" 766 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 767 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== 768 | dependencies: 769 | kind-of "^6.0.0" 770 | 771 | is-binary-path@^1.0.0: 772 | version "1.0.1" 773 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 774 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= 775 | dependencies: 776 | binary-extensions "^1.0.0" 777 | 778 | is-buffer@^1.1.5: 779 | version "1.1.6" 780 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 781 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 782 | 783 | is-core-module@^2.0.0: 784 | version "2.0.0" 785 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz#58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d" 786 | integrity sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw== 787 | dependencies: 788 | has "^1.0.3" 789 | 790 | is-data-descriptor@^0.1.4: 791 | version "0.1.4" 792 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 793 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= 794 | dependencies: 795 | kind-of "^3.0.2" 796 | 797 | is-data-descriptor@^1.0.0: 798 | version "1.0.0" 799 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 800 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== 801 | dependencies: 802 | kind-of "^6.0.0" 803 | 804 | is-descriptor@^0.1.0: 805 | version "0.1.6" 806 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 807 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== 808 | dependencies: 809 | is-accessor-descriptor "^0.1.6" 810 | is-data-descriptor "^0.1.4" 811 | kind-of "^5.0.0" 812 | 813 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 814 | version "1.0.2" 815 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 816 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== 817 | dependencies: 818 | is-accessor-descriptor "^1.0.0" 819 | is-data-descriptor "^1.0.0" 820 | kind-of "^6.0.2" 821 | 822 | is-extendable@^0.1.0, is-extendable@^0.1.1: 823 | version "0.1.1" 824 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 825 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 826 | 827 | is-extendable@^1.0.1: 828 | version "1.0.1" 829 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 830 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== 831 | dependencies: 832 | is-plain-object "^2.0.4" 833 | 834 | is-extglob@^2.1.0, is-extglob@^2.1.1: 835 | version "2.1.1" 836 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 837 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 838 | 839 | is-finite@^1.0.0: 840 | version "1.1.0" 841 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" 842 | integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== 843 | 844 | is-glob@^3.1.0: 845 | version "3.1.0" 846 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 847 | integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= 848 | dependencies: 849 | is-extglob "^2.1.0" 850 | 851 | is-glob@^4.0.0: 852 | version "4.0.1" 853 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 854 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 855 | dependencies: 856 | is-extglob "^2.1.1" 857 | 858 | is-number@^3.0.0: 859 | version "3.0.0" 860 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 861 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= 862 | dependencies: 863 | kind-of "^3.0.2" 864 | 865 | is-plain-object@^2.0.3, is-plain-object@^2.0.4: 866 | version "2.0.4" 867 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 868 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 869 | dependencies: 870 | isobject "^3.0.1" 871 | 872 | is-windows@^1.0.2: 873 | version "1.0.2" 874 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 875 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== 876 | 877 | isarray@1.0.0, isarray@~1.0.0: 878 | version "1.0.0" 879 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 880 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 881 | 882 | isobject@^2.0.0: 883 | version "2.1.0" 884 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 885 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 886 | dependencies: 887 | isarray "1.0.0" 888 | 889 | isobject@^3.0.0, isobject@^3.0.1: 890 | version "3.0.1" 891 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 892 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 893 | 894 | jotai@^0.10.1: 895 | version "0.10.1" 896 | resolved "https://registry.yarnpkg.com/jotai/-/jotai-0.10.1.tgz#d3b0bdb8495bd87909cfdc7e5f9ba0dfb74733f0" 897 | integrity sha512-3z2OQ4RlZk5s1+SI4Z5DPUILbABCvl+s0mxQfD/5YvEKQfbGghJZ6bwQTlHGB8Hq+eAou7zAoyEX4Z9PZ9oRFw== 898 | dependencies: 899 | use-context-selector "1.2.10" 900 | 901 | js-cookie@^2.2.1: 902 | version "2.2.1" 903 | resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" 904 | integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== 905 | 906 | "js-tokens@^3.0.0 || ^4.0.0": 907 | version "4.0.0" 908 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 909 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 910 | 911 | js-tokens@^3.0.2: 912 | version "3.0.2" 913 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 914 | integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= 915 | 916 | jsesc@^1.3.0: 917 | version "1.3.0" 918 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 919 | integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= 920 | 921 | json5@^0.5.1: 922 | version "0.5.1" 923 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 924 | integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= 925 | 926 | jsonfile@^2.1.0: 927 | version "2.4.0" 928 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" 929 | integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= 930 | optionalDependencies: 931 | graceful-fs "^4.1.6" 932 | 933 | jsonfile@^4.0.0: 934 | version "4.0.0" 935 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 936 | integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= 937 | optionalDependencies: 938 | graceful-fs "^4.1.6" 939 | 940 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 941 | version "3.2.2" 942 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 943 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 944 | dependencies: 945 | is-buffer "^1.1.5" 946 | 947 | kind-of@^4.0.0: 948 | version "4.0.0" 949 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 950 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= 951 | dependencies: 952 | is-buffer "^1.1.5" 953 | 954 | kind-of@^5.0.0: 955 | version "5.1.0" 956 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 957 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== 958 | 959 | kind-of@^6.0.0, kind-of@^6.0.2: 960 | version "6.0.3" 961 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 962 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 963 | 964 | klaw@^1.0.0: 965 | version "1.3.1" 966 | resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" 967 | integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= 968 | optionalDependencies: 969 | graceful-fs "^4.1.9" 970 | 971 | locate-path@^5.0.0: 972 | version "5.0.0" 973 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 974 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 975 | dependencies: 976 | p-locate "^4.1.0" 977 | 978 | lodash@^4.17.4: 979 | version "4.17.20" 980 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" 981 | integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== 982 | 983 | loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: 984 | version "1.4.0" 985 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 986 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 987 | dependencies: 988 | js-tokens "^3.0.0 || ^4.0.0" 989 | 990 | make-dir@^3.0.2: 991 | version "3.1.0" 992 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 993 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 994 | dependencies: 995 | semver "^6.0.0" 996 | 997 | map-cache@^0.2.2: 998 | version "0.2.2" 999 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 1000 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= 1001 | 1002 | map-visit@^1.0.0: 1003 | version "1.0.0" 1004 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 1005 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= 1006 | dependencies: 1007 | object-visit "^1.0.0" 1008 | 1009 | mdn-data@2.0.12: 1010 | version "2.0.12" 1011 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.12.tgz#bbb658d08b38f574bbb88f7b83703defdcc46844" 1012 | integrity sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q== 1013 | 1014 | micromatch@^3.1.10, micromatch@^3.1.4: 1015 | version "3.1.10" 1016 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 1017 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== 1018 | dependencies: 1019 | arr-diff "^4.0.0" 1020 | array-unique "^0.3.2" 1021 | braces "^2.3.1" 1022 | define-property "^2.0.2" 1023 | extend-shallow "^3.0.2" 1024 | extglob "^2.0.4" 1025 | fragment-cache "^0.2.1" 1026 | kind-of "^6.0.2" 1027 | nanomatch "^1.2.9" 1028 | object.pick "^1.3.0" 1029 | regex-not "^1.0.0" 1030 | snapdragon "^0.8.1" 1031 | to-regex "^3.0.2" 1032 | 1033 | minimatch@^3.0.4: 1034 | version "3.0.4" 1035 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1036 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1037 | dependencies: 1038 | brace-expansion "^1.1.7" 1039 | 1040 | minimist@^1.2.5: 1041 | version "1.2.5" 1042 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1043 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1044 | 1045 | mixin-deep@^1.2.0: 1046 | version "1.3.2" 1047 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" 1048 | integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== 1049 | dependencies: 1050 | for-in "^1.0.2" 1051 | is-extendable "^1.0.1" 1052 | 1053 | mkdirp@^0.5.1: 1054 | version "0.5.5" 1055 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 1056 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 1057 | dependencies: 1058 | minimist "^1.2.5" 1059 | 1060 | moment@*, moment@^2.29.1: 1061 | version "2.29.1" 1062 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" 1063 | integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== 1064 | 1065 | ms@2.0.0: 1066 | version "2.0.0" 1067 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1068 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1069 | 1070 | nan@^2.12.1: 1071 | version "2.14.2" 1072 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" 1073 | integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== 1074 | 1075 | nano-css@^5.2.1: 1076 | version "5.3.0" 1077 | resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.3.0.tgz#9d3cd29788d48b6a07f52aa4aec7cf4da427b6b5" 1078 | integrity sha512-uM/9NGK9/E9/sTpbIZ/bQ9xOLOIHZwrrb/CRlbDHBU/GFS7Gshl24v/WJhwsVViWkpOXUmiZ66XO7fSB4Wd92Q== 1079 | dependencies: 1080 | css-tree "^1.0.0-alpha.28" 1081 | csstype "^2.5.5" 1082 | fastest-stable-stringify "^1.0.1" 1083 | inline-style-prefixer "^4.0.0" 1084 | rtl-css-js "^1.9.0" 1085 | sourcemap-codec "^1.4.1" 1086 | stacktrace-js "^2.0.0" 1087 | stylis "3.5.0" 1088 | 1089 | nanomatch@^1.2.9: 1090 | version "1.2.13" 1091 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 1092 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== 1093 | dependencies: 1094 | arr-diff "^4.0.0" 1095 | array-unique "^0.3.2" 1096 | define-property "^2.0.2" 1097 | extend-shallow "^3.0.2" 1098 | fragment-cache "^0.2.1" 1099 | is-windows "^1.0.2" 1100 | kind-of "^6.0.2" 1101 | object.pick "^1.3.0" 1102 | regex-not "^1.0.0" 1103 | snapdragon "^0.8.1" 1104 | to-regex "^3.0.1" 1105 | 1106 | normalize-path@^2.1.1: 1107 | version "2.1.1" 1108 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1109 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= 1110 | dependencies: 1111 | remove-trailing-separator "^1.0.1" 1112 | 1113 | normalize-path@^3.0.0: 1114 | version "3.0.0" 1115 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1116 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1117 | 1118 | object-assign@^4.1.1: 1119 | version "4.1.1" 1120 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1121 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1122 | 1123 | object-copy@^0.1.0: 1124 | version "0.1.0" 1125 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 1126 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= 1127 | dependencies: 1128 | copy-descriptor "^0.1.0" 1129 | define-property "^0.2.5" 1130 | kind-of "^3.0.3" 1131 | 1132 | object-visit@^1.0.0: 1133 | version "1.0.1" 1134 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 1135 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= 1136 | dependencies: 1137 | isobject "^3.0.0" 1138 | 1139 | object.pick@^1.3.0: 1140 | version "1.3.0" 1141 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 1142 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= 1143 | dependencies: 1144 | isobject "^3.0.1" 1145 | 1146 | observable-hooks@^3.1.2: 1147 | version "3.1.2" 1148 | resolved "https://registry.yarnpkg.com/observable-hooks/-/observable-hooks-3.1.2.tgz#f76f04320467f706d16c6cfdee343fc4a52aa7fc" 1149 | integrity sha512-RJRDg5WgqmKz88hPsW/u91buUSICpcSxgm8c792HkF01lHNAtuqOzI/rQM11TNjcXQY6iKIbpPW+WqO7Ggiohg== 1150 | 1151 | once@^1.3.0: 1152 | version "1.4.0" 1153 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1154 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1155 | dependencies: 1156 | wrappy "1" 1157 | 1158 | os-homedir@^1.0.0: 1159 | version "1.0.2" 1160 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1161 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= 1162 | 1163 | os-tmpdir@^1.0.1: 1164 | version "1.0.2" 1165 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1166 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 1167 | 1168 | p-limit@^2.2.0: 1169 | version "2.3.0" 1170 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1171 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1172 | dependencies: 1173 | p-try "^2.0.0" 1174 | 1175 | p-locate@^4.1.0: 1176 | version "4.1.0" 1177 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1178 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1179 | dependencies: 1180 | p-limit "^2.2.0" 1181 | 1182 | p-try@^2.0.0: 1183 | version "2.2.0" 1184 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1185 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1186 | 1187 | pascalcase@^0.1.1: 1188 | version "0.1.1" 1189 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 1190 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= 1191 | 1192 | path-dirname@^1.0.0: 1193 | version "1.0.2" 1194 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 1195 | integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= 1196 | 1197 | path-exists@^4.0.0: 1198 | version "4.0.0" 1199 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1200 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1201 | 1202 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: 1203 | version "1.0.1" 1204 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1205 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1206 | 1207 | path-parse@^1.0.6: 1208 | version "1.0.6" 1209 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1210 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 1211 | 1212 | pify@^3.0.0: 1213 | version "3.0.0" 1214 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1215 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 1216 | 1217 | pkg-dir@^4.1.0: 1218 | version "4.2.0" 1219 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 1220 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 1221 | dependencies: 1222 | find-up "^4.0.0" 1223 | 1224 | posix-character-classes@^0.1.0: 1225 | version "0.1.1" 1226 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 1227 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= 1228 | 1229 | private@^0.1.8: 1230 | version "0.1.8" 1231 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 1232 | integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== 1233 | 1234 | process-nextick-args@~2.0.0: 1235 | version "2.0.1" 1236 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 1237 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1238 | 1239 | prop-types@^15.6.2: 1240 | version "15.7.2" 1241 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 1242 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 1243 | dependencies: 1244 | loose-envify "^1.4.0" 1245 | object-assign "^4.1.1" 1246 | react-is "^16.8.1" 1247 | 1248 | react-dom@^16.12.0: 1249 | version "16.14.0" 1250 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" 1251 | integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== 1252 | dependencies: 1253 | loose-envify "^1.1.0" 1254 | object-assign "^4.1.1" 1255 | prop-types "^15.6.2" 1256 | scheduler "^0.19.1" 1257 | 1258 | react-is@^16.8.1: 1259 | version "16.13.1" 1260 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 1261 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1262 | 1263 | react-universal-interface@^0.6.2: 1264 | version "0.6.2" 1265 | resolved "https://registry.yarnpkg.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" 1266 | integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== 1267 | 1268 | react-use@^15.3.4: 1269 | version "15.3.4" 1270 | resolved "https://registry.yarnpkg.com/react-use/-/react-use-15.3.4.tgz#f853d310bd71f75b38900a8caa3db93f6dc6e872" 1271 | integrity sha512-cHq1dELW6122oi1+xX7lwNyE/ugZs5L902BuO8eFJCfn2api1KeuPVG1M/GJouVARoUf54S2dYFMKo5nQXdTag== 1272 | dependencies: 1273 | "@types/js-cookie" "2.2.6" 1274 | "@xobotyi/scrollbar-width" "1.9.5" 1275 | copy-to-clipboard "^3.2.0" 1276 | fast-deep-equal "^3.1.3" 1277 | fast-shallow-equal "^1.0.0" 1278 | js-cookie "^2.2.1" 1279 | nano-css "^5.2.1" 1280 | react-universal-interface "^0.6.2" 1281 | resize-observer-polyfill "^1.5.1" 1282 | screenfull "^5.0.0" 1283 | set-harmonic-interval "^1.0.1" 1284 | throttle-debounce "^2.1.0" 1285 | ts-easing "^0.2.0" 1286 | tslib "^2.0.0" 1287 | 1288 | react@^16.12.0: 1289 | version "16.14.0" 1290 | resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" 1291 | integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== 1292 | dependencies: 1293 | loose-envify "^1.1.0" 1294 | object-assign "^4.1.1" 1295 | prop-types "^15.6.2" 1296 | 1297 | readable-stream@^2.0.2: 1298 | version "2.3.7" 1299 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 1300 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 1301 | dependencies: 1302 | core-util-is "~1.0.0" 1303 | inherits "~2.0.3" 1304 | isarray "~1.0.0" 1305 | process-nextick-args "~2.0.0" 1306 | safe-buffer "~5.1.1" 1307 | string_decoder "~1.1.1" 1308 | util-deprecate "~1.0.1" 1309 | 1310 | readdirp@^2.2.1: 1311 | version "2.2.1" 1312 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" 1313 | integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== 1314 | dependencies: 1315 | graceful-fs "^4.1.11" 1316 | micromatch "^3.1.10" 1317 | readable-stream "^2.0.2" 1318 | 1319 | regenerator-runtime@^0.11.0: 1320 | version "0.11.1" 1321 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 1322 | integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== 1323 | 1324 | regenerator-runtime@^0.13.4: 1325 | version "0.13.7" 1326 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" 1327 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== 1328 | 1329 | regex-not@^1.0.0, regex-not@^1.0.2: 1330 | version "1.0.2" 1331 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 1332 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== 1333 | dependencies: 1334 | extend-shallow "^3.0.2" 1335 | safe-regex "^1.1.0" 1336 | 1337 | remove-trailing-separator@^1.0.1: 1338 | version "1.1.0" 1339 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 1340 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= 1341 | 1342 | repeat-element@^1.1.2: 1343 | version "1.1.3" 1344 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" 1345 | integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== 1346 | 1347 | repeat-string@^1.6.1: 1348 | version "1.6.1" 1349 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1350 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= 1351 | 1352 | repeating@^2.0.0: 1353 | version "2.0.1" 1354 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 1355 | integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= 1356 | dependencies: 1357 | is-finite "^1.0.0" 1358 | 1359 | resize-observer-polyfill@^1.5.1: 1360 | version "1.5.1" 1361 | resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" 1362 | integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== 1363 | 1364 | resolve-url@^0.2.1: 1365 | version "0.2.1" 1366 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 1367 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= 1368 | 1369 | resolve@1.12.0: 1370 | version "1.12.0" 1371 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" 1372 | integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== 1373 | dependencies: 1374 | path-parse "^1.0.6" 1375 | 1376 | resolve@^1.5.0: 1377 | version "1.18.1" 1378 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" 1379 | integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== 1380 | dependencies: 1381 | is-core-module "^2.0.0" 1382 | path-parse "^1.0.6" 1383 | 1384 | ret@~0.1.10: 1385 | version "0.1.15" 1386 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 1387 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== 1388 | 1389 | rimraf@^2.2.8: 1390 | version "2.7.1" 1391 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 1392 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 1393 | dependencies: 1394 | glob "^7.1.3" 1395 | 1396 | rollup-plugin-sass@^1.2.2: 1397 | version "1.2.2" 1398 | resolved "https://registry.yarnpkg.com/rollup-plugin-sass/-/rollup-plugin-sass-1.2.2.tgz#f03cd2b1bee497dc2cc845fae2c5749611fc008f" 1399 | integrity sha512-yvHQPg1JS4d23gwHTwTbokH+FV/0bPBVf5QmlvCOzfAhXe0luY0pUgVaWC2qfnoKetp2Oqh5lK7oW/4CXGWs1Q== 1400 | dependencies: 1401 | babel-runtime "^6.23.0" 1402 | fs-extra "^0.30.0" 1403 | pify "^3.0.0" 1404 | resolve "^1.5.0" 1405 | rollup-pluginutils ">= 1.3.1" 1406 | sass "1.7.2" 1407 | 1408 | rollup-plugin-typescript2@^0.25.3: 1409 | version "0.25.3" 1410 | resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.25.3.tgz#a5fb2f0f85488789334ce540abe6c7011cbdf40f" 1411 | integrity sha512-ADkSaidKBovJmf5VBnZBZe+WzaZwofuvYdzGAKTN/J4hN7QJCFYAq7IrH9caxlru6T5qhX41PNFS1S4HqhsGQg== 1412 | dependencies: 1413 | find-cache-dir "^3.0.0" 1414 | fs-extra "8.1.0" 1415 | resolve "1.12.0" 1416 | rollup-pluginutils "2.8.1" 1417 | tslib "1.10.0" 1418 | 1419 | rollup-pluginutils@2.8.1: 1420 | version "2.8.1" 1421 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz#8fa6dd0697344938ef26c2c09d2488ce9e33ce97" 1422 | integrity sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg== 1423 | dependencies: 1424 | estree-walker "^0.6.1" 1425 | 1426 | "rollup-pluginutils@>= 1.3.1": 1427 | version "2.8.2" 1428 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" 1429 | integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 1430 | dependencies: 1431 | estree-walker "^0.6.1" 1432 | 1433 | rollup@^1.29.0: 1434 | version "1.32.1" 1435 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" 1436 | integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== 1437 | dependencies: 1438 | "@types/estree" "*" 1439 | "@types/node" "*" 1440 | acorn "^7.1.0" 1441 | 1442 | rtl-css-js@^1.9.0: 1443 | version "1.14.0" 1444 | resolved "https://registry.yarnpkg.com/rtl-css-js/-/rtl-css-js-1.14.0.tgz#daa4f192a92509e292a0519f4b255e6e3c076b7d" 1445 | integrity sha512-Dl5xDTeN3e7scU1cWX8c9b6/Nqz3u/HgR4gePc1kWXYiQWVQbKCEyK6+Hxve9LbcJ5EieHy1J9nJCN3grTtGwg== 1446 | dependencies: 1447 | "@babel/runtime" "^7.1.2" 1448 | 1449 | rxjs@^6.6.3: 1450 | version "6.6.3" 1451 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" 1452 | integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== 1453 | dependencies: 1454 | tslib "^1.9.0" 1455 | 1456 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1457 | version "5.1.2" 1458 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1459 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1460 | 1461 | safe-regex@^1.1.0: 1462 | version "1.1.0" 1463 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 1464 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= 1465 | dependencies: 1466 | ret "~0.1.10" 1467 | 1468 | sass@1.7.2: 1469 | version "1.7.2" 1470 | resolved "https://registry.yarnpkg.com/sass/-/sass-1.7.2.tgz#a8ff878ad9dcba65e226c1ccb2c2f3c7a1009578" 1471 | integrity sha512-zUm2NXL77WtQDbp4MKgysAxH41Fzs5BnBUogEPi8IKNQ1M5rKoFe46YBXfxr0I+cQX+xbSc//psSdq5eyYhJsg== 1472 | dependencies: 1473 | chokidar "^2.0.0" 1474 | 1475 | scheduler@^0.19.1: 1476 | version "0.19.1" 1477 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" 1478 | integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== 1479 | dependencies: 1480 | loose-envify "^1.1.0" 1481 | object-assign "^4.1.1" 1482 | 1483 | screenfull@^5.0.0: 1484 | version "5.0.2" 1485 | resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.0.2.tgz#b9acdcf1ec676a948674df5cd0ff66b902b0bed7" 1486 | integrity sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ== 1487 | 1488 | semver@^6.0.0: 1489 | version "6.3.0" 1490 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1491 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1492 | 1493 | set-harmonic-interval@^1.0.1: 1494 | version "1.0.1" 1495 | resolved "https://registry.yarnpkg.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" 1496 | integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== 1497 | 1498 | set-value@^2.0.0, set-value@^2.0.1: 1499 | version "2.0.1" 1500 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" 1501 | integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== 1502 | dependencies: 1503 | extend-shallow "^2.0.1" 1504 | is-extendable "^0.1.1" 1505 | is-plain-object "^2.0.3" 1506 | split-string "^3.0.1" 1507 | 1508 | slash@^1.0.0: 1509 | version "1.0.0" 1510 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 1511 | integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= 1512 | 1513 | snapdragon-node@^2.0.1: 1514 | version "2.1.1" 1515 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 1516 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== 1517 | dependencies: 1518 | define-property "^1.0.0" 1519 | isobject "^3.0.0" 1520 | snapdragon-util "^3.0.1" 1521 | 1522 | snapdragon-util@^3.0.1: 1523 | version "3.0.1" 1524 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 1525 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== 1526 | dependencies: 1527 | kind-of "^3.2.0" 1528 | 1529 | snapdragon@^0.8.1: 1530 | version "0.8.2" 1531 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 1532 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== 1533 | dependencies: 1534 | base "^0.11.1" 1535 | debug "^2.2.0" 1536 | define-property "^0.2.5" 1537 | extend-shallow "^2.0.1" 1538 | map-cache "^0.2.2" 1539 | source-map "^0.5.6" 1540 | source-map-resolve "^0.5.0" 1541 | use "^3.1.0" 1542 | 1543 | source-map-resolve@^0.5.0: 1544 | version "0.5.3" 1545 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" 1546 | integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== 1547 | dependencies: 1548 | atob "^2.1.2" 1549 | decode-uri-component "^0.2.0" 1550 | resolve-url "^0.2.1" 1551 | source-map-url "^0.4.0" 1552 | urix "^0.1.0" 1553 | 1554 | source-map-support@^0.4.15: 1555 | version "0.4.18" 1556 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 1557 | integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== 1558 | dependencies: 1559 | source-map "^0.5.6" 1560 | 1561 | source-map-url@^0.4.0: 1562 | version "0.4.0" 1563 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 1564 | integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= 1565 | 1566 | source-map@0.5.6: 1567 | version "0.5.6" 1568 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 1569 | integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= 1570 | 1571 | source-map@^0.5.6, source-map@^0.5.7: 1572 | version "0.5.7" 1573 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1574 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 1575 | 1576 | source-map@^0.6.1: 1577 | version "0.6.1" 1578 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1579 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1580 | 1581 | sourcemap-codec@^1.4.1: 1582 | version "1.4.8" 1583 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 1584 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1585 | 1586 | split-string@^3.0.1, split-string@^3.0.2: 1587 | version "3.1.0" 1588 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 1589 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== 1590 | dependencies: 1591 | extend-shallow "^3.0.0" 1592 | 1593 | stack-generator@^2.0.5: 1594 | version "2.0.5" 1595 | resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36" 1596 | integrity sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q== 1597 | dependencies: 1598 | stackframe "^1.1.1" 1599 | 1600 | stackframe@^1.1.1: 1601 | version "1.2.0" 1602 | resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" 1603 | integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== 1604 | 1605 | stacktrace-gps@^3.0.4: 1606 | version "3.0.4" 1607 | resolved "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz#7688dc2fc09ffb3a13165ebe0dbcaf41bcf0c69a" 1608 | integrity sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg== 1609 | dependencies: 1610 | source-map "0.5.6" 1611 | stackframe "^1.1.1" 1612 | 1613 | stacktrace-js@^2.0.0: 1614 | version "2.0.2" 1615 | resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b" 1616 | integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== 1617 | dependencies: 1618 | error-stack-parser "^2.0.6" 1619 | stack-generator "^2.0.5" 1620 | stacktrace-gps "^3.0.4" 1621 | 1622 | static-extend@^0.1.1: 1623 | version "0.1.2" 1624 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 1625 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= 1626 | dependencies: 1627 | define-property "^0.2.5" 1628 | object-copy "^0.1.0" 1629 | 1630 | string_decoder@~1.1.1: 1631 | version "1.1.1" 1632 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1633 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1634 | dependencies: 1635 | safe-buffer "~5.1.0" 1636 | 1637 | strip-ansi@^3.0.0: 1638 | version "3.0.1" 1639 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1640 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 1641 | dependencies: 1642 | ansi-regex "^2.0.0" 1643 | 1644 | stylis@3.5.0: 1645 | version "3.5.0" 1646 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.0.tgz#016fa239663d77f868fef5b67cf201c4b7c701e1" 1647 | integrity sha512-pP7yXN6dwMzAR29Q0mBrabPCe0/mNO1MSr93bhay+hcZondvMMTpeGyd8nbhYJdyperNT2DRxONQuUGcJr5iPw== 1648 | 1649 | supports-color@^2.0.0: 1650 | version "2.0.0" 1651 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1652 | integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= 1653 | 1654 | throttle-debounce@^2.1.0: 1655 | version "2.3.0" 1656 | resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.3.0.tgz#fd31865e66502071e411817e241465b3e9c372e2" 1657 | integrity sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ== 1658 | 1659 | to-fast-properties@^1.0.3: 1660 | version "1.0.3" 1661 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 1662 | integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= 1663 | 1664 | to-object-path@^0.3.0: 1665 | version "0.3.0" 1666 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 1667 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= 1668 | dependencies: 1669 | kind-of "^3.0.2" 1670 | 1671 | to-regex-range@^2.1.0: 1672 | version "2.1.1" 1673 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 1674 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= 1675 | dependencies: 1676 | is-number "^3.0.0" 1677 | repeat-string "^1.6.1" 1678 | 1679 | to-regex@^3.0.1, to-regex@^3.0.2: 1680 | version "3.0.2" 1681 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 1682 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== 1683 | dependencies: 1684 | define-property "^2.0.2" 1685 | extend-shallow "^3.0.2" 1686 | regex-not "^1.0.2" 1687 | safe-regex "^1.1.0" 1688 | 1689 | toggle-selection@^1.0.6: 1690 | version "1.0.6" 1691 | resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" 1692 | integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= 1693 | 1694 | trim-right@^1.0.1: 1695 | version "1.0.1" 1696 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 1697 | integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= 1698 | 1699 | ts-easing@^0.2.0: 1700 | version "0.2.0" 1701 | resolved "https://registry.yarnpkg.com/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" 1702 | integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== 1703 | 1704 | tslib@1.10.0: 1705 | version "1.10.0" 1706 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" 1707 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== 1708 | 1709 | tslib@^1.9.0: 1710 | version "1.14.1" 1711 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1712 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 1713 | 1714 | tslib@^2.0.0: 1715 | version "2.0.3" 1716 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" 1717 | integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== 1718 | 1719 | typescript@^4.0.0: 1720 | version "4.0.5" 1721 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" 1722 | integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== 1723 | 1724 | union-value@^1.0.0: 1725 | version "1.0.1" 1726 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" 1727 | integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== 1728 | dependencies: 1729 | arr-union "^3.1.0" 1730 | get-value "^2.0.6" 1731 | is-extendable "^0.1.1" 1732 | set-value "^2.0.1" 1733 | 1734 | universalify@^0.1.0: 1735 | version "0.1.2" 1736 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 1737 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 1738 | 1739 | unset-value@^1.0.0: 1740 | version "1.0.0" 1741 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 1742 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= 1743 | dependencies: 1744 | has-value "^0.3.1" 1745 | isobject "^3.0.0" 1746 | 1747 | upath@^1.1.1: 1748 | version "1.2.0" 1749 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" 1750 | integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== 1751 | 1752 | urix@^0.1.0: 1753 | version "0.1.0" 1754 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 1755 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 1756 | 1757 | use-context-selector@1.2.10: 1758 | version "1.2.10" 1759 | resolved "https://registry.yarnpkg.com/use-context-selector/-/use-context-selector-1.2.10.tgz#47230099cd381119ae1c0f4a44737f336932aec0" 1760 | integrity sha512-gSKcvwl2I683GY5JG/ixsVDeVsIdEdLJz3ccl7y1KaKJqXitX2PjC0Z1F0LEtni1pc7u1J3cy5dHT8+MI69naA== 1761 | 1762 | use@^3.1.0: 1763 | version "3.1.1" 1764 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 1765 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== 1766 | 1767 | util-deprecate@~1.0.1: 1768 | version "1.0.2" 1769 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1770 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1771 | 1772 | wrappy@1: 1773 | version "1.0.2" 1774 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1775 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1776 | --------------------------------------------------------------------------------