├── .npmignore ├── example ├── assets │ ├── icon.png │ ├── favicon.png │ ├── splash.png │ └── adaptive-icon.png ├── babel.config.js ├── .gitignore ├── .expo-shared │ └── assets.json ├── tsconfig.eslint.json ├── tsconfig.json ├── app.json ├── package.json ├── App.tsx └── .eslintrc.js ├── tsconfig-build.json ├── LICENSE ├── package.json ├── .gitignore ├── .eslintrc.js ├── README.md ├── tsconfig.json ├── src └── index.ts ├── test └── test.js └── yarn.lock /.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | example/ -------------------------------------------------------------------------------- /example/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AwesomeLabs/react-native-format-currency/HEAD/example/assets/icon.png -------------------------------------------------------------------------------- /tsconfig-build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "exclude": [ 4 | "example/**/*" 5 | ] 6 | } -------------------------------------------------------------------------------- /example/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AwesomeLabs/react-native-format-currency/HEAD/example/assets/favicon.png -------------------------------------------------------------------------------- /example/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AwesomeLabs/react-native-format-currency/HEAD/example/assets/splash.png -------------------------------------------------------------------------------- /example/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AwesomeLabs/react-native-format-currency/HEAD/example/assets/adaptive-icon.png -------------------------------------------------------------------------------- /example/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api.cache(true); 3 | return { 4 | presets: ["babel-preset-expo"], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .expo/ 3 | npm-debug.* 4 | *.jks 5 | *.p8 6 | *.p12 7 | *.key 8 | *.mobileprovision 9 | *.orig.* 10 | web-build/ 11 | 12 | # macOS 13 | .DS_Store 14 | -------------------------------------------------------------------------------- /example/.expo-shared/assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, 3 | "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true 4 | } 5 | -------------------------------------------------------------------------------- /example/tsconfig.eslint.json: -------------------------------------------------------------------------------- 1 | // Allows linting of files not included by default in tsconfig. 2 | // https://stackoverflow.com/a/68686975/25197 3 | 4 | { 5 | "include": [".eslintrc.js"] 6 | } 7 | -------------------------------------------------------------------------------- /example/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "expo/tsconfig.base", 3 | "compilerOptions": { 4 | "allowSyntheticDefaultImports": true, 5 | "allowUnreachableCode": true, 6 | "baseUrl": ".", 7 | "module": "esnext", 8 | "noErrorTruncation": true, 9 | "noUnusedLocals": true, 10 | "skipLibCheck": true, 11 | "target": "ESNext", 12 | "paths": { 13 | "~/*": ["./*"] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /example/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo": { 3 | "name": "react-native-format-currency example app", 4 | "slug": "react-native-format-currency-example", 5 | "description": "Sample app to demo react-native-format-currency https://github.com/AwesomeLabs/react-native-format-currency", 6 | "version": "1.0.0", 7 | "orientation": "portrait", 8 | "icon": "./assets/icon.png", 9 | "splash": { 10 | "image": "./assets/splash.png", 11 | "resizeMode": "contain", 12 | "backgroundColor": "#ffffff" 13 | }, 14 | "updates": { 15 | "fallbackToCacheTimeout": 0 16 | }, 17 | "assetBundlePatterns": ["**/*"], 18 | "ios": { 19 | "supportsTablet": true 20 | }, 21 | "android": { 22 | "adaptiveIcon": { 23 | "foregroundImage": "./assets/adaptive-icon.png", 24 | "backgroundColor": "#FFFFFF" 25 | } 26 | }, 27 | "web": { 28 | "favicon": "./assets/favicon.png" 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 AwesomeLabs 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "node_modules/expo/AppEntry.js", 3 | "scripts": { 4 | "start": "expo start", 5 | "android": "expo start --android", 6 | "ios": "expo start --ios", 7 | "web": "expo start --web", 8 | "eject": "expo eject", 9 | "lint": "eslint . --ext .ts --ext .tsx", 10 | "lint-fix": "eslint . --ext .ts --ext .tsx --fix" 11 | }, 12 | "dependencies": { 13 | "expo": "^45.0.0", 14 | "expo-status-bar": "~1.3.0", 15 | "react": "17.0.2", 16 | "react-dom": "17.0.2", 17 | "react-native": "0.68.2", 18 | "react-native-format-currency": "file:../src/", 19 | "react-native-web": "0.17.7" 20 | }, 21 | "devDependencies": { 22 | "@babel/core": "^7.12.9", 23 | "@types/react": "~17.0.21", 24 | "@types/react-native": "~0.67.6", 25 | "@typescript-eslint/eslint-plugin": "^5.31.0", 26 | "@typescript-eslint/parser": "^5.31.0", 27 | "eslint": "^8.20.0", 28 | "eslint-config-airbnb": "^19.0.4", 29 | "eslint-config-airbnb-typescript": "^17.0.0", 30 | "eslint-plugin-import": "^2.26.0", 31 | "eslint-plugin-jsx-a11y": "^6.6.1", 32 | "eslint-plugin-react": "^7.30.1", 33 | "eslint-plugin-react-hooks": "^4.6.0", 34 | "eslint-plugin-react-native": "^4.0.0", 35 | "typescript": "~4.3.5" 36 | }, 37 | "private": true 38 | } 39 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-format-currency", 3 | "version": "0.0.4", 4 | "description": "A lightweight international currency formatter for React Native & Expo (iOS and Android).", 5 | "main": "dist/index.js", 6 | "types": "dist/index.d.ts", 7 | "scripts": { 8 | "build": "tsc -p tsconfig-build.json", 9 | "test": "mocha --reporter spec", 10 | "lint": "eslint . --ext .ts --ext .tsx", 11 | "lint-fix": "eslint . --ext .ts --ext .tsx --fix" 12 | }, 13 | "repository": "git+https://github.com/AwesomeLabs/react-native-format-currency.git", 14 | "author": "Awesome Labs (https://isjustawesome.com)", 15 | "license": "ISC", 16 | "keywords": [ 17 | "react-native", 18 | "react native", 19 | "reactnative", 20 | "expo", 21 | "ios", 22 | "android", 23 | "currency", 24 | "formatter" 25 | ], 26 | "bugs": { 27 | "url": "https://github.com/AwesomeLabs/react-native-format-currency/issues" 28 | }, 29 | "homepage": "https://github.com/AwesomeLabs/react-native-format-currency#readme", 30 | "devDependencies": { 31 | "@types/node": "^16.9.0", 32 | "@typescript-eslint/eslint-plugin": "^5.31.0", 33 | "@typescript-eslint/parser": "^5.31.0", 34 | "chai": "^4.3.4", 35 | "eslint": "^8.20.0", 36 | "eslint-config-airbnb": "^19.0.4", 37 | "eslint-config-airbnb-typescript": "^17.0.0", 38 | "eslint-config-prettier": "^8.5.0", 39 | "eslint-plugin-import": "^2.26.0", 40 | "eslint-plugin-jsx-a11y": "^6.6.1", 41 | "eslint-plugin-prettier": "^4.2.1", 42 | "eslint-plugin-react": "^7.30.1", 43 | "eslint-plugin-react-hooks": "^4.6.0", 44 | "eslint-plugin-react-native": "^4.0.0", 45 | "mocha": "^9.1.1", 46 | "prettier": "^2.7.1", 47 | "typescript": "^4.4.2" 48 | }, 49 | "dependencies": {} 50 | } 51 | -------------------------------------------------------------------------------- /.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 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /example/App.tsx: -------------------------------------------------------------------------------- 1 | import { StatusBar } from "expo-status-bar"; 2 | import React, { useState } from "react"; 3 | import { 4 | FlatList, 5 | SafeAreaView, 6 | StyleSheet, 7 | Text, 8 | TextInput, 9 | View, 10 | } from "react-native"; 11 | import { 12 | formatCurrency, 13 | getSupportedCurrencies, 14 | } from "react-native-format-currency"; 15 | 16 | const bgColorPrimary = "#fff"; 17 | const bgColorSecondary = "#eee"; 18 | const fgColorPrimary = "#000"; 19 | 20 | const styles = StyleSheet.create({ 21 | container: { 22 | alignItems: "flex-start", 23 | backgroundColor: bgColorPrimary, 24 | flex: 1, 25 | }, 26 | currencyRow: { 27 | flex: 1, 28 | flexDirection: "row", 29 | justifyContent: "space-between", 30 | }, 31 | currencyRowText: { 32 | alignContent: "flex-start", 33 | color: fgColorPrimary, 34 | fontSize: 16, 35 | }, 36 | input: { 37 | backgroundColor: bgColorSecondary, 38 | fontSize: 30, 39 | fontWeight: "bold", 40 | height: 38, 41 | }, 42 | inputContainer: { 43 | alignSelf: "stretch", 44 | flex: 1, 45 | marginBottom: 15, 46 | marginTop: 10, 47 | }, 48 | scrollView: { 49 | marginBottom: 40, 50 | marginTop: 40, 51 | paddingHorizontal: 5, 52 | width: "100%", 53 | }, 54 | }); 55 | 56 | const App = () => { 57 | const [inputValue, setInputValue] = useState("1234.56"); 58 | 59 | const currencyCodes = getSupportedCurrencies(); 60 | 61 | const renderItem = ({ item }) => { 62 | const [valueFormattedWithSymbol, valueFormattedWithoutSymbol, symbol] = 63 | formatCurrency({ amount: Number(inputValue), code: item.code }); 64 | 65 | return ( 66 | 67 | 68 | {item.code} {symbol} 69 | 70 | {item.name} 71 | {valueFormattedWithSymbol} 72 | 73 | ); 74 | }; 75 | 76 | return ( 77 | 78 | 79 | setInputValue(value)} 84 | keyboardType="decimal-pad" 85 | /> 86 | 87 | 88 | code.code} 93 | /> 94 | 95 | 96 | ); 97 | }; 98 | export default App; 99 | -------------------------------------------------------------------------------- /example/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parser: "@typescript-eslint/parser", 3 | parserOptions: { 4 | ecmaVersion: "latest", 5 | project: ["./tsconfig.json", "./tsconfig.eslint.json"], 6 | }, 7 | plugins: ["prettier"], 8 | extends: [ 9 | "airbnb", // https://github.com/airbnb/javascript 10 | "airbnb/hooks", // https://github.com/airbnb/javascript 11 | "airbnb-typescript", // https://github.com/iamturns/eslint-config-airbnb-typescript 12 | "plugin:react-native/all", // https://github.com/intellicode/eslint-plugin-react-native 13 | "prettier", 14 | ], 15 | rules: { 16 | "prettier/prettier": "warn", 17 | "import/prefer-default-export": "off", 18 | "import/extensions": "off", // https://stackoverflow.com/a/59268871 19 | "import/no-extraneous-dependencies": [ 20 | "error", 21 | { devDependencies: ["**/*test.*"] }, 22 | ], // allow devDependency imports in test files. https://stackoverflow.com/a/55863857/25197 23 | 24 | // ::: TypeScript 25 | "@typescript-eslint/no-unused-vars": ["off", { ignoreRestSiblings: true }], // allow unused variables when using a rest property. https://stackoverflow.com/q/56151661/25197 26 | 27 | // ::: ESlint 28 | "arrow-body-style": "off", // Allow commented out console logs in arrow bodies. 29 | camelcase: "off", // We're forced to use snake_case for graphql and Auth0 response. 30 | "global-require": "off", // Allow inline requires() for Expo asset imports. 31 | "no-param-reassign": ["error", { props: false }], // Allow param reassignment because we use it for easy-peasy state. https://stackoverflow.com/a/42399879 32 | "no-unreachable": "warn", // turned off in tsconfig.json and added here so code doesn't get deleted by --autofix command. 33 | "consistent-return": "off", // we allow multiple returns via "guard statements". https://stackoverflow.com/q/36707/25197 34 | "no-underscore-dangle": ["error", { allow: ["_forTesting"] }], // allow for exporting to unit tests. https://stackoverflow.com/a/65422568/25197 35 | "no-restricted-exports": "off", // TODO: turn this back on and refactor default exports. 36 | 37 | // ::: React 38 | "react/function-component-definition": [ 39 | "error", 40 | { namedComponents: "arrow-function" }, 41 | ], // use named arrow functions for components. https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/function-component-definition.md 42 | "react/require-default-props": "off", // Waiting on setting once this is settled. https://github.com/reactjs/rfcs/pull/107 43 | "react/prop-types": "off", // Let Typescript handle all type issues. 44 | "react/jsx-props-no-spreading": "off", // Meant to protect against unwanted/unintended props are being passed to the component but we do it all the time. 45 | 46 | // ::: React Native 47 | "react-native/no-raw-text": "off", // NativeBase has components that accept raw text. 48 | "react-native/no-inline-styles": "off", // NativeBase is only inline styling. 49 | }, 50 | }; 51 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parser: "@typescript-eslint/parser", 3 | parserOptions: { 4 | ecmaVersion: "latest", 5 | project: ["./tsconfig.json", "./tsconfig-build.json"], 6 | }, 7 | plugins: [ 8 | "prettier", // added so we can access the rule to turn on warnings. 9 | ], 10 | extends: [ 11 | "airbnb", // https://github.com/airbnb/javascript 12 | "airbnb/hooks", // https://github.com/airbnb/javascript 13 | "airbnb-typescript", // https://github.com/iamturns/eslint-config-airbnb-typescript 14 | "plugin:react-native/all", // https://github.com/intellicode/eslint-plugin-react-native 15 | "prettier", 16 | ], 17 | rules: { 18 | "prettier/prettier": "warn", // show what's going to be fixed with prettier. 19 | "import/prefer-default-export": "off", 20 | "import/extensions": "off", // https://stackoverflow.com/a/59268871 21 | "import/no-extraneous-dependencies": [ 22 | "error", 23 | { devDependencies: ["**/*test.*"] }, 24 | ], // allow devDependency imports in test files. https://stackoverflow.com/a/55863857/25197 25 | 26 | // ::: TypeScript 27 | "@typescript-eslint/no-unused-vars": ["off", { ignoreRestSiblings: true }], // allow unused variables when using a rest property. https://stackoverflow.com/q/56151661/25197 28 | 29 | // ::: ESlint 30 | // 'arrow-body-style': 'off', // Allow commented out console logs in arrow bodies. 31 | // camelcase: 'off', // We're forced to use snake_case for graphql and Auth0 response. 32 | // 'global-require': 'off', // Allow inline requires() for Expo asset imports. 33 | // 'no-param-reassign': ['error', { props: false }], // Allow param reassignment because we use it for easy-peasy state. https://stackoverflow.com/a/42399879 34 | // 'no-unreachable': 'warn', // turned off in tsconfig.json and added here so code doesn't get deleted by --autofix command. 35 | // 'consistent-return': 'off', // we allow multiple returns via "guard statements". https://stackoverflow.com/q/36707/25197 36 | // 'no-underscore-dangle': ['error', { allow: ['_forTesting'] }], // allow for exporting to unit tests. https://stackoverflow.com/a/65422568/25197 37 | // 'no-restricted-exports': 'off', // TODO: turn this back on and refactor default exports. 38 | 39 | // // ::: React 40 | // 'react/function-component-definition': ['error', { namedComponents: 'arrow-function' }], // use named arrow functions for components. https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/function-component-definition.md 41 | // 'react/require-default-props': 'off', // Waiting on setting once this is settled. https://github.com/reactjs/rfcs/pull/107 42 | // 'react/prop-types': 'off', // Let Typescript handle all type issues. 43 | // 'react/jsx-props-no-spreading': 'off', // Meant to protect against unwanted/unintended props are being passed to the component but we do it all the time. 44 | 45 | // // ::: React Native 46 | // 'react-native/no-raw-text': 'off', // NativeBase has components that accept raw text. 47 | // 'react-native/no-inline-styles': 'off', // NativeBase is only inline styling. 48 | }, 49 | }; 50 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-native-format-currency 2 | 3 | [![version](https://img.shields.io/npm/v/react-native-format-currency.svg)](https://www.npmjs.com/package/react-native-format-currency) 4 | [![npm](https://img.shields.io/npm/dm/react-native-format-currency.svg)](https://www.npmjs.com/package/react-native-format-currency) 5 | [![twitter](https://img.shields.io/twitter/follow/AwesomeLabsLLC.svg?style=flat-square&label=Follow%20%40AwesomeLabsLLC&logo=TWITTER&logoColor=FFFFFF&labelColor=00aced&logoWidth=15&color=lightgray)](https://twitter.com/intent/follow?screen_name=AwesomeLabsLLC) 6 | 7 | 8 | A lightweight international currency formatter for React Native & Expo (iOS and Android). Check out the [example app](example/) for a working demo. 9 | 10 | ## Installation 11 | ```sh 12 | $ yarn add react-native-format-currency 13 | ``` 14 | or 15 | ```sh 16 | $ npm install react-native-format-currency 17 | ``` 18 | 19 | ## Usage 20 | 21 | Import library with 22 | ```js 23 | import { formatCurrency, getSupportedCurrencies } from "react-native-format-currency"; 24 | ``` 25 | 26 | ## Methods 27 | 28 | ### `formatCurrency({ amount: _number_, code: _string_})` 29 | 30 | ```sh 31 | formatCurrency({ amount: 1234.56, code: "ARS" }) 32 | ``` 33 | Formats a currency amount to specified currency code: 34 | ```js 35 | const [valueFormattedWithSymbol, valueFormattedWithoutSymbol, symbol] = formatCurrency({ amount: 1234.56, code: "ARS" }) 36 | ``` 37 | 38 | __Props__ 39 | 40 | | Prop | Type | Default | Note | 41 | |---|---|---|---| 42 | | `amount` | `Number` | null | currency amount 43 | | `code` | `String` | null | 3-letter [ISO 4217 Currency Code](https://en.wikipedia.org/wiki/ISO_4217) 44 | 45 | __Returns:__ 46 | 47 | Array containing formatted currency string, formatted currency (without symbol), and currency symbol 48 | 49 | ```js 50 | ["$ 1.234,56", "1.234,56", "$"] 51 | ``` 52 | 53 | 54 | ### `getSupportedCurrencies()` 55 | ``` 56 | getSupportedCurrencies() 57 | ``` 58 | Returns an array of currencies: 59 | 60 | ```js 61 | [ 62 | { code: "ARS", name: "Argentina Peso" }, 63 | { code: "AUD", name: "Australia Dollar" }, 64 | { code: "BGN", name: "Bulgaria Lev" }, 65 | { code: "BRL", name: "Brazil Real" }, 66 | { code: "CAD", name: "Canada Dollar" }, 67 | { code: "CHF", name: "Switzerland Franc" }, 68 | { code: "CLP", name: "Chile Peso" }, 69 | { code: "CNY", name: "China Yuan Renminbi" }, 70 | { code: "COP", name: "Colombia Peso" }, 71 | { code: "CZK", name: "Czech Republic Koruna" }, 72 | { code: "DKK", name: "Denmark Krone" }, 73 | { code: "EUR", name: "Euro Member Countries" }, 74 | { code: "GBP", name: "United Kingdom Pound" }, 75 | { code: "HKD", name: "Hong Kong Dollar" }, 76 | ... 77 | ] 78 | ``` 79 | 80 | ## Example 81 | 82 | Check out the [example app](example/) for a working demo. 83 | 84 | ```js 85 | import { StatusBar } from "expo-status-bar"; 86 | import React, { useState } from "react"; 87 | import { 88 | FlatList, 89 | SafeAreaView, 90 | StyleSheet, 91 | Text, 92 | TextInput, 93 | View, 94 | } from "react-native"; 95 | import { 96 | formatCurrency, 97 | getSupportedCurrencies, 98 | } from "react-native-format-currency"; 99 | 100 | export default function App() { 101 | const [inputValue, setInputValue] = useState("1234.56"); 102 | 103 | // get all of the supported currency codes 104 | const currencyCodes = getSupportedCurrencies(); 105 | 106 | // loop through each currency code and show formatted value 107 | const renderItem = ({ item }) => { 108 | const [valueFormattedWithSymbol, valueFormattedWithoutSymbol, symbol] = 109 | formatCurrency({ amount: Number(inputValue), code: item.code }); 110 | 111 | return ( 112 | 113 | 114 | {item.code} {symbol} 115 | 116 | {item.name} 117 | {valueFormattedWithSymbol} 118 | 119 | ); 120 | }; 121 | 122 | return ( 123 | 124 | 125 | setInputValue(value)} 130 | keyboardType="decimal-pad" 131 | /> 132 | 133 | 134 | code.code} 139 | /> 140 | 141 | 142 | ); 143 | } 144 | 145 | const styles = StyleSheet.create({ 146 | container: { 147 | flex: 1, 148 | backgroundColor: "#fff", 149 | alignItems: "flex-start", 150 | }, 151 | inputContainer: { 152 | flex: 1, 153 | alignSelf: "stretch", 154 | marginTop: 10, 155 | marginBottom: 15, 156 | }, 157 | input: { 158 | backgroundColor: "#eee", 159 | height: 38, 160 | fontSize: 30, 161 | fontWeight: "bold", 162 | }, 163 | scrollView: { 164 | width: "100%", 165 | paddingHorizontal: 5, 166 | marginTop: 40, 167 | marginBottom: 40, 168 | }, 169 | currencyRow: { 170 | flex: 1, 171 | flexDirection: "row", 172 | justifyContent: "space-between", 173 | }, 174 | currencyRowText: { 175 | alignContent: "flex-start", 176 | color: "#000", 177 | fontSize: 16, 178 | }, 179 | }); 180 | ``` 181 | 182 | 183 | ## Testing 184 | ```sh 185 | yarn build 186 | yarn test 187 | ``` 188 | 189 | ## Contribute 190 | Feel free to submit a PR if you'd like to help! 191 | 192 | 193 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Basic Options */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */ 8 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ 9 | // "lib": [], /* Specify library files to be included in the compilation. */ 10 | // "allowJs": true, /* Allow javascript files to be compiled. */ 11 | // "checkJs": true, /* Report errors in .js files. */ 12 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ 13 | "declaration": true, /* Generates corresponding '.d.ts' file. */ 14 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 15 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 16 | // "outFile": "./", /* Concatenate and emit output to single file. */ 17 | "outDir": "./dist", /* Redirect output structure to the directory. */ 18 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 19 | // "composite": true, /* Enable project compilation */ 20 | // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ 21 | // "removeComments": true, /* Do not emit comments to output. */ 22 | // "noEmit": true, /* Do not emit outputs. */ 23 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 24 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 25 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 26 | 27 | /* Strict Type-Checking Options */ 28 | "strict": true, /* Enable all strict type-checking options. */ 29 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 30 | // "strictNullChecks": true, /* Enable strict null checks. */ 31 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 32 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 33 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 34 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 35 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 36 | 37 | /* Additional Checks */ 38 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 39 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 40 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 41 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 42 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 43 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an 'override' modifier. */ 44 | // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ 45 | 46 | /* Module Resolution Options */ 47 | // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 48 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 49 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 50 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 51 | // "typeRoots": [], /* List of folders to include type definitions from. */ 52 | // "types": [], /* Type declaration files to be included in compilation. */ 53 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 54 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 55 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 56 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 57 | 58 | /* Source Map Options */ 59 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 60 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 61 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 62 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 63 | 64 | /* Experimental Options */ 65 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 66 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 67 | 68 | /* Advanced Options */ 69 | "skipLibCheck": true, /* Skip type checking of declaration files. */ 70 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ 71 | } 72 | } -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | type FormatCurrencyFunction = ({ 2 | amount, 3 | code, 4 | }: { 5 | amount: number; 6 | code: string; 7 | }) => [string, string, string]; 8 | 9 | export const formatCurrency: FormatCurrencyFunction = ({ amount, code }) => { 10 | const commaFormatted = String(amount).replace( 11 | /(\d)(?=(\d{3})+(?!\d))/g, 12 | "$1," 13 | ); 14 | const periodFormatted = String(amount) 15 | .replace(".", ",") 16 | .replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1."); 17 | 18 | const switchOptions: Record = { 19 | // united arab emirates dirham (ex: AED 1,234.56) 20 | AED: [`AED ${commaFormatted}`, `${commaFormatted}`, "AED"], 21 | 22 | // argentine peso (ex: $ 1.234,56) 23 | ARS: [`$ ${periodFormatted}`, `${periodFormatted}`, "$"], 24 | 25 | // australian dollar (ex: $ 1,234.56) 26 | AUD: [`$ ${commaFormatted}`, `${commaFormatted}`, "$"], 27 | 28 | // bosnia and herzegovina convertible mark (ex: KM 1.234,56) 29 | BAM: [`KM ${commaFormatted}`, `${commaFormatted}`, "KM"], 30 | 31 | // barbadian Dollar (ex: $1.234,56) 32 | BBD: [`$${commaFormatted}`, `${commaFormatted}`, "$"], 33 | 34 | // bolivian Boliviano (ex: $b 1.234,56) 35 | BOB: [`$b ${commaFormatted}`, `${commaFormatted}`, "$b"], 36 | 37 | // bulgarian lev (ex: лв1,234.56) 38 | BGN: [`лв${commaFormatted}`, `${commaFormatted}`, "лв"], 39 | 40 | // brazilian real (ex: R$ 1.234,56) 41 | BRL: [`R$ ${periodFormatted}`, `${periodFormatted}`, "R$"], 42 | 43 | // bahamian Dollar (ex: $1,234,56) 44 | BSD: [`$${commaFormatted}`, `${commaFormatted}`, "$"], 45 | 46 | // canadian dollar (ex: $ 1,234.56) 47 | CAD: [`$ ${commaFormatted}`, `${commaFormatted}`, "$"], 48 | 49 | // swiss franc (ex: fr. 1.234,56) 50 | CHF: [`fr. ${periodFormatted}`, `${periodFormatted}`, "fr."], 51 | 52 | // chilean peso (ex: $ 1,234.56) 53 | CLP: [`$ ${commaFormatted}`, `${commaFormatted}`, "$"], 54 | 55 | // yuan renminbi (ex: ¥ 1,234.56) 56 | CNY: [`¥ ${commaFormatted}`, `${commaFormatted}`, "¥"], 57 | 58 | // colombian peso (ex: $ 1,234.56) 59 | COP: [`$ ${commaFormatted}`, `${commaFormatted}`, "$"], 60 | 61 | // costa rican colón (ex: ₡1.234,56) 62 | CRC: [`₡${periodFormatted}`, `${periodFormatted}`, "₡"], 63 | 64 | // czech koruna (ex: 1.234,56 Kč) 65 | CZK: [`${periodFormatted} Kč`, `${periodFormatted}`, "Kč"], 66 | 67 | // danish krone (ex: kr. 1.234,56) 68 | DKK: [`kr. ${periodFormatted}`, `${periodFormatted}`, "kr."], 69 | 70 | // dominican Peso (ex: RD$ 1,234.56) 71 | DOP: [`RD$ ${commaFormatted}`, `${commaFormatted}`, "RD$"], 72 | 73 | // european union (ex: €1.234,56) 74 | EUR: [`€${periodFormatted}`, `${periodFormatted}`, "€"], 75 | 76 | // uk/great britain pound sterling (ex: £1,234.56) 77 | GBP: [`£${commaFormatted}`, `${commaFormatted}`, "£"], 78 | 79 | // georgian lari (ex: ₾1,234.56) 80 | GEL: [`₾${commaFormatted}`, `${commaFormatted}`, "₾"], 81 | 82 | // guatemalan quetzal (ex: Q1,234.56) 83 | GTQ: [`Q${commaFormatted}`, `${commaFormatted}`, "Q"], 84 | 85 | // hong kong dollar (ex: HK$ 1,234.56) 86 | HKD: [`HK$ ${commaFormatted}`, `${commaFormatted}`, "HK$"], 87 | 88 | // honduran lempira (ex: L 1,234.56) 89 | HNL: [`L ${commaFormatted}`, `${commaFormatted}`, "L"], 90 | 91 | // croatian kuna (ex: 1,234.56 kn) 92 | HRK: [`${commaFormatted} kn`, `${commaFormatted}`, "kn"], 93 | 94 | // hungarian forint (ex: 1.234,56 Ft) 95 | HUF: [`${periodFormatted} Ft`, `${periodFormatted}`, "Ft"], 96 | 97 | // indonesian rupiah (ex: Rp 1,234.56) 98 | IDR: [`Rp ${commaFormatted}`, `${commaFormatted}`, "Rp"], 99 | 100 | // new israeli shekel (ex: ₪ 1.234,56) 101 | ILS: [`₪ ${periodFormatted}`, `${periodFormatted}`, "₪"], 102 | 103 | // indian rupee (ex: ₹ 1,234.56) 104 | INR: [`₹ ${commaFormatted}`, `${commaFormatted}`, "₹"], 105 | 106 | // icelandic krona (ex: kr. 1.234,56) 107 | ISK: [`kr. ${periodFormatted}`, `${periodFormatted}`, "kr."], 108 | 109 | // jamaican dollar (ex: J$ 1,234.56) 110 | JMD: [`J$ ${commaFormatted}`, `${commaFormatted}`, "J$"], 111 | 112 | // yen (ex: ¥ 1,234.56) 113 | JPY: [`¥ ${commaFormatted}`, `${commaFormatted}`, "¥"], 114 | 115 | // won (ex: ₩ 1,234.56) 116 | KRW: [`₩ ${commaFormatted}`, `${commaFormatted}`, "₩"], 117 | 118 | // moroccan dirham (ex: 1,234.56 .د.م.) 119 | MAD: [`${commaFormatted} .د.م.`, `${commaFormatted}`, ".د.م."], 120 | 121 | // moldovan leu (ex: 1.234,56 L) 122 | MDL: [`${commaFormatted} L`, `${commaFormatted}`, "L"], 123 | 124 | // mexican peso (ex: $ 1,234.56) 125 | MXN: [`$ ${commaFormatted}`, `${commaFormatted}`, "$"], 126 | 127 | // malaysian ringgit (ex: RM 1,234.56) 128 | MYR: [`RM ${commaFormatted}`, `${commaFormatted}`, "RM"], 129 | 130 | // nigerian naira (ex: ₦1,234.56) 131 | NGN: [`₦${commaFormatted}`, `${commaFormatted}`, "₦"], 132 | 133 | // nicaraguan Córdoba (ex: C$ 1,234.56) 134 | NIO: [`C$ ${commaFormatted}`, `${commaFormatted}`, "C$"], 135 | 136 | // norwegian krone (ex: kr 1,234.56) 137 | NOK: [`kr ${commaFormatted}`, `${commaFormatted}`, "kr"], 138 | 139 | // new zealand dollar (ex: $ 1,234.56) 140 | NZD: [`$ ${commaFormatted}`, `${commaFormatted}`, "$"], 141 | 142 | // panamanian balboa (ex: B/. 1,234.56) 143 | PAB: [`B/. ${commaFormatted}`, `${commaFormatted}`, "B/."], 144 | 145 | // peruvian Nuevo Sol (ex: S/. 1,234.56) 146 | PEN: [`S/. ${commaFormatted}`, `${commaFormatted}`, "S/."], 147 | 148 | // philippine peso (ex: ₱ 1,234.56) 149 | PHP: [`₱ ${commaFormatted}`, `${commaFormatted}`, "₱"], 150 | 151 | // polish zloty (ex: 1.234,56 zł) 152 | PLN: [`${periodFormatted} zł`, `${periodFormatted}`, "zł"], 153 | 154 | // paraguayan Guaraní (ex: ₲1,234.56) 155 | PYG: [`₲${commaFormatted}`, `${commaFormatted}`, "₲"], 156 | 157 | // romanian new leu (ex: 1,234.56L) 158 | RON: [`${commaFormatted}L`, `${commaFormatted}`, "L"], 159 | 160 | // serbian dinar (ex: 1,234.56 RSD) 161 | RSD: [`${commaFormatted}RSD`, `${commaFormatted}`, "RSD"], 162 | 163 | // russian ruble (ex: 1.234,56 p.) 164 | RUB: [`${periodFormatted} p.`, `${periodFormatted}`, "p."], 165 | 166 | // saudi riyal (ex: 1,234.56 ﷼) 167 | SAR: [`${commaFormatted} ﷼`, `${commaFormatted}`, "﷼"], 168 | 169 | // swedish krona (ex: 1.234,56 kr) 170 | SEK: [`${periodFormatted} kr`, `${periodFormatted}`, "kr"], 171 | 172 | // singapore dollar (ex: $1,234.56) 173 | SGD: [`$${commaFormatted}`, `${commaFormatted}`, "$"], 174 | 175 | // salvadoran Colón(ex: ₡1,234.56) 176 | SVC: [`₡${commaFormatted}`, `${commaFormatted}`, "₡"], 177 | 178 | // thai baht (ex: 1,234.56 ฿) 179 | THB: [`${commaFormatted} ฿`, `${commaFormatted}`, "฿"], 180 | 181 | // turkish lira (ex: 1,234.56 ₺) 182 | TRY: [`${commaFormatted} ₺`, `${commaFormatted}`, "₺"], 183 | 184 | // new taiwan dollar (ex: 元 1,234.56) 185 | TWD: [`元 ${commaFormatted}`, `${commaFormatted}`, "元"], 186 | 187 | // us dollar (ex: $1,234.56) 188 | USD: [`$${commaFormatted}`, `${commaFormatted}`, "$"], 189 | 190 | // vietnamese dong (ex: 1.234,56 ₫) 191 | VND: [`${periodFormatted} ₫`, `${periodFormatted}`, "₫"], 192 | 193 | // uruguayan Peso (ex: $U1.234.56) 194 | UYU: [`$U${periodFormatted}`, `${periodFormatted}`, "$U"], 195 | 196 | // south african rand (ex: R 1,234.56) 197 | ZAR: [`R ${commaFormatted}`, `${commaFormatted}`, "R"], 198 | 199 | // default 200 | DEFAULT: [amount.toString(), amount.toString(), ""], 201 | }; 202 | 203 | return switchOptions[code] || switchOptions.DEFAULT; 204 | }; 205 | 206 | type CurrencyCode = { 207 | code: string; 208 | name: string; 209 | }; 210 | export const getSupportedCurrencies = () => { 211 | const currencyCodes: CurrencyCode[] = [ 212 | { code: "AED", name: "United Arab Emirates Dirham" }, 213 | // { code: "AFN", name: "Afghanistan Afghani"}, 214 | // { code: "ALL", name: "Albania Lek"}, 215 | // { code: "AMD", name: "Armenia Dram"}, 216 | // { code: "ANG", name: "Netherlands Antilles Guilder"}, 217 | // { code: "AOA", name: "Angola Kwanza"}, 218 | { code: "ARS", name: "Argentina Peso" }, 219 | { code: "AUD", name: "Australia Dollar" }, 220 | // { code: "AWG", name: "Aruba Guilder"}, 221 | // { code: "AZN", name: "Azerbaijan Manat"}, 222 | { code: "BAM", name: "Bosnia and Herzegovina Convertible Mark" }, 223 | { code: "BBD", name: "Barbados Dollar" }, 224 | // { code: "BDT", name: "Bangladesh Taka"}, 225 | { code: "BGN", name: "Bulgaria Lev" }, 226 | // { code: "BHD", name: "Bahrain Dinar" }, 227 | // { code: "BIF", name: "Burundi Franc" }, 228 | // { code: "BMD", name: "Bermuda Dollar" }, 229 | // { code: "BND", name: "Brunei Darussalam Dollar" }, 230 | { code: "BOB", name: "Bolivia Bolíviano" }, 231 | { code: "BRL", name: "Brazil Real" }, 232 | { code: "BSD", name: "Bahamas Dollar" }, 233 | // { code: "BTN", name: "Bhutan Ngultrum" }, 234 | // { code: "BWP", name: "Botswana Pula" }, 235 | // { code: "BYN", name: "Belarus Ruble" }, 236 | // { code: "BZD", name: "Belize Dollar" }, 237 | { code: "CAD", name: "Canada Dollar" }, 238 | // { code: "CDF", name: "Congo/Kinshasa Franc" }, 239 | { code: "CHF", name: "Switzerland Franc" }, 240 | { code: "CLP", name: "Chile Peso" }, 241 | { code: "CNY", name: "China Yuan Renminbi" }, 242 | { code: "COP", name: "Colombia Peso" }, 243 | { code: "CRC", name: "Costa Rica Colón" }, 244 | // { code: "CUC", name: "Cuba Convertible Peso" }, 245 | // { code: "CUP", name: "Cuba Peso" }, 246 | // { code: "CVE", name: "Cape Verde Escudo" }, 247 | { code: "CZK", name: "Czech Republic Koruna" }, 248 | // { code: "DJF", name: "Djibouti Franc" }, 249 | { code: "DKK", name: "Denmark Krone" }, 250 | { code: "DOP", name: "Dominican Republic Peso" }, 251 | // { code: "DZD", name: "Algeria Dinar" }, 252 | // { code: "EGP", name: "Egypt Pound" }, 253 | // { code: "ERN", name: "Eritrea Nakfa" }, 254 | // { code: "ETB", name: "Ethiopia Birr" }, 255 | { code: "EUR", name: "Euro Member Countries" }, 256 | // { code: "FJD", name: "Fiji Dollar" }, 257 | // { code: "FKP", name: "Falkland Islands (Malvinas) Pound" }, 258 | { code: "GBP", name: "United Kingdom Pound" }, 259 | { code: "GEL", name: "Georgia Lari" }, 260 | // { code: "GGP", name: "Guernsey Pound" }, 261 | // { code: "GHS", name: "Ghana Cedi" }, 262 | // { code: "GIP", name: "Gibraltar Pound" }, 263 | // { code: "GMD", name: "Gambia Dalasi" }, 264 | // { code: "GNF", name: "Guinea Franc" }, 265 | { code: "GTQ", name: "Guatemala Quetzal" }, 266 | { code: "HKD", name: "Hong Kong Dollar" }, 267 | { code: "HNL", name: "Honduras Lempira" }, 268 | { code: "HRK", name: "Croatia Kuna" }, 269 | // { code: "HTG", name: "Haiti Gourde" }, 270 | { code: "HUF", name: "Hungary Forint" }, 271 | { code: "IDR", name: "Indonesia Rupiah" }, 272 | { code: "ILS", name: "Israel Shekel" }, 273 | // { code: "IMP", name: "Isle of Man Pound" }, 274 | { code: "INR", name: "India Rupee" }, 275 | // { code: "IQD", name: "Iraq Dinar" }, 276 | // { code: "IRR", name: "Iran Rial" }, 277 | { code: "ISK", name: "Iceland Krona" }, 278 | // { code: "JEP", name: "Jersey Pound" }, 279 | { code: "JMD", name: "Jamaica Dollar" }, 280 | // { code: "JOD", name: "Jordan Dinar" }, 281 | { code: "JPY", name: "Japan Yen" }, 282 | // { code: "KES", name: "Kenya Shilling" }, 283 | // { code: "KGS", name: "Kyrgyzstan Som" }, 284 | // { code: "KHR", name: "Cambodia Riel" }, 285 | // { code: "KMF", name: "Comorian Franc" }, 286 | // { code: "KPW", name: "Korea (North) Won" }, 287 | { code: "KRW", name: "Korea (South) Won" }, 288 | // { code: "KWD", name: "Kuwait Dinar" }, 289 | // { code: "KYD", name: "Cayman Islands Dollar" }, 290 | // { code: "KZT", name: "Kazakhstan Tenge" }, 291 | // { code: "LAK", name: "Laos Kip" }, 292 | // { code: "LPB", name: "Lebanon Pound" }, 293 | // { code: "LKR", name: "Sri Lanka Rupee" }, 294 | // { code: "LRD", name: "Liberia Dollar" }, 295 | // { code: "LSL", name: "Lesotho Loti" }, 296 | // { code: "LYD", name: "Libya Dinar" }, 297 | { code: "MAD", name: "Morocco Dirham" }, 298 | { code: "MDL", name: "Moldova Leu" }, 299 | // { code: "MGA", name: "Madagascar Ariary" }, 300 | // { code: "MKD", name: "Macedonia Denar" }, 301 | // { code: "MMK", name: "Myanmar (Burma) Kyat" }, 302 | // { code: "MNT", name: "Mongolia Tughrik" }, 303 | // { code: "MOP", name: "Macau Pataca" }, 304 | // { code: "MRU", name: "Mauritania Ouguiya" }, 305 | // { code: "MUR", name: "Mauritius Rupee" }, 306 | // { code: "MVR", name: "Maldives (Maldive Islands) Rufiyaa" }, 307 | // { code: "MWK", name: "Malawi Kwacha" }, 308 | { code: "MXN", name: "Mexico Peso" }, 309 | { code: "MYR", name: "Malaysia Ringgit" }, 310 | // { code: "MZN", name: "Mozambique Metical" }, 311 | // { code: "NAD", name: "Namibia Dollar" }, 312 | { code: "NGN", name: "Nigeria Naira" }, 313 | { code: "NIO", name: "Nicaragua Córdoba" }, 314 | { code: "NOK", name: "Norway Krone" }, 315 | // { code: "NPR", name: "Nepal Rupee" }, 316 | { code: "NZD", name: "New Zealand Dollar" }, 317 | // { code: "OMR", name: "Oman Rial" }, 318 | { code: "PAB", name: "Panama Balboa" }, 319 | { code: "PEN", name: "Peruvian Nuevo Sol" }, 320 | // { code: "PGK", name: "Papua New Guinea Kina" }, 321 | { code: "PHP", name: "Philippines Peso" }, 322 | // { code: "PKR", name: "Pakistan Rupee" }, 323 | { code: "PLN", name: "Poland Zloty" }, 324 | { code: "PYG", name: "Paraguay Guarani" }, 325 | // { code: "QAR", name: "Qatar Riyal" }, 326 | { code: "RON", name: "Romania Leu" }, 327 | { code: "RSD", name: "Serbia Dinar" }, 328 | { code: "RUB", name: "Russia Ruble" }, 329 | // { code: "RWF", name: "Rwanda Franc" }, 330 | { code: "SAR", name: "Saudi Arabia Riyal" }, 331 | // { code: "SBD", name: "Solomon Islands Dollar" }, 332 | // { code: "SCR", name: "Seychelles Rupee" }, 333 | // { code: "SDG", name: "Sudan Pound" }, 334 | { code: "SEK", name: "Sweden Krona" }, 335 | { code: "SGD", name: "Singapore Dollar" }, 336 | // { code: "SHP", name: "Saint Helena Pound" }, 337 | // { code: "SLL", name: "Sierra Leone Leone" }, 338 | // { code: "SOS", name: "Somalia Shilling" }, 339 | // { code: "SPL", name: "Seborga Luigino" }, 340 | // { code: "SRD", name: "Suriname Dollar" }, 341 | // { code: "STN", name: "São Tomé and Príncipe Dobra" }, 342 | { code: "SVC", name: "El Salvador Colon" }, 343 | // { code: "SYP", name: "Syria Pound" }, 344 | // { code: "SZL", name: "eSwatini Lilangeni" }, 345 | { code: "THB", name: "Thailand Baht" }, 346 | // { code: "TJS", name: "Tajikistan Somoni" }, 347 | // { code: "TMT", name: "Turkmenistan Manat" }, 348 | // { code: "TND", name: "Tunisia Dinar" }, 349 | // { code: "TOP", name: "Tonga Pa'anga" }, 350 | { code: "TRY", name: "Turkey Lira" }, 351 | // { code: "TTD", name: "Trinidad and Tobago Dollar" }, 352 | // { code: "TVD", name: "Tuvalu Dollar" }, 353 | { code: "TWD", name: "Taiwan New Dollar" }, 354 | // { code: "TZS", name: "Tanzania Shilling" }, 355 | // { code: "UAH", name: "Ukraine Hryvnia" }, 356 | // { code: "UGX", name: "Uganda Shilling" }, 357 | { code: "USD", name: "United States Dollar" }, 358 | { code: "UYU", name: "Uruguay Peso" }, 359 | // { code: "UZS", name: "Uzbekistan Som" }, 360 | // { code: "VEF", name: "Venezuela Bolívar" }, 361 | { code: "VND", name: "Viet Nam Dong" }, 362 | // { code: "VUV", name: "Vanuatu Vatu" }, 363 | // { code: "WST", name: "Samoa Tala" }, 364 | // { code: "XAF", name: "Communauté Financière Africaine (BEAC) CFA Franc BEAC" }, 365 | // { code: "XCD", name: "East Caribbean Dollar" }, 366 | // { code: "XDR", name: "International Monetary Fund (IMF) Special Drawing Rights" }, 367 | // { code: "XOF", name: "Communauté Financière Africaine (BCEAO) Franc" }, 368 | // { code: "XPF", name: "Comptoirs Français du Pacifique (CFP) Franc" }, 369 | // { code: "YER", name: "Yemen Rial" }, 370 | { code: "ZAR", name: "South Africa Rand" }, 371 | // { code: "ZMW", name: "Zambia Kwacha" }, 372 | // { code: "ZWD", name: "Zimbabwe Dollar" }, 373 | ]; 374 | 375 | return currencyCodes; 376 | }; 377 | -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var expect = require("chai").expect; 3 | var index = require("../dist/index.js"); 4 | describe("formatCurrency function test", () => { 5 | it("should return AED", () => { 6 | var result = index.formatCurrency({ amount: 0.56, code: "AED" }); 7 | expect(result).to.eql(["AED 0.56", "0.56", "AED"]); 8 | var result = index.formatCurrency({ amount: 1234.56, code: "AED" }); 9 | expect(result).to.eql(["AED 1,234.56", "1,234.56", "AED"]); 10 | var result = index.formatCurrency({ amount: 1234567.89, code: "AED" }); 11 | expect(result).to.eql(["AED 1,234,567.89", "1,234,567.89", "AED"]); 12 | }); 13 | 14 | it("should return ARS", () => { 15 | var result = index.formatCurrency({ amount: 0.56, code: "ARS" }); 16 | expect(result).to.eql(["$ 0,56", "0,56", "$"]); 17 | var result = index.formatCurrency({ amount: 1234.56, code: "ARS" }); 18 | expect(result).to.eql(["$ 1.234,56", "1.234,56", "$"]); 19 | var result = index.formatCurrency({ amount: 1234567.89, code: "ARS" }); 20 | expect(result).to.eql(["$ 1.234.567,89", "1.234.567,89", "$"]); 21 | }); 22 | 23 | it("should return AUD", () => { 24 | var result = index.formatCurrency({ amount: 0.56, code: "AUD" }); 25 | expect(result).to.eql(["$ 0.56", "0.56", "$"]); 26 | var result = index.formatCurrency({ amount: 1234.56, code: "AUD" }); 27 | expect(result).to.eql(["$ 1,234.56", "1,234.56", "$"]); 28 | var result = index.formatCurrency({ amount: 1234567.89, code: "AUD" }); 29 | expect(result).to.eql(["$ 1,234,567.89", "1,234,567.89", "$"]); 30 | }); 31 | 32 | it("should return BAM", () => { 33 | var result = index.formatCurrency({ amount: 0.56, code: "BAM" }); 34 | expect(result).to.eql(["KM 0.56", "0.56", "KM"]); 35 | var result = index.formatCurrency({ amount: 1234.56, code: "BAM" }); 36 | expect(result).to.eql(["KM 1,234.56", "1,234.56", "KM"]); 37 | var result = index.formatCurrency({ amount: 1234567.89, code: "BAM" }); 38 | expect(result).to.eql(["KM 1,234,567.89", "1,234,567.89", "KM"]); 39 | }); 40 | 41 | it("should return BBD", () => { 42 | var result = index.formatCurrency({ amount: 0.56, code: "BBD" }); 43 | expect(result).to.eql(['$0.56', '0.56', '$' ]); 44 | var result = index.formatCurrency({ amount: 1234.56, code: "BBD" }); 45 | expect(result).to.eql(['$1,234.56', '1,234.56', '$' ]); 46 | var result = index.formatCurrency({ amount: 1234567.89, code: "BBD" }); 47 | expect(result).to.eql(['$1,234,567.89', '1,234,567.89', '$' ]); 48 | }); 49 | 50 | it("should return BOB", () => { 51 | var result = index.formatCurrency({ amount: 0.56, code: "BOB" }); 52 | expect(result).to.eql(['$b 0.56', '0.56', '$b' ]); 53 | var result = index.formatCurrency({ amount: 1234.56, code: "BOB" }); 54 | expect(result).to.eql(['$b 1,234.56', '1,234.56', '$b' ]); 55 | var result = index.formatCurrency({ amount: 1234567.89, code: "BOB" }); 56 | expect(result).to.eql(["$b 1,234,567.89", "1,234,567.89", "$b"]); 57 | }); 58 | 59 | it("should return BGN", () => { 60 | var result = index.formatCurrency({ amount: 0.56, code: "BGN" }); 61 | expect(result).to.eql(["лв0.56", "0.56", "лв"]); 62 | var result = index.formatCurrency({ amount: 1234.56, code: "BGN" }); 63 | expect(result).to.eql(["лв1,234.56", "1,234.56", "лв"]); 64 | var result = index.formatCurrency({ amount: 1234567.89, code: "BGN" }); 65 | expect(result).to.eql(["лв1,234,567.89", "1,234,567.89", "лв"]); 66 | }); 67 | 68 | it("should return BRL", () => { 69 | var result = index.formatCurrency({ amount: 0.56, code: "BRL" }); 70 | expect(result).to.eql(["R$ 0,56", "0,56", "R$"]); 71 | var result = index.formatCurrency({ amount: 1234.56, code: "BRL" }); 72 | expect(result).to.eql(["R$ 1.234,56", "1.234,56", "R$"]); 73 | var result = index.formatCurrency({ amount: 1234567.89, code: "BRL" }); 74 | expect(result).to.eql(["R$ 1.234.567,89", "1.234.567,89", "R$"]); 75 | }); 76 | 77 | it("should return BSD", () => { 78 | var result = index.formatCurrency({ amount: 0.56, code: "BSD" }); 79 | expect(result).to.eql(['$0.56', '0.56', '$' ]); 80 | var result = index.formatCurrency({ amount: 1234.56, code: "BSD" }); 81 | expect(result).to.eql(['$1,234.56', '1,234.56', '$' ]); 82 | var result = index.formatCurrency({ amount: 1234567.89, code: "BSD" }); 83 | expect(result).to.eql(["$1,234,567.89", "1,234,567.89", "$"]); 84 | }); 85 | 86 | it("should return CAD", () => { 87 | var result = index.formatCurrency({ amount: 0.56, code: "CAD" }); 88 | expect(result).to.eql(["$ 0.56", "0.56", "$"]); 89 | var result = index.formatCurrency({ amount: 1234.56, code: "CAD" }); 90 | expect(result).to.eql(["$ 1,234.56", "1,234.56", "$"]); 91 | var result = index.formatCurrency({ amount: 1234567.89, code: "CAD" }); 92 | expect(result).to.eql(["$ 1,234,567.89", "1,234,567.89", "$"]); 93 | }); 94 | 95 | it("should return CHF", () => { 96 | var result = index.formatCurrency({ amount: 0.56, code: "CHF" }); 97 | expect(result).to.eql(["fr. 0,56", "0,56", "fr."]); 98 | var result = index.formatCurrency({ amount: 1234.56, code: "CHF" }); 99 | expect(result).to.eql(["fr. 1.234,56", "1.234,56", "fr."]); 100 | var result = index.formatCurrency({ amount: 1234567.89, code: "CHF" }); 101 | expect(result).to.eql(["fr. 1.234.567,89", "1.234.567,89", "fr."]); 102 | }); 103 | 104 | it("should return CLP", () => { 105 | var result = index.formatCurrency({ amount: 0.56, code: "CLP" }); 106 | expect(result).to.eql(["$ 0.56", "0.56", "$"]); 107 | var result = index.formatCurrency({ amount: 1234.56, code: "CLP" }); 108 | expect(result).to.eql(["$ 1,234.56", "1,234.56", "$"]); 109 | var result = index.formatCurrency({ amount: 1234567.89, code: "CLP" }); 110 | expect(result).to.eql(["$ 1,234,567.89", "1,234,567.89", "$"]); 111 | }); 112 | 113 | it("should return CNY", () => { 114 | var result = index.formatCurrency({ amount: 0.56, code: "CNY" }); 115 | expect(result).to.eql(["¥ 0.56", "0.56", "¥"]); 116 | var result = index.formatCurrency({ amount: 1234.56, code: "CNY" }); 117 | expect(result).to.eql(["¥ 1,234.56", "1,234.56", "¥"]); 118 | var result = index.formatCurrency({ amount: 1234567.89, code: "CNY" }); 119 | expect(result).to.eql(["¥ 1,234,567.89", "1,234,567.89", "¥"]); 120 | }); 121 | 122 | it("should return COP", () => { 123 | var result = index.formatCurrency({ amount: 0.56, code: "COP" }); 124 | expect(result).to.eql(["$ 0.56", "0.56", "$"]); 125 | var result = index.formatCurrency({ amount: 1234.56, code: "COP" }); 126 | expect(result).to.eql(["$ 1,234.56", "1,234.56", "$"]); 127 | var result = index.formatCurrency({ amount: 1234567.89, code: "COP" }); 128 | expect(result).to.eql(["$ 1,234,567.89", "1,234,567.89", "$"]); 129 | }); 130 | 131 | it("should return CRC", () => { 132 | var result = index.formatCurrency({ amount: 0.56, code: "CRC" }); 133 | expect(result).to.eql(['₡0,56', '0,56', '₡' ]); 134 | var result = index.formatCurrency({ amount: 1234.56, code: "CRC" }); 135 | expect(result).to.eql(['₡1.234,56', '1.234,56', '₡' ]); 136 | var result = index.formatCurrency({ amount: 1234567.89, code: "CRC" }); 137 | expect(result).to.eql(["₡1.234.567,89", "1.234.567,89", "₡"]); 138 | }); 139 | 140 | it("should return CZK", () => { 141 | var result = index.formatCurrency({ amount: 0.56, code: "CZK" }); 142 | expect(result).to.eql(["0,56 Kč", "0,56", "Kč"]); 143 | var result = index.formatCurrency({ amount: 1234.56, code: "CZK" }); 144 | expect(result).to.eql(["1.234,56 Kč", "1.234,56", "Kč"]); 145 | var result = index.formatCurrency({ amount: 1234567.89, code: "CZK" }); 146 | expect(result).to.eql(["1.234.567,89 Kč", "1.234.567,89", "Kč"]); 147 | }); 148 | 149 | it("should return DKK", () => { 150 | var result = index.formatCurrency({ amount: 0.56, code: "DKK" }); 151 | expect(result).to.eql(["kr. 0,56", "0,56", "kr."]); 152 | var result = index.formatCurrency({ amount: 1234.56, code: "DKK" }); 153 | expect(result).to.eql(["kr. 1.234,56", "1.234,56", "kr."]); 154 | var result = index.formatCurrency({ amount: 1234567.89, code: "DKK" }); 155 | expect(result).to.eql(["kr. 1.234.567,89", "1.234.567,89", "kr."]); 156 | }); 157 | 158 | it("should return DOP", () => { 159 | var result = index.formatCurrency({ amount: 0.56, code: "DOP" }); 160 | expect(result).to.eql(['RD$ 0.56', '0.56', 'RD$' ]); 161 | var result = index.formatCurrency({ amount: 1234.56, code: "DOP" }); 162 | expect(result).to.eql(['RD$ 1,234.56', '1,234.56', 'RD$' ]); 163 | var result = index.formatCurrency({ amount: 1234567.89, code: "DOP" }); 164 | expect(result).to.eql(["RD$ 1,234,567.89", "1,234,567.89", "RD$"]); 165 | }); 166 | 167 | it("should return EUR", () => { 168 | var result = index.formatCurrency({ amount: 0.56, code: "EUR" }); 169 | expect(result).to.eql(["€0,56", "0,56", "€"]); 170 | var result = index.formatCurrency({ amount: 1234.56, code: "EUR" }); 171 | expect(result).to.eql(["€1.234,56", "1.234,56", "€"]); 172 | var result = index.formatCurrency({ amount: 1234567.89, code: "EUR" }); 173 | expect(result).to.eql(["€1.234.567,89", "1.234.567,89", "€"]); 174 | }); 175 | 176 | it("should return GBP", () => { 177 | var result = index.formatCurrency({ amount: 0.56, code: "GBP" }); 178 | expect(result).to.eql(["£0.56", "0.56", "£"]); 179 | var result = index.formatCurrency({ amount: 1234.56, code: "GBP" }); 180 | expect(result).to.eql(["£1,234.56", "1,234.56", "£"]); 181 | var result = index.formatCurrency({ amount: 1234567.89, code: "GBP" }); 182 | expect(result).to.eql(["£1,234,567.89", "1,234,567.89", "£"]); 183 | }); 184 | 185 | it("should return GEL", () => { 186 | var result = index.formatCurrency({ amount: 0.56, code: "GEL" }); 187 | expect(result).to.eql(["₾0.56", "0.56", "₾"]); 188 | var result = index.formatCurrency({ amount: 1234.56, code: "GEL" }); 189 | expect(result).to.eql(["₾1,234.56", "1,234.56", "₾"]); 190 | var result = index.formatCurrency({ amount: 1234567.89, code: "GEL" }); 191 | expect(result).to.eql(["₾1,234,567.89", "1,234,567.89", "₾"]); 192 | }); 193 | 194 | it("should return GTQ", () => { 195 | var result = index.formatCurrency({ amount: 0.56, code: "GTQ" }); 196 | expect(result).to.eql(['Q0.56', '0.56', 'Q' ]); 197 | var result = index.formatCurrency({ amount: 1234.56, code: "GTQ" }); 198 | expect(result).to.eql(['Q1,234.56', '1,234.56', 'Q' ]); 199 | var result = index.formatCurrency({ amount: 1234567.89, code: "GTQ" }); 200 | expect(result).to.eql(["Q1,234,567.89", "1,234,567.89", "Q"]); 201 | }); 202 | 203 | it("should return HKD", () => { 204 | var result = index.formatCurrency({ amount: 0.56, code: "HKD" }); 205 | expect(result).to.eql(["HK$ 0.56", "0.56", "HK$"]); 206 | var result = index.formatCurrency({ amount: 1234.56, code: "HKD" }); 207 | expect(result).to.eql(["HK$ 1,234.56", "1,234.56", "HK$"]); 208 | var result = index.formatCurrency({ amount: 1234567.89, code: "HKD" }); 209 | expect(result).to.eql(["HK$ 1,234,567.89", "1,234,567.89", "HK$"]); 210 | }); 211 | 212 | it("should return HNL", () => { 213 | var result = index.formatCurrency({ amount: 0.56, code: "HNL" }); 214 | expect(result).to.eql(['L 0.56', '0.56', 'L' ]); 215 | var result = index.formatCurrency({ amount: 1234.56, code: "HNL" }); 216 | expect(result).to.eql(['L 1,234.56', '1,234.56', 'L' ]); 217 | var result = index.formatCurrency({ amount: 1234567.89, code: "HNL" }); 218 | expect(result).to.eql(["L 1,234,567.89", "1,234,567.89", "L"]); 219 | }); 220 | 221 | it("should return HRK", () => { 222 | var result = index.formatCurrency({ amount: 0.56, code: "HRK" }); 223 | expect(result).to.eql(["0.56 kn", "0.56", "kn"]); 224 | var result = index.formatCurrency({ amount: 1234.56, code: "HRK" }); 225 | expect(result).to.eql(["1,234.56 kn", "1,234.56", "kn"]); 226 | var result = index.formatCurrency({ amount: 1234567.89, code: "HRK" }); 227 | expect(result).to.eql(["1,234,567.89 kn", "1,234,567.89", "kn"]); 228 | }); 229 | 230 | it("should return HUF", () => { 231 | var result = index.formatCurrency({ amount: 0.56, code: "HUF" }); 232 | expect(result).to.eql(["0,56 Ft", "0,56", "Ft"]); 233 | var result = index.formatCurrency({ amount: 1234.56, code: "HUF" }); 234 | expect(result).to.eql(["1.234,56 Ft", "1.234,56", "Ft"]); 235 | var result = index.formatCurrency({ amount: 1234567.89, code: "HUF" }); 236 | expect(result).to.eql(["1.234.567,89 Ft", "1.234.567,89", "Ft"]); 237 | }); 238 | 239 | it("should return IDR", () => { 240 | var result = index.formatCurrency({ amount: 0.56, code: "IDR" }); 241 | expect(result).to.eql(["Rp 0.56", "0.56", "Rp"]); 242 | var result = index.formatCurrency({ amount: 1234.56, code: "IDR" }); 243 | expect(result).to.eql(["Rp 1,234.56", "1,234.56", "Rp"]); 244 | var result = index.formatCurrency({ amount: 1234567.89, code: "IDR" }); 245 | expect(result).to.eql(["Rp 1,234,567.89", "1,234,567.89", "Rp"]); 246 | }); 247 | 248 | it("should return ILS", () => { 249 | var result = index.formatCurrency({ amount: 0.56, code: "ILS" }); 250 | expect(result).to.eql(["₪ 0,56", "0,56", "₪"]); 251 | var result = index.formatCurrency({ amount: 1234.56, code: "ILS" }); 252 | expect(result).to.eql(["₪ 1.234,56", "1.234,56", "₪"]); 253 | var result = index.formatCurrency({ amount: 1234567.89, code: "ILS" }); 254 | expect(result).to.eql(["₪ 1.234.567,89", "1.234.567,89", "₪"]); 255 | }); 256 | 257 | it("should return INR", () => { 258 | var result = index.formatCurrency({ amount: 0.56, code: "INR" }); 259 | expect(result).to.eql(["₹ 0.56", "0.56", "₹"]); 260 | var result = index.formatCurrency({ amount: 1234.56, code: "INR" }); 261 | expect(result).to.eql(["₹ 1,234.56", "1,234.56", "₹"]); 262 | var result = index.formatCurrency({ amount: 1234567.89, code: "INR" }); 263 | expect(result).to.eql(["₹ 1,234,567.89", "1,234,567.89", "₹"]); 264 | }); 265 | 266 | it("should return ISK", () => { 267 | var result = index.formatCurrency({ amount: 0.56, code: "ISK" }); 268 | expect(result).to.eql(["kr. 0,56", "0,56", "kr."]); 269 | var result = index.formatCurrency({ amount: 1234.56, code: "ISK" }); 270 | expect(result).to.eql(["kr. 1.234,56", "1.234,56", "kr."]); 271 | var result = index.formatCurrency({ amount: 1234567.89, code: "ISK" }); 272 | expect(result).to.eql(["kr. 1.234.567,89", "1.234.567,89", "kr."]); 273 | }); 274 | 275 | it("should return JMD", () => { 276 | var result = index.formatCurrency({ amount: 0.56, code: "JMD" }); 277 | expect(result).to.eql(['J$ 0.56', '0.56', 'J$' ]); 278 | var result = index.formatCurrency({ amount: 1234.56, code: "JMD" }); 279 | expect(result).to.eql(['J$ 1,234.56', '1,234.56', 'J$' ]); 280 | var result = index.formatCurrency({ amount: 1234567.89, code: "JMD" }); 281 | expect(result).to.eql(["J$ 1,234,567.89", "1,234,567.89", "J$"]); 282 | }); 283 | 284 | it("should return JPY", () => { 285 | var result = index.formatCurrency({ amount: 0.56, code: "JPY" }); 286 | expect(result).to.eql(["¥ 0.56", "0.56", "¥"]); 287 | var result = index.formatCurrency({ amount: 1234.56, code: "JPY" }); 288 | expect(result).to.eql(["¥ 1,234.56", "1,234.56", "¥"]); 289 | var result = index.formatCurrency({ amount: 1234567.89, code: "JPY" }); 290 | expect(result).to.eql(["¥ 1,234,567.89", "1,234,567.89", "¥"]); 291 | }); 292 | 293 | it("should return KRW", () => { 294 | var result = index.formatCurrency({ amount: 0.56, code: "KRW" }); 295 | expect(result).to.eql(["₩ 0.56", "0.56", "₩"]); 296 | var result = index.formatCurrency({ amount: 1234.56, code: "KRW" }); 297 | expect(result).to.eql(["₩ 1,234.56", "1,234.56", "₩"]); 298 | var result = index.formatCurrency({ amount: 1234567.89, code: "KRW" }); 299 | expect(result).to.eql(["₩ 1,234,567.89", "1,234,567.89", "₩"]); 300 | }); 301 | 302 | it("should return MAD", () => { 303 | var result = index.formatCurrency({ amount: 0.56, code: "MAD" }); 304 | expect(result).to.eql(["0.56 .د.م.", "0.56", ".د.م."]); 305 | var result = index.formatCurrency({ amount: 1234.56, code: "MAD" }); 306 | expect(result).to.eql(["1,234.56 .د.م.", "1,234.56", ".د.م."]); 307 | var result = index.formatCurrency({ amount: 1234567.89, code: "MAD" }); 308 | expect(result).to.eql(["1,234,567.89 .د.م.", "1,234,567.89", ".د.م."]); 309 | }); 310 | 311 | it("should return MDL", () => { 312 | var result = index.formatCurrency({ amount: 0.56, code: "MDL" }); 313 | expect(result).to.eql(["0.56 L", "0.56", "L"]); 314 | var result = index.formatCurrency({ amount: 1234.56, code: "MDL" }); 315 | expect(result).to.eql(["1,234.56 L", "1,234.56", "L"]); 316 | var result = index.formatCurrency({ amount: 1234567.89, code: "MDL" }); 317 | expect(result).to.eql(["1,234,567.89 L", "1,234,567.89", "L"]); 318 | }); 319 | 320 | it("should return MXN", () => { 321 | var result = index.formatCurrency({ amount: 0.56, code: "MXN" }); 322 | expect(result).to.eql(["$ 0.56", "0.56", "$"]); 323 | var result = index.formatCurrency({ amount: 1234.56, code: "MXN" }); 324 | expect(result).to.eql(["$ 1,234.56", "1,234.56", "$"]); 325 | var result = index.formatCurrency({ amount: 1234567.89, code: "MXN" }); 326 | expect(result).to.eql(["$ 1,234,567.89", "1,234,567.89", "$"]); 327 | }); 328 | 329 | it("should return MYR", () => { 330 | var result = index.formatCurrency({ amount: 0.56, code: "MYR" }); 331 | expect(result).to.eql(["RM 0.56", "0.56", "RM"]); 332 | var result = index.formatCurrency({ amount: 1234.56, code: "MYR" }); 333 | expect(result).to.eql(["RM 1,234.56", "1,234.56", "RM"]); 334 | var result = index.formatCurrency({ amount: 1234567.89, code: "MYR" }); 335 | expect(result).to.eql(["RM 1,234,567.89", "1,234,567.89", "RM"]); 336 | }); 337 | 338 | it("should return NGN", () => { 339 | var result = index.formatCurrency({ amount: 0.56, code: "NGN" }); 340 | expect(result).to.eql(["₦0.56", "0.56", "₦"]); 341 | var result = index.formatCurrency({ amount: 1234.56, code: "NGN" }); 342 | expect(result).to.eql(["₦1,234.56", "1,234.56", "₦"]); 343 | var result = index.formatCurrency({ amount: 1234567.89, code: "NGN" }); 344 | expect(result).to.eql(["₦1,234,567.89", "1,234,567.89", "₦"]); 345 | }); 346 | 347 | it("should return NIO", () => { 348 | var result = index.formatCurrency({ amount: 0.56, code: "NIO" }); 349 | expect(result).to.eql(['C$ 0.56', '0.56', 'C$' ]); 350 | var result = index.formatCurrency({ amount: 1234.56, code: "NIO" }); 351 | expect(result).to.eql(['C$ 1,234.56', '1,234.56', 'C$' ]); 352 | var result = index.formatCurrency({ amount: 1234567.89, code: "NIO" }); 353 | expect(result).to.eql(["C$ 1,234,567.89", "1,234,567.89", "C$"]); 354 | }); 355 | 356 | it("should return NOK", () => { 357 | var result = index.formatCurrency({ amount: 0.56, code: "NOK" }); 358 | expect(result).to.eql(["kr 0.56", "0.56", "kr"]); 359 | var result = index.formatCurrency({ amount: 1234.56, code: "NOK" }); 360 | expect(result).to.eql(["kr 1,234.56", "1,234.56", "kr"]); 361 | var result = index.formatCurrency({ amount: 1234567.89, code: "NOK" }); 362 | expect(result).to.eql(["kr 1,234,567.89", "1,234,567.89", "kr"]); 363 | }); 364 | 365 | it("should return NZD", () => { 366 | var result = index.formatCurrency({ amount: 0.56, code: "NZD" }); 367 | expect(result).to.eql(["$ 0.56", "0.56", "$"]); 368 | var result = index.formatCurrency({ amount: 1234.56, code: "NZD" }); 369 | expect(result).to.eql(["$ 1,234.56", "1,234.56", "$"]); 370 | var result = index.formatCurrency({ amount: 1234567.89, code: "NZD" }); 371 | expect(result).to.eql(["$ 1,234,567.89", "1,234,567.89", "$"]); 372 | }); 373 | 374 | it("should return PAB", () => { 375 | var result = index.formatCurrency({ amount: 0.56, code: "PAB" }); 376 | expect(result).to.eql(['B/. 0.56', '0.56', 'B/.' ]); 377 | var result = index.formatCurrency({ amount: 1234.56, code: "PAB" }); 378 | expect(result).to.eql(['B/. 1,234.56', '1,234.56', 'B/.' ]); 379 | var result = index.formatCurrency({ amount: 1234567.89, code: "PAB" }); 380 | expect(result).to.eql(["B/. 1,234,567.89", "1,234,567.89", "B/."]); 381 | }); 382 | 383 | it("should return PEN", () => { 384 | var result = index.formatCurrency({ amount: 0.56, code: "PEN" }); 385 | expect(result).to.eql(['S/. 0.56', '0.56', 'S/.' ]); 386 | var result = index.formatCurrency({ amount: 1234.56, code: "PEN" }); 387 | expect(result).to.eql(['S/. 1,234.56', '1,234.56', 'S/.' ]); 388 | var result = index.formatCurrency({ amount: 1234567.89, code: "PEN" }); 389 | expect(result).to.eql(["S/. 1,234,567.89", "1,234,567.89", "S/."]); 390 | }); 391 | 392 | it("should return PHP", () => { 393 | var result = index.formatCurrency({ amount: 0.56, code: "PHP" }); 394 | expect(result).to.eql(["₱ 0.56", "0.56", "₱"]); 395 | var result = index.formatCurrency({ amount: 1234.56, code: "PHP" }); 396 | expect(result).to.eql(["₱ 1,234.56", "1,234.56", "₱"]); 397 | var result = index.formatCurrency({ amount: 1234567.89, code: "PHP" }); 398 | expect(result).to.eql(["₱ 1,234,567.89", "1,234,567.89", "₱"]); 399 | }); 400 | 401 | it("should return PLN", () => { 402 | var result = index.formatCurrency({ amount: 0.56, code: "PLN" }); 403 | expect(result).to.eql(["0,56 zł", "0,56", "zł"]); 404 | var result = index.formatCurrency({ amount: 1234.56, code: "PLN" }); 405 | expect(result).to.eql(["1.234,56 zł", "1.234,56", "zł"]); 406 | var result = index.formatCurrency({ amount: 1234567.89, code: "PLN" }); 407 | expect(result).to.eql(["1.234.567,89 zł", "1.234.567,89", "zł"]); 408 | }); 409 | 410 | it("should return PYG", () => { 411 | var result = index.formatCurrency({ amount: 0.56, code: "PYG" }); 412 | expect(result).to.eql(['₲0.56', '0.56', '₲' ]); 413 | var result = index.formatCurrency({ amount: 1234.56, code: "PYG" }); 414 | expect(result).to.eql(['₲1,234.56', '1,234.56', '₲' ]); 415 | var result = index.formatCurrency({ amount: 1234567.89, code: "PYG" }); 416 | expect(result).to.eql(["₲1,234,567.89", "1,234,567.89", "₲"]); 417 | }); 418 | 419 | it("should return RON", () => { 420 | var result = index.formatCurrency({ amount: 0.56, code: "RON" }); 421 | expect(result).to.eql(["0.56L", "0.56", "L"]); 422 | var result = index.formatCurrency({ amount: 1234.56, code: "RON" }); 423 | expect(result).to.eql(["1,234.56L", "1,234.56", "L"]); 424 | var result = index.formatCurrency({ amount: 1234567.89, code: "RON" }); 425 | expect(result).to.eql(["1,234,567.89L", "1,234,567.89", "L"]); 426 | }); 427 | 428 | it("should return RSD", () => { 429 | var result = index.formatCurrency({ amount: 0.56, code: "RSD" }); 430 | expect(result).to.eql(["0.56RSD", "0.56", "RSD"]); 431 | var result = index.formatCurrency({ amount: 1234.56, code: "RSD" }); 432 | expect(result).to.eql(["1,234.56RSD", "1,234.56", "RSD"]); 433 | var result = index.formatCurrency({ amount: 1234567.89, code: "RSD" }); 434 | expect(result).to.eql(["1,234,567.89RSD", "1,234,567.89", "RSD"]); 435 | }); 436 | 437 | it("should return RUB", () => { 438 | var result = index.formatCurrency({ amount: 0.56, code: "RUB" }); 439 | expect(result).to.eql(["0,56 p.", "0,56", "p."]); 440 | var result = index.formatCurrency({ amount: 1234.56, code: "RUB" }); 441 | expect(result).to.eql(["1.234,56 p.", "1.234,56", "p."]); 442 | var result = index.formatCurrency({ amount: 1234567.89, code: "RUB" }); 443 | expect(result).to.eql(["1.234.567,89 p.", "1.234.567,89", "p."]); 444 | }); 445 | 446 | it("should return SAR", () => { 447 | var result = index.formatCurrency({ amount: 0.56, code: "SAR" }); 448 | expect(result).to.eql(["0.56 ﷼", "0.56", "﷼"]); 449 | var result = index.formatCurrency({ amount: 1234.56, code: "SAR" }); 450 | expect(result).to.eql(["1,234.56 ﷼", "1,234.56", "﷼"]); 451 | var result = index.formatCurrency({ amount: 1234567.89, code: "SAR" }); 452 | expect(result).to.eql(["1,234,567.89 ﷼", "1,234,567.89", "﷼"]); 453 | }); 454 | 455 | it("should return SEK", () => { 456 | var result = index.formatCurrency({ amount: 0.56, code: "SEK" }); 457 | expect(result).to.eql(["0,56 kr", "0,56", "kr"]); 458 | var result = index.formatCurrency({ amount: 1234.56, code: "SEK" }); 459 | expect(result).to.eql(["1.234,56 kr", "1.234,56", "kr"]); 460 | var result = index.formatCurrency({ amount: 1234567.89, code: "SEK" }); 461 | expect(result).to.eql(["1.234.567,89 kr", "1.234.567,89", "kr"]); 462 | }); 463 | 464 | it("should return SGD", () => { 465 | var result = index.formatCurrency({ amount: 0.56, code: "SGD" }); 466 | expect(result).to.eql(["$0.56", "0.56", "$"]); 467 | var result = index.formatCurrency({ amount: 1234.56, code: "SGD" }); 468 | expect(result).to.eql(["$1,234.56", "1,234.56", "$"]); 469 | var result = index.formatCurrency({ amount: 1234567.89, code: "SGD" }); 470 | expect(result).to.eql(["$1,234,567.89", "1,234,567.89", "$"]); 471 | }); 472 | 473 | it("should return SVC", () => { 474 | var result = index.formatCurrency({ amount: 0.56, code: "SVC" }); 475 | expect(result).to.eql(['₡0.56', '0.56', '₡' ]); 476 | var result = index.formatCurrency({ amount: 1234.56, code: "SVC" }); 477 | expect(result).to.eql(['₡1,234.56', '1,234.56', '₡' ]); 478 | var result = index.formatCurrency({ amount: 1234567.89, code: "SVC" }); 479 | expect(result).to.eql(["₡1,234,567.89", "1,234,567.89", "₡"]); 480 | }); 481 | 482 | it("should return THB", () => { 483 | var result = index.formatCurrency({ amount: 0.56, code: "THB" }); 484 | expect(result).to.eql(["0.56 ฿", "0.56", "฿"]); 485 | var result = index.formatCurrency({ amount: 1234.56, code: "THB" }); 486 | expect(result).to.eql(["1,234.56 ฿", "1,234.56", "฿"]); 487 | var result = index.formatCurrency({ amount: 1234567.89, code: "THB" }); 488 | expect(result).to.eql(["1,234,567.89 ฿", "1,234,567.89", "฿"]); 489 | }); 490 | 491 | it("should return TRY", () => { 492 | var result = index.formatCurrency({ amount: 0.56, code: "TRY" }); 493 | expect(result).to.eql(["0.56 ₺", "0.56", "₺"]); 494 | var result = index.formatCurrency({ amount: 1234.56, code: "TRY" }); 495 | expect(result).to.eql(["1,234.56 ₺", "1,234.56", "₺"]); 496 | var result = index.formatCurrency({ amount: 1234567.89, code: "TRY" }); 497 | expect(result).to.eql(["1,234,567.89 ₺", "1,234,567.89", "₺"]); 498 | }); 499 | 500 | it("should return TWD", () => { 501 | var result = index.formatCurrency({ amount: 0.56, code: "TWD" }); 502 | expect(result).to.eql(["元 0.56", "0.56", "元"]); 503 | var result = index.formatCurrency({ amount: 1234.56, code: "TWD" }); 504 | expect(result).to.eql(["元 1,234.56", "1,234.56", "元"]); 505 | var result = index.formatCurrency({ amount: 1234567.89, code: "TWD" }); 506 | expect(result).to.eql(["元 1,234,567.89", "1,234,567.89", "元"]); 507 | }); 508 | 509 | it("should return USD", () => { 510 | var result = index.formatCurrency({ amount: 0.56, code: "USD" }); 511 | expect(result).to.eql(["$0.56", "0.56", "$"]); 512 | var result = index.formatCurrency({ amount: 1234.56, code: "USD" }); 513 | expect(result).to.eql(["$1,234.56", "1,234.56", "$"]); 514 | var result = index.formatCurrency({ amount: 1234567.89, code: "USD" }); 515 | expect(result).to.eql(["$1,234,567.89", "1,234,567.89", "$"]); 516 | }); 517 | 518 | it("should return VND", () => { 519 | var result = index.formatCurrency({ amount: 0.56, code: "VND" }); 520 | expect(result).to.eql(["0,56 ₫", "0,56", "₫"]); 521 | var result = index.formatCurrency({ amount: 1234.56, code: "VND" }); 522 | expect(result).to.eql(["1.234,56 ₫", "1.234,56", "₫"]); 523 | var result = index.formatCurrency({ amount: 1234567.89, code: "VND" }); 524 | expect(result).to.eql(["1.234.567,89 ₫", "1.234.567,89", "₫"]); 525 | }); 526 | 527 | it("should return UYU", () => { 528 | var result = index.formatCurrency({ amount: 0.56, code: "UYU" }); 529 | expect(result).to.eql(['$U0,56', '0,56', '$U' ]); 530 | var result = index.formatCurrency({ amount: 1234.56, code: "UYU" }); 531 | expect(result).to.eql(['$U1.234,56', '1.234,56', '$U' ]); 532 | var result = index.formatCurrency({ amount: 1234567.89, code: "UYU" }); 533 | expect(result).to.eql(["$U1.234.567,89", "1.234.567,89", "$U"]); 534 | }); 535 | 536 | it("should return ZAR", () => { 537 | var result = index.formatCurrency({ amount: 0.56, code: "ZAR" }); 538 | expect(result).to.eql(["R 0.56", "0.56", "R"]); 539 | var result = index.formatCurrency({ amount: 1234.56, code: "ZAR" }); 540 | expect(result).to.eql(["R 1,234.56", "1,234.56", "R"]); 541 | var result = index.formatCurrency({ amount: 1234567.89, code: "ZAR" }); 542 | expect(result).to.eql(["R 1,234,567.89", "1,234,567.89", "R"]); 543 | }); 544 | 545 | it("should return DEFAULT", () => { 546 | var result = index.formatCurrency({ amount: 0.56, code: "ZZZ" }); 547 | expect(result).to.eql(["0.56", "0.56", ""]); 548 | var result = index.formatCurrency({ amount: 1234.56, code: "ZZZ" }); 549 | expect(result).to.eql(["1234.56", "1234.56", ""]); 550 | var result = index.formatCurrency({ amount: 1234567.89, code: "ZZ" }); 551 | expect(result).to.eql(["1234567.89", "1234567.89", ""]); 552 | }); 553 | }); 554 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.18.6": 6 | version "7.18.6" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 8 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 9 | dependencies: 10 | "@babel/highlight" "^7.18.6" 11 | 12 | "@babel/generator@^7.18.9": 13 | version "7.18.9" 14 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5" 15 | integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug== 16 | dependencies: 17 | "@babel/types" "^7.18.9" 18 | "@jridgewell/gen-mapping" "^0.3.2" 19 | jsesc "^2.5.1" 20 | 21 | "@babel/helper-environment-visitor@^7.18.9": 22 | version "7.18.9" 23 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" 24 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 25 | 26 | "@babel/helper-function-name@^7.18.9": 27 | version "7.18.9" 28 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" 29 | integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== 30 | dependencies: 31 | "@babel/template" "^7.18.6" 32 | "@babel/types" "^7.18.9" 33 | 34 | "@babel/helper-hoist-variables@^7.18.6": 35 | version "7.18.6" 36 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 37 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 38 | dependencies: 39 | "@babel/types" "^7.18.6" 40 | 41 | "@babel/helper-split-export-declaration@^7.18.6": 42 | version "7.18.6" 43 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 44 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 45 | dependencies: 46 | "@babel/types" "^7.18.6" 47 | 48 | "@babel/helper-validator-identifier@^7.18.6": 49 | version "7.18.6" 50 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" 51 | integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== 52 | 53 | "@babel/highlight@^7.18.6": 54 | version "7.18.6" 55 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 56 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 57 | dependencies: 58 | "@babel/helper-validator-identifier" "^7.18.6" 59 | chalk "^2.0.0" 60 | js-tokens "^4.0.0" 61 | 62 | "@babel/parser@^7.18.6", "@babel/parser@^7.18.9": 63 | version "7.18.9" 64 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539" 65 | integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg== 66 | 67 | "@babel/runtime-corejs3@^7.10.2": 68 | version "7.18.9" 69 | resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz#7bacecd1cb2dd694eacd32a91fcf7021c20770ae" 70 | integrity sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A== 71 | dependencies: 72 | core-js-pure "^3.20.2" 73 | regenerator-runtime "^0.13.4" 74 | 75 | "@babel/runtime@^7.10.2", "@babel/runtime@^7.18.9": 76 | version "7.18.9" 77 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" 78 | integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== 79 | dependencies: 80 | regenerator-runtime "^0.13.4" 81 | 82 | "@babel/template@^7.18.6": 83 | version "7.18.6" 84 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" 85 | integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== 86 | dependencies: 87 | "@babel/code-frame" "^7.18.6" 88 | "@babel/parser" "^7.18.6" 89 | "@babel/types" "^7.18.6" 90 | 91 | "@babel/traverse@^7.7.4": 92 | version "7.18.9" 93 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98" 94 | integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg== 95 | dependencies: 96 | "@babel/code-frame" "^7.18.6" 97 | "@babel/generator" "^7.18.9" 98 | "@babel/helper-environment-visitor" "^7.18.9" 99 | "@babel/helper-function-name" "^7.18.9" 100 | "@babel/helper-hoist-variables" "^7.18.6" 101 | "@babel/helper-split-export-declaration" "^7.18.6" 102 | "@babel/parser" "^7.18.9" 103 | "@babel/types" "^7.18.9" 104 | debug "^4.1.0" 105 | globals "^11.1.0" 106 | 107 | "@babel/types@^7.18.6", "@babel/types@^7.18.9": 108 | version "7.18.9" 109 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.9.tgz#7148d64ba133d8d73a41b3172ac4b83a1452205f" 110 | integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg== 111 | dependencies: 112 | "@babel/helper-validator-identifier" "^7.18.6" 113 | to-fast-properties "^2.0.0" 114 | 115 | "@eslint/eslintrc@^1.3.0": 116 | version "1.3.0" 117 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" 118 | integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== 119 | dependencies: 120 | ajv "^6.12.4" 121 | debug "^4.3.2" 122 | espree "^9.3.2" 123 | globals "^13.15.0" 124 | ignore "^5.2.0" 125 | import-fresh "^3.2.1" 126 | js-yaml "^4.1.0" 127 | minimatch "^3.1.2" 128 | strip-json-comments "^3.1.1" 129 | 130 | "@humanwhocodes/config-array@^0.9.2": 131 | version "0.9.5" 132 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" 133 | integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== 134 | dependencies: 135 | "@humanwhocodes/object-schema" "^1.2.1" 136 | debug "^4.1.1" 137 | minimatch "^3.0.4" 138 | 139 | "@humanwhocodes/object-schema@^1.2.1": 140 | version "1.2.1" 141 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 142 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 143 | 144 | "@jridgewell/gen-mapping@^0.3.2": 145 | version "0.3.2" 146 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 147 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 148 | dependencies: 149 | "@jridgewell/set-array" "^1.0.1" 150 | "@jridgewell/sourcemap-codec" "^1.4.10" 151 | "@jridgewell/trace-mapping" "^0.3.9" 152 | 153 | "@jridgewell/resolve-uri@^3.0.3": 154 | version "3.1.0" 155 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 156 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 157 | 158 | "@jridgewell/set-array@^1.0.1": 159 | version "1.1.2" 160 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 161 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 162 | 163 | "@jridgewell/sourcemap-codec@^1.4.10": 164 | version "1.4.14" 165 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 166 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 167 | 168 | "@jridgewell/trace-mapping@^0.3.9": 169 | version "0.3.14" 170 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" 171 | integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== 172 | dependencies: 173 | "@jridgewell/resolve-uri" "^3.0.3" 174 | "@jridgewell/sourcemap-codec" "^1.4.10" 175 | 176 | "@nodelib/fs.scandir@2.1.5": 177 | version "2.1.5" 178 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 179 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 180 | dependencies: 181 | "@nodelib/fs.stat" "2.0.5" 182 | run-parallel "^1.1.9" 183 | 184 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 185 | version "2.0.5" 186 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 187 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 188 | 189 | "@nodelib/fs.walk@^1.2.3": 190 | version "1.2.8" 191 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 192 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 193 | dependencies: 194 | "@nodelib/fs.scandir" "2.1.5" 195 | fastq "^1.6.0" 196 | 197 | "@types/json-schema@^7.0.9": 198 | version "7.0.11" 199 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" 200 | integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== 201 | 202 | "@types/json5@^0.0.29": 203 | version "0.0.29" 204 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 205 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== 206 | 207 | "@types/node@^16.9.0": 208 | version "16.11.46" 209 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.46.tgz#26047602eefa47b36759d9ebb1b55ad08ce97a73" 210 | integrity sha512-x+sfpb2dMrhCQPL4NAGs64Z9hh0t72aP0dg+PuZidmPr/0Gj5ELQTjD/t46dq3DF/8ZvSHOaIyDIbAsdPshyVQ== 211 | 212 | "@typescript-eslint/eslint-plugin@^5.31.0": 213 | version "5.31.0" 214 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.31.0.tgz#cae1967b1e569e6171bbc6bec2afa4e0c8efccfe" 215 | integrity sha512-VKW4JPHzG5yhYQrQ1AzXgVgX8ZAJEvCz0QI6mLRX4tf7rnFfh5D8SKm0Pq6w5PyNfAWJk6sv313+nEt3ohWMBQ== 216 | dependencies: 217 | "@typescript-eslint/scope-manager" "5.31.0" 218 | "@typescript-eslint/type-utils" "5.31.0" 219 | "@typescript-eslint/utils" "5.31.0" 220 | debug "^4.3.4" 221 | functional-red-black-tree "^1.0.1" 222 | ignore "^5.2.0" 223 | regexpp "^3.2.0" 224 | semver "^7.3.7" 225 | tsutils "^3.21.0" 226 | 227 | "@typescript-eslint/parser@^5.31.0": 228 | version "5.31.0" 229 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.31.0.tgz#7f42d7dcc68a0a6d80a0f3d9a65063aee7bb8d2c" 230 | integrity sha512-UStjQiZ9OFTFReTrN+iGrC6O/ko9LVDhreEK5S3edmXgR396JGq7CoX2TWIptqt/ESzU2iRKXAHfSF2WJFcWHw== 231 | dependencies: 232 | "@typescript-eslint/scope-manager" "5.31.0" 233 | "@typescript-eslint/types" "5.31.0" 234 | "@typescript-eslint/typescript-estree" "5.31.0" 235 | debug "^4.3.4" 236 | 237 | "@typescript-eslint/scope-manager@5.31.0": 238 | version "5.31.0" 239 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz#f47a794ba84d9b818ab7f8f44fff55a61016c606" 240 | integrity sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg== 241 | dependencies: 242 | "@typescript-eslint/types" "5.31.0" 243 | "@typescript-eslint/visitor-keys" "5.31.0" 244 | 245 | "@typescript-eslint/type-utils@5.31.0": 246 | version "5.31.0" 247 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.31.0.tgz#70a0b7201360b5adbddb0c36080495aa08f6f3d9" 248 | integrity sha512-7ZYqFbvEvYXFn9ax02GsPcEOmuWNg+14HIf4q+oUuLnMbpJ6eHAivCg7tZMVwzrIuzX3QCeAOqKoyMZCv5xe+w== 249 | dependencies: 250 | "@typescript-eslint/utils" "5.31.0" 251 | debug "^4.3.4" 252 | tsutils "^3.21.0" 253 | 254 | "@typescript-eslint/types@5.31.0": 255 | version "5.31.0" 256 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.31.0.tgz#7aa389122b64b18e473c1672fb3b8310e5f07a9a" 257 | integrity sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g== 258 | 259 | "@typescript-eslint/typescript-estree@5.31.0": 260 | version "5.31.0" 261 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz#eb92970c9d6e3946690d50c346fb9b1d745ee882" 262 | integrity sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw== 263 | dependencies: 264 | "@typescript-eslint/types" "5.31.0" 265 | "@typescript-eslint/visitor-keys" "5.31.0" 266 | debug "^4.3.4" 267 | globby "^11.1.0" 268 | is-glob "^4.0.3" 269 | semver "^7.3.7" 270 | tsutils "^3.21.0" 271 | 272 | "@typescript-eslint/utils@5.31.0": 273 | version "5.31.0" 274 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.31.0.tgz#e146fa00dca948bfe547d665b2138a2dc1b79acd" 275 | integrity sha512-kcVPdQS6VIpVTQ7QnGNKMFtdJdvnStkqS5LeALr4rcwx11G6OWb2HB17NMPnlRHvaZP38hL9iK8DdE9Fne7NYg== 276 | dependencies: 277 | "@types/json-schema" "^7.0.9" 278 | "@typescript-eslint/scope-manager" "5.31.0" 279 | "@typescript-eslint/types" "5.31.0" 280 | "@typescript-eslint/typescript-estree" "5.31.0" 281 | eslint-scope "^5.1.1" 282 | eslint-utils "^3.0.0" 283 | 284 | "@typescript-eslint/visitor-keys@5.31.0": 285 | version "5.31.0" 286 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz#b0eca264df01ce85dceb76aebff3784629258f54" 287 | integrity sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg== 288 | dependencies: 289 | "@typescript-eslint/types" "5.31.0" 290 | eslint-visitor-keys "^3.3.0" 291 | 292 | "@ungap/promise-all-settled@1.1.2": 293 | version "1.1.2" 294 | resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" 295 | integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== 296 | 297 | acorn-jsx@^5.3.2: 298 | version "5.3.2" 299 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 300 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 301 | 302 | acorn@^8.7.1: 303 | version "8.8.0" 304 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" 305 | integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== 306 | 307 | ajv@^6.10.0, ajv@^6.12.4: 308 | version "6.12.6" 309 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 310 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 311 | dependencies: 312 | fast-deep-equal "^3.1.1" 313 | fast-json-stable-stringify "^2.0.0" 314 | json-schema-traverse "^0.4.1" 315 | uri-js "^4.2.2" 316 | 317 | ansi-colors@4.1.1: 318 | version "4.1.1" 319 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 320 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 321 | 322 | ansi-regex@^5.0.1: 323 | version "5.0.1" 324 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 325 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 326 | 327 | ansi-styles@^3.2.1: 328 | version "3.2.1" 329 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 330 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 331 | dependencies: 332 | color-convert "^1.9.0" 333 | 334 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 335 | version "4.3.0" 336 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 337 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 338 | dependencies: 339 | color-convert "^2.0.1" 340 | 341 | anymatch@~3.1.2: 342 | version "3.1.2" 343 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 344 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 345 | dependencies: 346 | normalize-path "^3.0.0" 347 | picomatch "^2.0.4" 348 | 349 | argparse@^2.0.1: 350 | version "2.0.1" 351 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 352 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 353 | 354 | aria-query@^4.2.2: 355 | version "4.2.2" 356 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" 357 | integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== 358 | dependencies: 359 | "@babel/runtime" "^7.10.2" 360 | "@babel/runtime-corejs3" "^7.10.2" 361 | 362 | array-includes@^3.1.4, array-includes@^3.1.5: 363 | version "3.1.5" 364 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" 365 | integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== 366 | dependencies: 367 | call-bind "^1.0.2" 368 | define-properties "^1.1.4" 369 | es-abstract "^1.19.5" 370 | get-intrinsic "^1.1.1" 371 | is-string "^1.0.7" 372 | 373 | array-union@^2.1.0: 374 | version "2.1.0" 375 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 376 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 377 | 378 | array.prototype.flat@^1.2.5: 379 | version "1.3.0" 380 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" 381 | integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== 382 | dependencies: 383 | call-bind "^1.0.2" 384 | define-properties "^1.1.3" 385 | es-abstract "^1.19.2" 386 | es-shim-unscopables "^1.0.0" 387 | 388 | array.prototype.flatmap@^1.3.0: 389 | version "1.3.0" 390 | resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" 391 | integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== 392 | dependencies: 393 | call-bind "^1.0.2" 394 | define-properties "^1.1.3" 395 | es-abstract "^1.19.2" 396 | es-shim-unscopables "^1.0.0" 397 | 398 | assertion-error@^1.1.0: 399 | version "1.1.0" 400 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" 401 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== 402 | 403 | ast-types-flow@^0.0.7: 404 | version "0.0.7" 405 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" 406 | integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== 407 | 408 | axe-core@^4.4.3: 409 | version "4.4.3" 410 | resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" 411 | integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== 412 | 413 | axobject-query@^2.2.0: 414 | version "2.2.0" 415 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" 416 | integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== 417 | 418 | balanced-match@^1.0.0: 419 | version "1.0.2" 420 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 421 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 422 | 423 | binary-extensions@^2.0.0: 424 | version "2.2.0" 425 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 426 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 427 | 428 | brace-expansion@^1.1.7: 429 | version "1.1.11" 430 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 431 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 432 | dependencies: 433 | balanced-match "^1.0.0" 434 | concat-map "0.0.1" 435 | 436 | braces@^3.0.2, braces@~3.0.2: 437 | version "3.0.2" 438 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 439 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 440 | dependencies: 441 | fill-range "^7.0.1" 442 | 443 | browser-stdout@1.3.1: 444 | version "1.3.1" 445 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 446 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 447 | 448 | call-bind@^1.0.0, call-bind@^1.0.2: 449 | version "1.0.2" 450 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 451 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 452 | dependencies: 453 | function-bind "^1.1.1" 454 | get-intrinsic "^1.0.2" 455 | 456 | callsites@^3.0.0: 457 | version "3.1.0" 458 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 459 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 460 | 461 | camelcase@^6.0.0: 462 | version "6.3.0" 463 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 464 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 465 | 466 | chai@^4.3.4: 467 | version "4.3.6" 468 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" 469 | integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== 470 | dependencies: 471 | assertion-error "^1.1.0" 472 | check-error "^1.0.2" 473 | deep-eql "^3.0.1" 474 | get-func-name "^2.0.0" 475 | loupe "^2.3.1" 476 | pathval "^1.1.1" 477 | type-detect "^4.0.5" 478 | 479 | chalk@^2.0.0: 480 | version "2.4.2" 481 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 482 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 483 | dependencies: 484 | ansi-styles "^3.2.1" 485 | escape-string-regexp "^1.0.5" 486 | supports-color "^5.3.0" 487 | 488 | chalk@^4.0.0, chalk@^4.1.0: 489 | version "4.1.2" 490 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 491 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 492 | dependencies: 493 | ansi-styles "^4.1.0" 494 | supports-color "^7.1.0" 495 | 496 | check-error@^1.0.2: 497 | version "1.0.2" 498 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" 499 | integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== 500 | 501 | chokidar@3.5.3: 502 | version "3.5.3" 503 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 504 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 505 | dependencies: 506 | anymatch "~3.1.2" 507 | braces "~3.0.2" 508 | glob-parent "~5.1.2" 509 | is-binary-path "~2.1.0" 510 | is-glob "~4.0.1" 511 | normalize-path "~3.0.0" 512 | readdirp "~3.6.0" 513 | optionalDependencies: 514 | fsevents "~2.3.2" 515 | 516 | cliui@^7.0.2: 517 | version "7.0.4" 518 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 519 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 520 | dependencies: 521 | string-width "^4.2.0" 522 | strip-ansi "^6.0.0" 523 | wrap-ansi "^7.0.0" 524 | 525 | color-convert@^1.9.0: 526 | version "1.9.3" 527 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 528 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 529 | dependencies: 530 | color-name "1.1.3" 531 | 532 | color-convert@^2.0.1: 533 | version "2.0.1" 534 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 535 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 536 | dependencies: 537 | color-name "~1.1.4" 538 | 539 | color-name@1.1.3: 540 | version "1.1.3" 541 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 542 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 543 | 544 | color-name@~1.1.4: 545 | version "1.1.4" 546 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 547 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 548 | 549 | concat-map@0.0.1: 550 | version "0.0.1" 551 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 552 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 553 | 554 | confusing-browser-globals@^1.0.10: 555 | version "1.0.11" 556 | resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" 557 | integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== 558 | 559 | core-js-pure@^3.20.2: 560 | version "3.24.0" 561 | resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.24.0.tgz#10eeb90dbf0d670a6b22b081aecc7deb2faec7e1" 562 | integrity sha512-uzMmW8cRh7uYw4JQtzqvGWRyC2T5+4zipQLQdi2FmiRqP83k3d6F3stv2iAlNhOs6cXN401FCD5TL0vvleuHgA== 563 | 564 | cross-spawn@^7.0.2: 565 | version "7.0.3" 566 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 567 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 568 | dependencies: 569 | path-key "^3.1.0" 570 | shebang-command "^2.0.0" 571 | which "^2.0.1" 572 | 573 | damerau-levenshtein@^1.0.8: 574 | version "1.0.8" 575 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" 576 | integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== 577 | 578 | debug@4.3.3: 579 | version "4.3.3" 580 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" 581 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== 582 | dependencies: 583 | ms "2.1.2" 584 | 585 | debug@^2.6.9: 586 | version "2.6.9" 587 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 588 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 589 | dependencies: 590 | ms "2.0.0" 591 | 592 | debug@^3.2.7: 593 | version "3.2.7" 594 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 595 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 596 | dependencies: 597 | ms "^2.1.1" 598 | 599 | debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: 600 | version "4.3.4" 601 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 602 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 603 | dependencies: 604 | ms "2.1.2" 605 | 606 | decamelize@^4.0.0: 607 | version "4.0.0" 608 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" 609 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== 610 | 611 | deep-eql@^3.0.1: 612 | version "3.0.1" 613 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" 614 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== 615 | dependencies: 616 | type-detect "^4.0.0" 617 | 618 | deep-is@^0.1.3: 619 | version "0.1.4" 620 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 621 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 622 | 623 | define-properties@^1.1.3, define-properties@^1.1.4: 624 | version "1.1.4" 625 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" 626 | integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== 627 | dependencies: 628 | has-property-descriptors "^1.0.0" 629 | object-keys "^1.1.1" 630 | 631 | diff@5.0.0: 632 | version "5.0.0" 633 | resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" 634 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== 635 | 636 | dir-glob@^3.0.1: 637 | version "3.0.1" 638 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 639 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 640 | dependencies: 641 | path-type "^4.0.0" 642 | 643 | doctrine@^2.1.0: 644 | version "2.1.0" 645 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 646 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 647 | dependencies: 648 | esutils "^2.0.2" 649 | 650 | doctrine@^3.0.0: 651 | version "3.0.0" 652 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 653 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 654 | dependencies: 655 | esutils "^2.0.2" 656 | 657 | emoji-regex@^8.0.0: 658 | version "8.0.0" 659 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 660 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 661 | 662 | emoji-regex@^9.2.2: 663 | version "9.2.2" 664 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" 665 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 666 | 667 | es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: 668 | version "1.20.1" 669 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" 670 | integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== 671 | dependencies: 672 | call-bind "^1.0.2" 673 | es-to-primitive "^1.2.1" 674 | function-bind "^1.1.1" 675 | function.prototype.name "^1.1.5" 676 | get-intrinsic "^1.1.1" 677 | get-symbol-description "^1.0.0" 678 | has "^1.0.3" 679 | has-property-descriptors "^1.0.0" 680 | has-symbols "^1.0.3" 681 | internal-slot "^1.0.3" 682 | is-callable "^1.2.4" 683 | is-negative-zero "^2.0.2" 684 | is-regex "^1.1.4" 685 | is-shared-array-buffer "^1.0.2" 686 | is-string "^1.0.7" 687 | is-weakref "^1.0.2" 688 | object-inspect "^1.12.0" 689 | object-keys "^1.1.1" 690 | object.assign "^4.1.2" 691 | regexp.prototype.flags "^1.4.3" 692 | string.prototype.trimend "^1.0.5" 693 | string.prototype.trimstart "^1.0.5" 694 | unbox-primitive "^1.0.2" 695 | 696 | es-shim-unscopables@^1.0.0: 697 | version "1.0.0" 698 | resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" 699 | integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== 700 | dependencies: 701 | has "^1.0.3" 702 | 703 | es-to-primitive@^1.2.1: 704 | version "1.2.1" 705 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 706 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 707 | dependencies: 708 | is-callable "^1.1.4" 709 | is-date-object "^1.0.1" 710 | is-symbol "^1.0.2" 711 | 712 | escalade@^3.1.1: 713 | version "3.1.1" 714 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 715 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 716 | 717 | escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: 718 | version "4.0.0" 719 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 720 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 721 | 722 | escape-string-regexp@^1.0.5: 723 | version "1.0.5" 724 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 725 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 726 | 727 | eslint-config-airbnb-base@^15.0.0: 728 | version "15.0.0" 729 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" 730 | integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== 731 | dependencies: 732 | confusing-browser-globals "^1.0.10" 733 | object.assign "^4.1.2" 734 | object.entries "^1.1.5" 735 | semver "^6.3.0" 736 | 737 | eslint-config-airbnb-typescript@^17.0.0: 738 | version "17.0.0" 739 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz#360dbcf810b26bbcf2ff716198465775f1c49a07" 740 | integrity sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g== 741 | dependencies: 742 | eslint-config-airbnb-base "^15.0.0" 743 | 744 | eslint-config-airbnb@^19.0.4: 745 | version "19.0.4" 746 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3" 747 | integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew== 748 | dependencies: 749 | eslint-config-airbnb-base "^15.0.0" 750 | object.assign "^4.1.2" 751 | object.entries "^1.1.5" 752 | 753 | eslint-config-prettier@^8.5.0: 754 | version "8.5.0" 755 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" 756 | integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== 757 | 758 | eslint-import-resolver-node@^0.3.6: 759 | version "0.3.6" 760 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" 761 | integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== 762 | dependencies: 763 | debug "^3.2.7" 764 | resolve "^1.20.0" 765 | 766 | eslint-module-utils@^2.7.3: 767 | version "2.7.3" 768 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" 769 | integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== 770 | dependencies: 771 | debug "^3.2.7" 772 | find-up "^2.1.0" 773 | 774 | eslint-plugin-import@^2.26.0: 775 | version "2.26.0" 776 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" 777 | integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== 778 | dependencies: 779 | array-includes "^3.1.4" 780 | array.prototype.flat "^1.2.5" 781 | debug "^2.6.9" 782 | doctrine "^2.1.0" 783 | eslint-import-resolver-node "^0.3.6" 784 | eslint-module-utils "^2.7.3" 785 | has "^1.0.3" 786 | is-core-module "^2.8.1" 787 | is-glob "^4.0.3" 788 | minimatch "^3.1.2" 789 | object.values "^1.1.5" 790 | resolve "^1.22.0" 791 | tsconfig-paths "^3.14.1" 792 | 793 | eslint-plugin-jsx-a11y@^6.6.1: 794 | version "6.6.1" 795 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff" 796 | integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q== 797 | dependencies: 798 | "@babel/runtime" "^7.18.9" 799 | aria-query "^4.2.2" 800 | array-includes "^3.1.5" 801 | ast-types-flow "^0.0.7" 802 | axe-core "^4.4.3" 803 | axobject-query "^2.2.0" 804 | damerau-levenshtein "^1.0.8" 805 | emoji-regex "^9.2.2" 806 | has "^1.0.3" 807 | jsx-ast-utils "^3.3.2" 808 | language-tags "^1.0.5" 809 | minimatch "^3.1.2" 810 | semver "^6.3.0" 811 | 812 | eslint-plugin-prettier@^4.2.1: 813 | version "4.2.1" 814 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" 815 | integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== 816 | dependencies: 817 | prettier-linter-helpers "^1.0.0" 818 | 819 | eslint-plugin-react-hooks@^4.6.0: 820 | version "4.6.0" 821 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" 822 | integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== 823 | 824 | eslint-plugin-react-native-globals@^0.1.1: 825 | version "0.1.2" 826 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz#ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2" 827 | integrity sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g== 828 | 829 | eslint-plugin-react-native@^4.0.0: 830 | version "4.0.0" 831 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-4.0.0.tgz#eec41984abe4970bdd7c6082dff7a98a5e34d0bb" 832 | integrity sha512-kMmdxrSY7A1WgdqaGC+rY/28rh7kBGNBRsk48ovqkQmdg5j4K+DaFmegENDzMrdLkoufKGRNkKX6bgSwQTCAxQ== 833 | dependencies: 834 | "@babel/traverse" "^7.7.4" 835 | eslint-plugin-react-native-globals "^0.1.1" 836 | 837 | eslint-plugin-react@^7.30.1: 838 | version "7.30.1" 839 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22" 840 | integrity sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg== 841 | dependencies: 842 | array-includes "^3.1.5" 843 | array.prototype.flatmap "^1.3.0" 844 | doctrine "^2.1.0" 845 | estraverse "^5.3.0" 846 | jsx-ast-utils "^2.4.1 || ^3.0.0" 847 | minimatch "^3.1.2" 848 | object.entries "^1.1.5" 849 | object.fromentries "^2.0.5" 850 | object.hasown "^1.1.1" 851 | object.values "^1.1.5" 852 | prop-types "^15.8.1" 853 | resolve "^2.0.0-next.3" 854 | semver "^6.3.0" 855 | string.prototype.matchall "^4.0.7" 856 | 857 | eslint-scope@^5.1.1: 858 | version "5.1.1" 859 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 860 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 861 | dependencies: 862 | esrecurse "^4.3.0" 863 | estraverse "^4.1.1" 864 | 865 | eslint-scope@^7.1.1: 866 | version "7.1.1" 867 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" 868 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== 869 | dependencies: 870 | esrecurse "^4.3.0" 871 | estraverse "^5.2.0" 872 | 873 | eslint-utils@^3.0.0: 874 | version "3.0.0" 875 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" 876 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== 877 | dependencies: 878 | eslint-visitor-keys "^2.0.0" 879 | 880 | eslint-visitor-keys@^2.0.0: 881 | version "2.1.0" 882 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 883 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 884 | 885 | eslint-visitor-keys@^3.3.0: 886 | version "3.3.0" 887 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" 888 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== 889 | 890 | eslint@^8.20.0: 891 | version "8.20.0" 892 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.20.0.tgz#048ac56aa18529967da8354a478be4ec0a2bc81b" 893 | integrity sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA== 894 | dependencies: 895 | "@eslint/eslintrc" "^1.3.0" 896 | "@humanwhocodes/config-array" "^0.9.2" 897 | ajv "^6.10.0" 898 | chalk "^4.0.0" 899 | cross-spawn "^7.0.2" 900 | debug "^4.3.2" 901 | doctrine "^3.0.0" 902 | escape-string-regexp "^4.0.0" 903 | eslint-scope "^7.1.1" 904 | eslint-utils "^3.0.0" 905 | eslint-visitor-keys "^3.3.0" 906 | espree "^9.3.2" 907 | esquery "^1.4.0" 908 | esutils "^2.0.2" 909 | fast-deep-equal "^3.1.3" 910 | file-entry-cache "^6.0.1" 911 | functional-red-black-tree "^1.0.1" 912 | glob-parent "^6.0.1" 913 | globals "^13.15.0" 914 | ignore "^5.2.0" 915 | import-fresh "^3.0.0" 916 | imurmurhash "^0.1.4" 917 | is-glob "^4.0.0" 918 | js-yaml "^4.1.0" 919 | json-stable-stringify-without-jsonify "^1.0.1" 920 | levn "^0.4.1" 921 | lodash.merge "^4.6.2" 922 | minimatch "^3.1.2" 923 | natural-compare "^1.4.0" 924 | optionator "^0.9.1" 925 | regexpp "^3.2.0" 926 | strip-ansi "^6.0.1" 927 | strip-json-comments "^3.1.0" 928 | text-table "^0.2.0" 929 | v8-compile-cache "^2.0.3" 930 | 931 | espree@^9.3.2: 932 | version "9.3.2" 933 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" 934 | integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== 935 | dependencies: 936 | acorn "^8.7.1" 937 | acorn-jsx "^5.3.2" 938 | eslint-visitor-keys "^3.3.0" 939 | 940 | esquery@^1.4.0: 941 | version "1.4.0" 942 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 943 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 944 | dependencies: 945 | estraverse "^5.1.0" 946 | 947 | esrecurse@^4.3.0: 948 | version "4.3.0" 949 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 950 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 951 | dependencies: 952 | estraverse "^5.2.0" 953 | 954 | estraverse@^4.1.1: 955 | version "4.3.0" 956 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 957 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 958 | 959 | estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: 960 | version "5.3.0" 961 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 962 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 963 | 964 | esutils@^2.0.2: 965 | version "2.0.3" 966 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 967 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 968 | 969 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 970 | version "3.1.3" 971 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 972 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 973 | 974 | fast-diff@^1.1.2: 975 | version "1.2.0" 976 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 977 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 978 | 979 | fast-glob@^3.2.9: 980 | version "3.2.11" 981 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" 982 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== 983 | dependencies: 984 | "@nodelib/fs.stat" "^2.0.2" 985 | "@nodelib/fs.walk" "^1.2.3" 986 | glob-parent "^5.1.2" 987 | merge2 "^1.3.0" 988 | micromatch "^4.0.4" 989 | 990 | fast-json-stable-stringify@^2.0.0: 991 | version "2.1.0" 992 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 993 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 994 | 995 | fast-levenshtein@^2.0.6: 996 | version "2.0.6" 997 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 998 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 999 | 1000 | fastq@^1.6.0: 1001 | version "1.13.0" 1002 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 1003 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 1004 | dependencies: 1005 | reusify "^1.0.4" 1006 | 1007 | file-entry-cache@^6.0.1: 1008 | version "6.0.1" 1009 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 1010 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 1011 | dependencies: 1012 | flat-cache "^3.0.4" 1013 | 1014 | fill-range@^7.0.1: 1015 | version "7.0.1" 1016 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1017 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1018 | dependencies: 1019 | to-regex-range "^5.0.1" 1020 | 1021 | find-up@5.0.0: 1022 | version "5.0.0" 1023 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 1024 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 1025 | dependencies: 1026 | locate-path "^6.0.0" 1027 | path-exists "^4.0.0" 1028 | 1029 | find-up@^2.1.0: 1030 | version "2.1.0" 1031 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1032 | integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== 1033 | dependencies: 1034 | locate-path "^2.0.0" 1035 | 1036 | flat-cache@^3.0.4: 1037 | version "3.0.4" 1038 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 1039 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 1040 | dependencies: 1041 | flatted "^3.1.0" 1042 | rimraf "^3.0.2" 1043 | 1044 | flat@^5.0.2: 1045 | version "5.0.2" 1046 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" 1047 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 1048 | 1049 | flatted@^3.1.0: 1050 | version "3.2.6" 1051 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" 1052 | integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== 1053 | 1054 | fs.realpath@^1.0.0: 1055 | version "1.0.0" 1056 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1057 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 1058 | 1059 | fsevents@~2.3.2: 1060 | version "2.3.2" 1061 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1062 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1063 | 1064 | function-bind@^1.1.1: 1065 | version "1.1.1" 1066 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1067 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1068 | 1069 | function.prototype.name@^1.1.5: 1070 | version "1.1.5" 1071 | resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" 1072 | integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== 1073 | dependencies: 1074 | call-bind "^1.0.2" 1075 | define-properties "^1.1.3" 1076 | es-abstract "^1.19.0" 1077 | functions-have-names "^1.2.2" 1078 | 1079 | functional-red-black-tree@^1.0.1: 1080 | version "1.0.1" 1081 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1082 | integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== 1083 | 1084 | functions-have-names@^1.2.2: 1085 | version "1.2.3" 1086 | resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" 1087 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== 1088 | 1089 | get-caller-file@^2.0.5: 1090 | version "2.0.5" 1091 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 1092 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 1093 | 1094 | get-func-name@^2.0.0: 1095 | version "2.0.0" 1096 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" 1097 | integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== 1098 | 1099 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 1100 | version "1.1.2" 1101 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" 1102 | integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== 1103 | dependencies: 1104 | function-bind "^1.1.1" 1105 | has "^1.0.3" 1106 | has-symbols "^1.0.3" 1107 | 1108 | get-symbol-description@^1.0.0: 1109 | version "1.0.0" 1110 | resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" 1111 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== 1112 | dependencies: 1113 | call-bind "^1.0.2" 1114 | get-intrinsic "^1.1.1" 1115 | 1116 | glob-parent@^5.1.2, glob-parent@~5.1.2: 1117 | version "5.1.2" 1118 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1119 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1120 | dependencies: 1121 | is-glob "^4.0.1" 1122 | 1123 | glob-parent@^6.0.1: 1124 | version "6.0.2" 1125 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 1126 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 1127 | dependencies: 1128 | is-glob "^4.0.3" 1129 | 1130 | glob@7.2.0: 1131 | version "7.2.0" 1132 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 1133 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 1134 | dependencies: 1135 | fs.realpath "^1.0.0" 1136 | inflight "^1.0.4" 1137 | inherits "2" 1138 | minimatch "^3.0.4" 1139 | once "^1.3.0" 1140 | path-is-absolute "^1.0.0" 1141 | 1142 | glob@^7.1.3: 1143 | version "7.2.3" 1144 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 1145 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1146 | dependencies: 1147 | fs.realpath "^1.0.0" 1148 | inflight "^1.0.4" 1149 | inherits "2" 1150 | minimatch "^3.1.1" 1151 | once "^1.3.0" 1152 | path-is-absolute "^1.0.0" 1153 | 1154 | globals@^11.1.0: 1155 | version "11.12.0" 1156 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1157 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1158 | 1159 | globals@^13.15.0: 1160 | version "13.17.0" 1161 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" 1162 | integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== 1163 | dependencies: 1164 | type-fest "^0.20.2" 1165 | 1166 | globby@^11.1.0: 1167 | version "11.1.0" 1168 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" 1169 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 1170 | dependencies: 1171 | array-union "^2.1.0" 1172 | dir-glob "^3.0.1" 1173 | fast-glob "^3.2.9" 1174 | ignore "^5.2.0" 1175 | merge2 "^1.4.1" 1176 | slash "^3.0.0" 1177 | 1178 | growl@1.10.5: 1179 | version "1.10.5" 1180 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" 1181 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== 1182 | 1183 | has-bigints@^1.0.1, has-bigints@^1.0.2: 1184 | version "1.0.2" 1185 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" 1186 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== 1187 | 1188 | has-flag@^3.0.0: 1189 | version "3.0.0" 1190 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1191 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 1192 | 1193 | has-flag@^4.0.0: 1194 | version "4.0.0" 1195 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1196 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1197 | 1198 | has-property-descriptors@^1.0.0: 1199 | version "1.0.0" 1200 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" 1201 | integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== 1202 | dependencies: 1203 | get-intrinsic "^1.1.1" 1204 | 1205 | has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: 1206 | version "1.0.3" 1207 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 1208 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 1209 | 1210 | has-tostringtag@^1.0.0: 1211 | version "1.0.0" 1212 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" 1213 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 1214 | dependencies: 1215 | has-symbols "^1.0.2" 1216 | 1217 | has@^1.0.3: 1218 | version "1.0.3" 1219 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1220 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1221 | dependencies: 1222 | function-bind "^1.1.1" 1223 | 1224 | he@1.2.0: 1225 | version "1.2.0" 1226 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 1227 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 1228 | 1229 | ignore@^5.2.0: 1230 | version "5.2.0" 1231 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" 1232 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== 1233 | 1234 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1235 | version "3.3.0" 1236 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1237 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1238 | dependencies: 1239 | parent-module "^1.0.0" 1240 | resolve-from "^4.0.0" 1241 | 1242 | imurmurhash@^0.1.4: 1243 | version "0.1.4" 1244 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1245 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 1246 | 1247 | inflight@^1.0.4: 1248 | version "1.0.6" 1249 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1250 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1251 | dependencies: 1252 | once "^1.3.0" 1253 | wrappy "1" 1254 | 1255 | inherits@2: 1256 | version "2.0.4" 1257 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1258 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1259 | 1260 | internal-slot@^1.0.3: 1261 | version "1.0.3" 1262 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" 1263 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== 1264 | dependencies: 1265 | get-intrinsic "^1.1.0" 1266 | has "^1.0.3" 1267 | side-channel "^1.0.4" 1268 | 1269 | is-bigint@^1.0.1: 1270 | version "1.0.4" 1271 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" 1272 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== 1273 | dependencies: 1274 | has-bigints "^1.0.1" 1275 | 1276 | is-binary-path@~2.1.0: 1277 | version "2.1.0" 1278 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1279 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1280 | dependencies: 1281 | binary-extensions "^2.0.0" 1282 | 1283 | is-boolean-object@^1.1.0: 1284 | version "1.1.2" 1285 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" 1286 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 1287 | dependencies: 1288 | call-bind "^1.0.2" 1289 | has-tostringtag "^1.0.0" 1290 | 1291 | is-callable@^1.1.4, is-callable@^1.2.4: 1292 | version "1.2.4" 1293 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" 1294 | integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== 1295 | 1296 | is-core-module@^2.8.1, is-core-module@^2.9.0: 1297 | version "2.9.0" 1298 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" 1299 | integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== 1300 | dependencies: 1301 | has "^1.0.3" 1302 | 1303 | is-date-object@^1.0.1: 1304 | version "1.0.5" 1305 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" 1306 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 1307 | dependencies: 1308 | has-tostringtag "^1.0.0" 1309 | 1310 | is-extglob@^2.1.1: 1311 | version "2.1.1" 1312 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1313 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1314 | 1315 | is-fullwidth-code-point@^3.0.0: 1316 | version "3.0.0" 1317 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1318 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1319 | 1320 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: 1321 | version "4.0.3" 1322 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1323 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1324 | dependencies: 1325 | is-extglob "^2.1.1" 1326 | 1327 | is-negative-zero@^2.0.2: 1328 | version "2.0.2" 1329 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" 1330 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== 1331 | 1332 | is-number-object@^1.0.4: 1333 | version "1.0.7" 1334 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" 1335 | integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== 1336 | dependencies: 1337 | has-tostringtag "^1.0.0" 1338 | 1339 | is-number@^7.0.0: 1340 | version "7.0.0" 1341 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1342 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1343 | 1344 | is-plain-obj@^2.1.0: 1345 | version "2.1.0" 1346 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" 1347 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== 1348 | 1349 | is-regex@^1.1.4: 1350 | version "1.1.4" 1351 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" 1352 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 1353 | dependencies: 1354 | call-bind "^1.0.2" 1355 | has-tostringtag "^1.0.0" 1356 | 1357 | is-shared-array-buffer@^1.0.2: 1358 | version "1.0.2" 1359 | resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" 1360 | integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== 1361 | dependencies: 1362 | call-bind "^1.0.2" 1363 | 1364 | is-string@^1.0.5, is-string@^1.0.7: 1365 | version "1.0.7" 1366 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" 1367 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 1368 | dependencies: 1369 | has-tostringtag "^1.0.0" 1370 | 1371 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1372 | version "1.0.4" 1373 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" 1374 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 1375 | dependencies: 1376 | has-symbols "^1.0.2" 1377 | 1378 | is-unicode-supported@^0.1.0: 1379 | version "0.1.0" 1380 | resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" 1381 | integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== 1382 | 1383 | is-weakref@^1.0.2: 1384 | version "1.0.2" 1385 | resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" 1386 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== 1387 | dependencies: 1388 | call-bind "^1.0.2" 1389 | 1390 | isexe@^2.0.0: 1391 | version "2.0.0" 1392 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1393 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1394 | 1395 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1396 | version "4.0.0" 1397 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1398 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1399 | 1400 | js-yaml@4.1.0, js-yaml@^4.1.0: 1401 | version "4.1.0" 1402 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 1403 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1404 | dependencies: 1405 | argparse "^2.0.1" 1406 | 1407 | jsesc@^2.5.1: 1408 | version "2.5.2" 1409 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1410 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1411 | 1412 | json-schema-traverse@^0.4.1: 1413 | version "0.4.1" 1414 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1415 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1416 | 1417 | json-stable-stringify-without-jsonify@^1.0.1: 1418 | version "1.0.1" 1419 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1420 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 1421 | 1422 | json5@^1.0.1: 1423 | version "1.0.1" 1424 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 1425 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 1426 | dependencies: 1427 | minimist "^1.2.0" 1428 | 1429 | "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2: 1430 | version "3.3.2" 1431 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz#afe5efe4332cd3515c065072bd4d6b0aa22152bd" 1432 | integrity sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q== 1433 | dependencies: 1434 | array-includes "^3.1.5" 1435 | object.assign "^4.1.2" 1436 | 1437 | language-subtag-registry@~0.3.2: 1438 | version "0.3.22" 1439 | resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" 1440 | integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== 1441 | 1442 | language-tags@^1.0.5: 1443 | version "1.0.5" 1444 | resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" 1445 | integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== 1446 | dependencies: 1447 | language-subtag-registry "~0.3.2" 1448 | 1449 | levn@^0.4.1: 1450 | version "0.4.1" 1451 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1452 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1453 | dependencies: 1454 | prelude-ls "^1.2.1" 1455 | type-check "~0.4.0" 1456 | 1457 | locate-path@^2.0.0: 1458 | version "2.0.0" 1459 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1460 | integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== 1461 | dependencies: 1462 | p-locate "^2.0.0" 1463 | path-exists "^3.0.0" 1464 | 1465 | locate-path@^6.0.0: 1466 | version "6.0.0" 1467 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 1468 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 1469 | dependencies: 1470 | p-locate "^5.0.0" 1471 | 1472 | lodash.merge@^4.6.2: 1473 | version "4.6.2" 1474 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1475 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1476 | 1477 | log-symbols@4.1.0: 1478 | version "4.1.0" 1479 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" 1480 | integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== 1481 | dependencies: 1482 | chalk "^4.1.0" 1483 | is-unicode-supported "^0.1.0" 1484 | 1485 | loose-envify@^1.4.0: 1486 | version "1.4.0" 1487 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1488 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1489 | dependencies: 1490 | js-tokens "^3.0.0 || ^4.0.0" 1491 | 1492 | loupe@^2.3.1: 1493 | version "2.3.4" 1494 | resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" 1495 | integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== 1496 | dependencies: 1497 | get-func-name "^2.0.0" 1498 | 1499 | lru-cache@^6.0.0: 1500 | version "6.0.0" 1501 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1502 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1503 | dependencies: 1504 | yallist "^4.0.0" 1505 | 1506 | merge2@^1.3.0, merge2@^1.4.1: 1507 | version "1.4.1" 1508 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1509 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1510 | 1511 | micromatch@^4.0.4: 1512 | version "4.0.5" 1513 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 1514 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 1515 | dependencies: 1516 | braces "^3.0.2" 1517 | picomatch "^2.3.1" 1518 | 1519 | minimatch@4.2.1: 1520 | version "4.2.1" 1521 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" 1522 | integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== 1523 | dependencies: 1524 | brace-expansion "^1.1.7" 1525 | 1526 | minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: 1527 | version "3.1.2" 1528 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1529 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1530 | dependencies: 1531 | brace-expansion "^1.1.7" 1532 | 1533 | minimist@^1.2.0, minimist@^1.2.6: 1534 | version "1.2.6" 1535 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" 1536 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== 1537 | 1538 | mocha@^9.1.1: 1539 | version "9.2.2" 1540 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" 1541 | integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== 1542 | dependencies: 1543 | "@ungap/promise-all-settled" "1.1.2" 1544 | ansi-colors "4.1.1" 1545 | browser-stdout "1.3.1" 1546 | chokidar "3.5.3" 1547 | debug "4.3.3" 1548 | diff "5.0.0" 1549 | escape-string-regexp "4.0.0" 1550 | find-up "5.0.0" 1551 | glob "7.2.0" 1552 | growl "1.10.5" 1553 | he "1.2.0" 1554 | js-yaml "4.1.0" 1555 | log-symbols "4.1.0" 1556 | minimatch "4.2.1" 1557 | ms "2.1.3" 1558 | nanoid "3.3.1" 1559 | serialize-javascript "6.0.0" 1560 | strip-json-comments "3.1.1" 1561 | supports-color "8.1.1" 1562 | which "2.0.2" 1563 | workerpool "6.2.0" 1564 | yargs "16.2.0" 1565 | yargs-parser "20.2.4" 1566 | yargs-unparser "2.0.0" 1567 | 1568 | ms@2.0.0: 1569 | version "2.0.0" 1570 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1571 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 1572 | 1573 | ms@2.1.2: 1574 | version "2.1.2" 1575 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1576 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1577 | 1578 | ms@2.1.3, ms@^2.1.1: 1579 | version "2.1.3" 1580 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1581 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1582 | 1583 | nanoid@3.3.1: 1584 | version "3.3.1" 1585 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" 1586 | integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== 1587 | 1588 | natural-compare@^1.4.0: 1589 | version "1.4.0" 1590 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1591 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1592 | 1593 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1594 | version "3.0.0" 1595 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1596 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1597 | 1598 | object-assign@^4.1.1: 1599 | version "4.1.1" 1600 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1601 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1602 | 1603 | object-inspect@^1.12.0, object-inspect@^1.9.0: 1604 | version "1.12.2" 1605 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" 1606 | integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== 1607 | 1608 | object-keys@^1.1.1: 1609 | version "1.1.1" 1610 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1611 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1612 | 1613 | object.assign@^4.1.2: 1614 | version "4.1.2" 1615 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 1616 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 1617 | dependencies: 1618 | call-bind "^1.0.0" 1619 | define-properties "^1.1.3" 1620 | has-symbols "^1.0.1" 1621 | object-keys "^1.1.1" 1622 | 1623 | object.entries@^1.1.5: 1624 | version "1.1.5" 1625 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" 1626 | integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== 1627 | dependencies: 1628 | call-bind "^1.0.2" 1629 | define-properties "^1.1.3" 1630 | es-abstract "^1.19.1" 1631 | 1632 | object.fromentries@^2.0.5: 1633 | version "2.0.5" 1634 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" 1635 | integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== 1636 | dependencies: 1637 | call-bind "^1.0.2" 1638 | define-properties "^1.1.3" 1639 | es-abstract "^1.19.1" 1640 | 1641 | object.hasown@^1.1.1: 1642 | version "1.1.1" 1643 | resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" 1644 | integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== 1645 | dependencies: 1646 | define-properties "^1.1.4" 1647 | es-abstract "^1.19.5" 1648 | 1649 | object.values@^1.1.5: 1650 | version "1.1.5" 1651 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" 1652 | integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== 1653 | dependencies: 1654 | call-bind "^1.0.2" 1655 | define-properties "^1.1.3" 1656 | es-abstract "^1.19.1" 1657 | 1658 | once@^1.3.0: 1659 | version "1.4.0" 1660 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1661 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1662 | dependencies: 1663 | wrappy "1" 1664 | 1665 | optionator@^0.9.1: 1666 | version "0.9.1" 1667 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1668 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 1669 | dependencies: 1670 | deep-is "^0.1.3" 1671 | fast-levenshtein "^2.0.6" 1672 | levn "^0.4.1" 1673 | prelude-ls "^1.2.1" 1674 | type-check "^0.4.0" 1675 | word-wrap "^1.2.3" 1676 | 1677 | p-limit@^1.1.0: 1678 | version "1.3.0" 1679 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1680 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 1681 | dependencies: 1682 | p-try "^1.0.0" 1683 | 1684 | p-limit@^3.0.2: 1685 | version "3.1.0" 1686 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1687 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1688 | dependencies: 1689 | yocto-queue "^0.1.0" 1690 | 1691 | p-locate@^2.0.0: 1692 | version "2.0.0" 1693 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1694 | integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== 1695 | dependencies: 1696 | p-limit "^1.1.0" 1697 | 1698 | p-locate@^5.0.0: 1699 | version "5.0.0" 1700 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 1701 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1702 | dependencies: 1703 | p-limit "^3.0.2" 1704 | 1705 | p-try@^1.0.0: 1706 | version "1.0.0" 1707 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1708 | integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== 1709 | 1710 | parent-module@^1.0.0: 1711 | version "1.0.1" 1712 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1713 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1714 | dependencies: 1715 | callsites "^3.0.0" 1716 | 1717 | path-exists@^3.0.0: 1718 | version "3.0.0" 1719 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1720 | integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== 1721 | 1722 | path-exists@^4.0.0: 1723 | version "4.0.0" 1724 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1725 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1726 | 1727 | path-is-absolute@^1.0.0: 1728 | version "1.0.1" 1729 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1730 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1731 | 1732 | path-key@^3.1.0: 1733 | version "3.1.1" 1734 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1735 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1736 | 1737 | path-parse@^1.0.7: 1738 | version "1.0.7" 1739 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1740 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1741 | 1742 | path-type@^4.0.0: 1743 | version "4.0.0" 1744 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1745 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1746 | 1747 | pathval@^1.1.1: 1748 | version "1.1.1" 1749 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" 1750 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== 1751 | 1752 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: 1753 | version "2.3.1" 1754 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1755 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1756 | 1757 | prelude-ls@^1.2.1: 1758 | version "1.2.1" 1759 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1760 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1761 | 1762 | prettier-linter-helpers@^1.0.0: 1763 | version "1.0.0" 1764 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" 1765 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== 1766 | dependencies: 1767 | fast-diff "^1.1.2" 1768 | 1769 | prettier@^2.7.1: 1770 | version "2.7.1" 1771 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" 1772 | integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== 1773 | 1774 | prop-types@^15.8.1: 1775 | version "15.8.1" 1776 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" 1777 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== 1778 | dependencies: 1779 | loose-envify "^1.4.0" 1780 | object-assign "^4.1.1" 1781 | react-is "^16.13.1" 1782 | 1783 | punycode@^2.1.0: 1784 | version "2.1.1" 1785 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1786 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1787 | 1788 | queue-microtask@^1.2.2: 1789 | version "1.2.3" 1790 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1791 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1792 | 1793 | randombytes@^2.1.0: 1794 | version "2.1.0" 1795 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 1796 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1797 | dependencies: 1798 | safe-buffer "^5.1.0" 1799 | 1800 | react-is@^16.13.1: 1801 | version "16.13.1" 1802 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 1803 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1804 | 1805 | readdirp@~3.6.0: 1806 | version "3.6.0" 1807 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1808 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1809 | dependencies: 1810 | picomatch "^2.2.1" 1811 | 1812 | regenerator-runtime@^0.13.4: 1813 | version "0.13.9" 1814 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" 1815 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== 1816 | 1817 | regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: 1818 | version "1.4.3" 1819 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" 1820 | integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== 1821 | dependencies: 1822 | call-bind "^1.0.2" 1823 | define-properties "^1.1.3" 1824 | functions-have-names "^1.2.2" 1825 | 1826 | regexpp@^3.2.0: 1827 | version "3.2.0" 1828 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" 1829 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 1830 | 1831 | require-directory@^2.1.1: 1832 | version "2.1.1" 1833 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1834 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== 1835 | 1836 | resolve-from@^4.0.0: 1837 | version "4.0.0" 1838 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1839 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1840 | 1841 | resolve@^1.20.0, resolve@^1.22.0: 1842 | version "1.22.1" 1843 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 1844 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 1845 | dependencies: 1846 | is-core-module "^2.9.0" 1847 | path-parse "^1.0.7" 1848 | supports-preserve-symlinks-flag "^1.0.0" 1849 | 1850 | resolve@^2.0.0-next.3: 1851 | version "2.0.0-next.4" 1852 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" 1853 | integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== 1854 | dependencies: 1855 | is-core-module "^2.9.0" 1856 | path-parse "^1.0.7" 1857 | supports-preserve-symlinks-flag "^1.0.0" 1858 | 1859 | reusify@^1.0.4: 1860 | version "1.0.4" 1861 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1862 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1863 | 1864 | rimraf@^3.0.2: 1865 | version "3.0.2" 1866 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1867 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1868 | dependencies: 1869 | glob "^7.1.3" 1870 | 1871 | run-parallel@^1.1.9: 1872 | version "1.2.0" 1873 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1874 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1875 | dependencies: 1876 | queue-microtask "^1.2.2" 1877 | 1878 | safe-buffer@^5.1.0: 1879 | version "5.2.1" 1880 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1881 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1882 | 1883 | semver@^6.3.0: 1884 | version "6.3.0" 1885 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1886 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1887 | 1888 | semver@^7.3.7: 1889 | version "7.3.7" 1890 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" 1891 | integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== 1892 | dependencies: 1893 | lru-cache "^6.0.0" 1894 | 1895 | serialize-javascript@6.0.0: 1896 | version "6.0.0" 1897 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" 1898 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 1899 | dependencies: 1900 | randombytes "^2.1.0" 1901 | 1902 | shebang-command@^2.0.0: 1903 | version "2.0.0" 1904 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1905 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1906 | dependencies: 1907 | shebang-regex "^3.0.0" 1908 | 1909 | shebang-regex@^3.0.0: 1910 | version "3.0.0" 1911 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1912 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1913 | 1914 | side-channel@^1.0.4: 1915 | version "1.0.4" 1916 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1917 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1918 | dependencies: 1919 | call-bind "^1.0.0" 1920 | get-intrinsic "^1.0.2" 1921 | object-inspect "^1.9.0" 1922 | 1923 | slash@^3.0.0: 1924 | version "3.0.0" 1925 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1926 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1927 | 1928 | string-width@^4.1.0, string-width@^4.2.0: 1929 | version "4.2.3" 1930 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1931 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1932 | dependencies: 1933 | emoji-regex "^8.0.0" 1934 | is-fullwidth-code-point "^3.0.0" 1935 | strip-ansi "^6.0.1" 1936 | 1937 | string.prototype.matchall@^4.0.7: 1938 | version "4.0.7" 1939 | resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" 1940 | integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== 1941 | dependencies: 1942 | call-bind "^1.0.2" 1943 | define-properties "^1.1.3" 1944 | es-abstract "^1.19.1" 1945 | get-intrinsic "^1.1.1" 1946 | has-symbols "^1.0.3" 1947 | internal-slot "^1.0.3" 1948 | regexp.prototype.flags "^1.4.1" 1949 | side-channel "^1.0.4" 1950 | 1951 | string.prototype.trimend@^1.0.5: 1952 | version "1.0.5" 1953 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" 1954 | integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== 1955 | dependencies: 1956 | call-bind "^1.0.2" 1957 | define-properties "^1.1.4" 1958 | es-abstract "^1.19.5" 1959 | 1960 | string.prototype.trimstart@^1.0.5: 1961 | version "1.0.5" 1962 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" 1963 | integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== 1964 | dependencies: 1965 | call-bind "^1.0.2" 1966 | define-properties "^1.1.4" 1967 | es-abstract "^1.19.5" 1968 | 1969 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1970 | version "6.0.1" 1971 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1972 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1973 | dependencies: 1974 | ansi-regex "^5.0.1" 1975 | 1976 | strip-bom@^3.0.0: 1977 | version "3.0.0" 1978 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1979 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== 1980 | 1981 | strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 1982 | version "3.1.1" 1983 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1984 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1985 | 1986 | supports-color@8.1.1: 1987 | version "8.1.1" 1988 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 1989 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1990 | dependencies: 1991 | has-flag "^4.0.0" 1992 | 1993 | supports-color@^5.3.0: 1994 | version "5.5.0" 1995 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1996 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1997 | dependencies: 1998 | has-flag "^3.0.0" 1999 | 2000 | supports-color@^7.1.0: 2001 | version "7.2.0" 2002 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2003 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2004 | dependencies: 2005 | has-flag "^4.0.0" 2006 | 2007 | supports-preserve-symlinks-flag@^1.0.0: 2008 | version "1.0.0" 2009 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 2010 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 2011 | 2012 | text-table@^0.2.0: 2013 | version "0.2.0" 2014 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 2015 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 2016 | 2017 | to-fast-properties@^2.0.0: 2018 | version "2.0.0" 2019 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 2020 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 2021 | 2022 | to-regex-range@^5.0.1: 2023 | version "5.0.1" 2024 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2025 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2026 | dependencies: 2027 | is-number "^7.0.0" 2028 | 2029 | tsconfig-paths@^3.14.1: 2030 | version "3.14.1" 2031 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" 2032 | integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== 2033 | dependencies: 2034 | "@types/json5" "^0.0.29" 2035 | json5 "^1.0.1" 2036 | minimist "^1.2.6" 2037 | strip-bom "^3.0.0" 2038 | 2039 | tslib@^1.8.1: 2040 | version "1.14.1" 2041 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 2042 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 2043 | 2044 | tsutils@^3.21.0: 2045 | version "3.21.0" 2046 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" 2047 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== 2048 | dependencies: 2049 | tslib "^1.8.1" 2050 | 2051 | type-check@^0.4.0, type-check@~0.4.0: 2052 | version "0.4.0" 2053 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 2054 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 2055 | dependencies: 2056 | prelude-ls "^1.2.1" 2057 | 2058 | type-detect@^4.0.0, type-detect@^4.0.5: 2059 | version "4.0.8" 2060 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 2061 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 2062 | 2063 | type-fest@^0.20.2: 2064 | version "0.20.2" 2065 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 2066 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 2067 | 2068 | typescript@^4.4.2: 2069 | version "4.7.4" 2070 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" 2071 | integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== 2072 | 2073 | unbox-primitive@^1.0.2: 2074 | version "1.0.2" 2075 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" 2076 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== 2077 | dependencies: 2078 | call-bind "^1.0.2" 2079 | has-bigints "^1.0.2" 2080 | has-symbols "^1.0.3" 2081 | which-boxed-primitive "^1.0.2" 2082 | 2083 | uri-js@^4.2.2: 2084 | version "4.4.1" 2085 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 2086 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 2087 | dependencies: 2088 | punycode "^2.1.0" 2089 | 2090 | v8-compile-cache@^2.0.3: 2091 | version "2.3.0" 2092 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 2093 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 2094 | 2095 | which-boxed-primitive@^1.0.2: 2096 | version "1.0.2" 2097 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 2098 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 2099 | dependencies: 2100 | is-bigint "^1.0.1" 2101 | is-boolean-object "^1.1.0" 2102 | is-number-object "^1.0.4" 2103 | is-string "^1.0.5" 2104 | is-symbol "^1.0.3" 2105 | 2106 | which@2.0.2, which@^2.0.1: 2107 | version "2.0.2" 2108 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2109 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2110 | dependencies: 2111 | isexe "^2.0.0" 2112 | 2113 | word-wrap@^1.2.3: 2114 | version "1.2.3" 2115 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 2116 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 2117 | 2118 | workerpool@6.2.0: 2119 | version "6.2.0" 2120 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" 2121 | integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== 2122 | 2123 | wrap-ansi@^7.0.0: 2124 | version "7.0.0" 2125 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 2126 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2127 | dependencies: 2128 | ansi-styles "^4.0.0" 2129 | string-width "^4.1.0" 2130 | strip-ansi "^6.0.0" 2131 | 2132 | wrappy@1: 2133 | version "1.0.2" 2134 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2135 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 2136 | 2137 | y18n@^5.0.5: 2138 | version "5.0.8" 2139 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 2140 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 2141 | 2142 | yallist@^4.0.0: 2143 | version "4.0.0" 2144 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2145 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2146 | 2147 | yargs-parser@20.2.4: 2148 | version "20.2.4" 2149 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" 2150 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 2151 | 2152 | yargs-parser@^20.2.2: 2153 | version "20.2.9" 2154 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 2155 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 2156 | 2157 | yargs-unparser@2.0.0: 2158 | version "2.0.0" 2159 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" 2160 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== 2161 | dependencies: 2162 | camelcase "^6.0.0" 2163 | decamelize "^4.0.0" 2164 | flat "^5.0.2" 2165 | is-plain-obj "^2.1.0" 2166 | 2167 | yargs@16.2.0: 2168 | version "16.2.0" 2169 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 2170 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 2171 | dependencies: 2172 | cliui "^7.0.2" 2173 | escalade "^3.1.1" 2174 | get-caller-file "^2.0.5" 2175 | require-directory "^2.1.1" 2176 | string-width "^4.2.0" 2177 | y18n "^5.0.5" 2178 | yargs-parser "^20.2.2" 2179 | 2180 | yocto-queue@^0.1.0: 2181 | version "0.1.0" 2182 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 2183 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 2184 | --------------------------------------------------------------------------------