├── .editorconfig ├── .gitattributes ├── .github ├── dependabot.yml └── workflows │ └── workflow-1.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── lib ├── canonical-combining-class.js ├── dehex.js ├── east-asian-width.js ├── general-category.js ├── index.js ├── index.spec.mjs ├── normalization-properties.js ├── ucd.js └── word-break.js ├── package-lock.json └── package.json /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | insert_final_newline = true 3 | charset = utf-8 4 | indent_style = space 5 | indent_size = 2 6 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: 'npm' 4 | directory: '/' 5 | schedule: 6 | interval: 'monthly' 7 | ignore: 8 | - dependency-name: '*' 9 | update-types: 10 | - 'version-update:semver-minor' 11 | - 'version-update:semver-patch' 12 | -------------------------------------------------------------------------------- /.github/workflows/workflow-1.yml: -------------------------------------------------------------------------------- 1 | name: 'Travis CI replacement' 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - '**' 7 | 8 | jobs: 9 | build-job: 10 | runs-on: 'ubuntu-latest' 11 | 12 | strategy: 13 | matrix: 14 | node-version: ['14.x', '16.x', '18.x', '20.x', '22.x'] 15 | 16 | steps: 17 | - uses: 'actions/checkout@v2' 18 | 19 | - name: 'Use Node.js ${{ matrix.node-version }}' 20 | uses: 'actions/setup-node@v1' 21 | with: 22 | node-version: '${{ matrix.node-version }}' 23 | 24 | - name: 'Actual npm tasks' 25 | run: | 26 | npm install 27 | npm run test 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | 49 | # Mine 50 | node_modules 51 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG 2 | 3 | ## 3.x.x 4 | 5 | `safe-code-point` now uses ES modules, not CommonJS modules. 6 | 7 | ## 2.x.x 8 | 9 | The API of `safe-code-point` has completely changed to asynchronously look up Unicode code point data. Code like: 10 | 11 | ```js 12 | const safeCodePoint = require('safe-code-point') 13 | 14 | const a = safeCodePoint(codePoint, '11.0') 15 | const b = safeCodePoint.generalCategory(codePoint, '11.0') 16 | ``` 17 | 18 | should change to something like: 19 | 20 | ```js 21 | const SafeCodePoint = require('safe-code-point') 22 | 23 | SafeCodePoint('11.0.0').then(safeCodePoint => { 24 | const a = safeCodePoint(codePoint) 25 | const b = safeCodePoint.generalCategory(codePoint) 26 | }) 27 | ``` 28 | 29 | `safeCodePoint.supportedVersions` has been removed. 30 | 31 | ## 1.x.x 32 | 33 | Initial release. 34 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 qntm 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # safe-code-point 2 | 3 | Package for determining whether the supplied code point is ["safe"](https://qntm.org/safe). This module (well, code very much like it) was used to generate code points for [Base65536](https://github.com/qntm/base65536), [Base32768](https://github.com/qntm/base32768) and [Base2048](https://github.com/qntm/base2048). 4 | 5 | This package supports ES modules only. 6 | 7 | ## Example 8 | 9 | ```js 10 | import SafeCodePoint from 'safe-code-point' 11 | 12 | const safeCodePoint = await SafeCodePoint('12.0.0') 13 | const numCodePoints = (1 << 16) + (1 << 20) 14 | 15 | let numSafeCodePoints = 0 16 | for (let codePoint = 0; codePoint < numCodePoints; codePoint++) { 17 | if (safeCodePoint(codePoint)) { 18 | numSafeCodePoints++ 19 | } 20 | } 21 | 22 | console.log(numSafeCodePoints) 23 | ``` 24 | 25 | ## API 26 | 27 | ### SafeCodePoint(version) 28 | 29 | Returns a promise which resolves to a `safeCodePoint` function for the supplied version of Unicode. 30 | 31 | Data is fetched from [the Unicode website](http://www.unicode.org/Public) at run time. At the time of writing, supported version strings are a subset of those seen in that directory: `'4.1.0'` to `'13.0.0'`. (Earlier versions do not provide the data in the same consumable structure, and Unicode 14.0.0 is a work in progress.) 32 | 33 | ### safeCodePoint(codePoint) 34 | 35 | Returns a Boolean indicating whether the supplied code point is safe (is not a member of any unsafe Unicode General Categories, has a canonical combining class of 0 and survives all forms of normalization). `codePoint` should be an integer from `0` to `1114111` inclusive. 36 | 37 | ### safeCodePoint.generalCategory(codepoint) 38 | 39 | Returns the Unicode General Category of the supplied code point as a two-character string, *e.g.* `"Lo"` for "Letter, other". 40 | 41 | ### safeCodePoint.wordBreak(codepoint) 42 | 43 | Returns the [Word_Break property](https://unicode.org/reports/tr29/#Table_Word_Break_Property_Values) value of the supplied code point, *e.g.* `'Numeric'`, `'ALetter'` or (in most cases) `undefined`. 44 | -------------------------------------------------------------------------------- /lib/canonical-combining-class.js: -------------------------------------------------------------------------------- 1 | // UCD Canonical_Combining_Class resources. 2 | 3 | import dehex from './dehex.js' 4 | 5 | /** Get CCC for a specific code point */ 6 | export default data => { 7 | const byCodePoint = {} 8 | 9 | // Defaults 10 | const defaultCcc = 0 11 | for (let codePoint = 0; codePoint < (1 << 20) + (1 << 16); codePoint++) { 12 | byCodePoint[codePoint] = defaultCcc 13 | } 14 | 15 | data.forEach(function (row) { 16 | const codePoints = dehex(row[0]) 17 | const ccc = Number(row[1]) 18 | 19 | codePoints.forEach(function (codePoint) { 20 | if (codePoint in byCodePoint && byCodePoint[codePoint] !== defaultCcc) { 21 | throw new Error(codePoint) 22 | } 23 | byCodePoint[codePoint] = ccc 24 | }) 25 | }) 26 | 27 | return codePoint => { 28 | if (!(codePoint in byCodePoint)) { 29 | throw new Error('Canonical_Combining_Class unknown for ' + String(codePoint)) 30 | } 31 | return byCodePoint[codePoint] 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /lib/dehex.js: -------------------------------------------------------------------------------- 1 | // Returns an array of code points 2 | // e.g. "0000" becomes `[0]` 3 | // e.g. "0000..000A" becomes `[0, ..., 10]` 4 | export default str => { 5 | const components = str.split('..') 6 | if (components.length !== 1 && components.length !== 2) { 7 | throw new Error('Could not dehex this string') 8 | } 9 | const lower = parseInt(components[0], 16) 10 | const upper = components.length === 2 ? parseInt(components[1], 16) : lower 11 | const codePoints = [] 12 | for (let codePoint = lower; codePoint <= upper; codePoint++) { 13 | codePoints.push(codePoint) 14 | } 15 | return codePoints 16 | } 17 | -------------------------------------------------------------------------------- /lib/east-asian-width.js: -------------------------------------------------------------------------------- 1 | // UCD normalization property resources. 2 | 3 | import dehex from './dehex.js' 4 | 5 | /** Get property value for a specific code point, or default if set */ 6 | export default data => { 7 | const byCodePoint = {} 8 | 9 | // Defaults 10 | for (let codePoint = 0; codePoint < (1 << 20) + (1 << 16); codePoint++) { 11 | byCodePoint[codePoint] = undefined // unknown 12 | } 13 | 14 | data.forEach(function (row) { 15 | const codePoints = dehex(row[0]) 16 | const eastAsianWidth = row[1] // "A", "F", "H", "N", "Na" or "W" 17 | 18 | codePoints.forEach(function (codePoint) { 19 | byCodePoint[codePoint] = eastAsianWidth 20 | }) 21 | }) 22 | 23 | return codePoint => { 24 | const value = byCodePoint[codePoint] 25 | if (value === undefined) { 26 | throw new Error('Code point has no East_Asian_Width specified: ' + String(codePoint)) 27 | } 28 | return value 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/general-category.js: -------------------------------------------------------------------------------- 1 | /** UCD General_Category resources. */ 2 | 3 | import dehex from './dehex.js' 4 | 5 | /** Get GC for a specific code point */ 6 | export default data => { 7 | const byCodePoint = {} 8 | 9 | data.forEach(function (row) { 10 | const codePoints = dehex(row[0]) 11 | const gc = row[1] // E.g. "Lo", "Po" 12 | 13 | codePoints.forEach(function (codePoint) { 14 | if (codePoint in byCodePoint) { 15 | throw new Error(codePoint) 16 | } 17 | byCodePoint[codePoint] = gc 18 | }) 19 | }) 20 | 21 | return codePoint => { 22 | if (!(codePoint in byCodePoint)) { 23 | throw new Error('General_Category unknown for ' + String(codePoint)) 24 | } 25 | return byCodePoint[codePoint] 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | Ascertain whether a Unicode code point is "safe" for use in a binary encoding. 3 | */ 4 | 5 | import * as ucd from './ucd.js' 6 | import canonicalCombiningClass from './canonical-combining-class.js' 7 | import eastAsianWidth from './east-asian-width.js' 8 | import generalCategory from './general-category.js' 9 | import normalizationProperties from './normalization-properties.js' 10 | import wordBreak from './word-break.js' 11 | 12 | const quickChecks = [ 13 | 'NFD_QC', // canonical decomposition 14 | 'NFC_QC', // canonical decomposition + canonical composition 15 | 'NFKD_QC', // compatibility decomposition 16 | 'NFKC_QC' // compatibility decomposition + canonical composition 17 | ] 18 | 19 | // General Categories CONSIDERED SAFE 20 | const gcIsSafe = { 21 | Ll: true, // Letter, Lowercase 22 | Lm: true, // Letter, Modifier 23 | Lo: true, // Letter, Other 24 | Lt: true, // Letter, Titlecase 25 | Lu: true, // Letter, Uppercase 26 | Me: false, // Mark, Enclosing 27 | Mn: false, // Mark, Nonspacing 28 | Mc: false, // Mark, Spacing Combining 29 | Nd: true, // Number, Decimal Digit 30 | Nl: true, // Number, Letter 31 | No: true, // Number, Other 32 | Cc: false, // Other, Control 33 | Cf: false, // Other, Format 34 | Cn: false, // Other, Not Assigned (no characters in the file have this property) 35 | Co: false, // Other, Private Use 36 | Cs: false, // Other, Surrogate 37 | Pe: false, // Punctuation, Close 38 | Pc: false, // Punctuation, Connector 39 | Pd: false, // Punctuation, Dash 40 | Pf: false, // Punctuation, Final quote (may behave like Ps or Pe depending on usage) 41 | Pi: false, // Punctuation, Initial quote (may behave like Ps or Pe depending on usage) 42 | Ps: false, // Punctuation, Open 43 | Po: false, // Punctuation, Other 44 | Zl: false, // Separator, Line 45 | Zp: false, // Separator, Paragraph 46 | Zs: false, // Separator, Space 47 | Sc: true, // Symbol, Currency 48 | Sm: true, // Symbol, Math 49 | Sk: true, // Symbol, Modifier 50 | So: true // Symbol, Other 51 | } 52 | 53 | export default async version => { 54 | // First load up a bunch of data 55 | const cccData = await ucd.get(version, 'extracted/DerivedCombiningClass.txt') 56 | const eawData = await ucd.get(version, 'EastAsianWidth.txt') 57 | const gcData = await ucd.get(version, 'extracted/DerivedGeneralCategory.txt') 58 | const npData = await ucd.get(version, 'DerivedNormalizationProps.txt') 59 | const wbpData = await ucd.get(version, 'auxiliary/WordBreakProperty.txt') 60 | 61 | const ccc = canonicalCombiningClass(cccData) 62 | const eaw = eastAsianWidth(eawData) 63 | const gc = generalCategory(gcData) 64 | const np = normalizationProperties(npData) 65 | const wb = wordBreak(wbpData) 66 | 67 | const safeCodePoint = codePoint => { 68 | const passesQuickChecks = quickChecks.every(property => 69 | np(codePoint, property) === 'Y' 70 | ) 71 | const inSafeGc = gcIsSafe[gc(codePoint)] === true 72 | const hasCcc0 = ccc(codePoint) === 0 73 | 74 | return passesQuickChecks && inSafeGc && hasCcc0 75 | } 76 | 77 | safeCodePoint.canonicalCombiningClass = ccc 78 | safeCodePoint.eastAsianWidth = eaw 79 | safeCodePoint.generalCategory = gc 80 | safeCodePoint.normalizationProperties = np 81 | safeCodePoint.wordBreak = wb 82 | 83 | return safeCodePoint 84 | } 85 | -------------------------------------------------------------------------------- /lib/index.spec.mjs: -------------------------------------------------------------------------------- 1 | /* eslint-env jasmine */ 2 | 3 | // Jasmine can be configured to handle ES modules with .js extension, 4 | // but naming this file .mjs is easier 5 | 6 | import dehex from './dehex.js' 7 | import SafeCodePoint from './index.js' 8 | 9 | describe('safe-code-point', () => { 10 | let scp7 11 | let scp8 12 | let scp9 13 | let scp10 14 | let scp11 15 | let scp12 16 | let scp13 17 | 18 | // First load some files 19 | beforeAll(async () => { 20 | scp7 = await SafeCodePoint('7.0.0') 21 | }) 22 | beforeAll(async () => { 23 | scp8 = await SafeCodePoint('8.0.0') 24 | }) 25 | beforeAll(async () => { 26 | scp9 = await SafeCodePoint('9.0.0') 27 | }) 28 | beforeAll(async () => { 29 | scp10 = await SafeCodePoint('10.0.0') 30 | }) 31 | beforeAll(async () => { 32 | scp11 = await SafeCodePoint('11.0.0') 33 | }) 34 | beforeAll(async () => { 35 | scp12 = await SafeCodePoint('12.0.0') 36 | }) 37 | beforeAll(async () => { 38 | scp13 = await SafeCodePoint('13.0.0') 39 | }) 40 | 41 | describe('canonicalCombiningClass', () => { 42 | it('works', () => { 43 | expect(scp8.canonicalCombiningClass(0)).toBe(0) 44 | expect(scp8.canonicalCombiningClass(30)).toBe(0) 45 | expect(scp8.canonicalCombiningClass(parseInt('0345', 16))).toBe(240) 46 | }) 47 | }) 48 | 49 | describe('dehex', () => { 50 | it('works', () => { 51 | expect(dehex('0000')).toEqual([0]) 52 | expect(dehex('0000..0002')).toEqual([0, 1, 2]) 53 | expect(dehex('000A..000C')).toEqual([10, 11, 12]) 54 | }) 55 | }) 56 | 57 | describe('eastAsianWidth', () => { 58 | it('works', () => { 59 | expect(scp8.eastAsianWidth(0)).toBe('N') 60 | expect(scp8.eastAsianWidth(0x001F)).toBe('N') 61 | expect(scp8.eastAsianWidth(0x0020)).toBe('Na') 62 | 63 | expect(scp9.eastAsianWidth(0x00F8)).toBe('A') 64 | expect(() => scp9.eastAsianWidth(0xABFF)).toThrow() 65 | 66 | expect(() => scp10.eastAsianWidth(0xE1000)).toThrow() 67 | expect(scp10.eastAsianWidth(0x30000)).toBe('W') 68 | }) 69 | }) 70 | 71 | describe('generalCategory', () => { 72 | it('works', () => { 73 | expect(scp9.generalCategory(0)).toBe('Cc') 74 | expect(scp9.generalCategory(31)).toBe('Cc') 75 | expect(scp9.generalCategory(parseInt('055A', 16))).toBe('Po') 76 | }) 77 | }) 78 | 79 | describe('normalizationProperties', () => { 80 | it('works', () => { 81 | expect(scp10.normalizationProperties(parseInt('037A', 16), 'FC_NFKC')).toBe('0020 03B9') 82 | expect(scp10.normalizationProperties(parseInt('E0002', 16), 'NFKC_CF')).toBe('') 83 | expect(scp10.normalizationProperties(parseInt('FB1D', 16), 'NFC_QC')).toBe('N') 84 | expect(scp10.normalizationProperties(parseInt('10FFFF', 16), 'NFKD_QC')).toBe('Y') 85 | }) 86 | }) 87 | 88 | describe('wordBreak', () => { 89 | it('works', () => { 90 | expect(() => scp13.wordBreak(-1)).toThrow() 91 | expect(scp13.wordBreak(parseInt('0000', 16))).toBeUndefined() 92 | expect(scp13.wordBreak(parseInt('0022', 16))).toBe('Double_Quote') 93 | expect(scp13.wordBreak(parseInt('0065', 16))).toBe('ALetter') 94 | }) 95 | }) 96 | 97 | describe('safeCodePoint', () => { 98 | it('works', () => { 99 | expect(scp12(0)).toBe(false) 100 | expect(scp12(36)).toBe(true) 101 | expect(scp12(65)).toBe(true) 102 | }) 103 | 104 | it('README example', () => { 105 | const numCodePoints = (1 << 16) + (1 << 20) 106 | const getNumSafeCodePoints = safeCodePoint => { 107 | let numSafeCodePoints = 0 108 | for (let codePoint = 0; codePoint < numCodePoints; codePoint++) { 109 | if (safeCodePoint(codePoint)) { 110 | numSafeCodePoints++ 111 | } 112 | } 113 | return numSafeCodePoints 114 | } 115 | 116 | expect(getNumSafeCodePoints(scp7)).toBe(93510) 117 | expect(getNumSafeCodePoints(scp8)).toBe(101064) 118 | expect(getNumSafeCodePoints(scp9)).toBe(108397) 119 | expect(getNumSafeCodePoints(scp10)).toBe(116813) 120 | expect(getNumSafeCodePoints(scp11)).toBe(117422) 121 | expect(getNumSafeCodePoints(scp12)).toBe(117927) 122 | }) 123 | }) 124 | 125 | describe('base65536', () => { 126 | it('works', () => { 127 | const safeRange = (min, max) => { 128 | for (let codePoint = min; codePoint < max; codePoint++) { 129 | if (scp8.generalCategory(codePoint) !== 'Lo' || !scp8(codePoint)) { 130 | return false 131 | } 132 | } 133 | return true 134 | } 135 | 136 | const getAllSafeRanges = rangeSize => { 137 | const allSafeRanges = [] 138 | for (let codePoint = 0; codePoint < (1 << 16) + (1 << 20); codePoint += rangeSize) { 139 | if (safeRange(codePoint, codePoint + rangeSize)) { 140 | allSafeRanges.push(codePoint) 141 | } 142 | } 143 | return allSafeRanges 144 | } 145 | 146 | const allSafeRanges = getAllSafeRanges(1 << 8) 147 | 148 | const paddingBlockStart = String.fromCodePoint(allSafeRanges.shift()) 149 | expect(paddingBlockStart).toBe('ᔀ') 150 | 151 | const blockStarts = allSafeRanges.slice(0, 1 << 8).map(x => String.fromCodePoint(x)).join('') 152 | expect(blockStarts).toBe( 153 | '㐀㔀㘀㜀㠀㤀㨀㬀㰀㴀㸀㼀䀀䄀䈀䌀' + 154 | '䐀䔀䘀䜀䠀䤀䨀䬀䰀一伀倀儀刀匀吀' + 155 | '唀嘀圀堀夀娀嬀尀崀帀开怀愀戀挀搀' + 156 | '攀昀最栀椀樀欀氀洀渀漀瀀焀爀猀琀' + 157 | '甀瘀眀砀礀稀笀簀紀縀缀耀脀舀茀萀' + 158 | '蔀蘀蜀蠀褀言謀谀贀踀輀退鄀鈀錀鐀' + 159 | '销阀需頀餀騀鬀鰀鴀鸀ꄀꈀꌀꔀ𐘀𒀀' + 160 | '𒄀𒈀𓀀𓄀𓈀𓌀𔐀𔔀𖠀𖤀𠀀𠄀𠈀𠌀𠐀𠔀' + 161 | '𠘀𠜀𠠀𠤀𠨀𠬀𠰀𠴀𠸀𠼀𡀀𡄀𡈀𡌀𡐀𡔀' + 162 | '𡘀𡜀𡠀𡤀𡨀𡬀𡰀𡴀𡸀𡼀𢀀𢄀𢈀𢌀𢐀𢔀' + 163 | '𢘀𢜀𢠀𢤀𢨀𢬀𢰀𢴀𢸀𢼀𣀀𣄀𣈀𣌀𣐀𣔀' + 164 | '𣘀𣜀𣠀𣤀𣨀𣬀𣰀𣴀𣸀𣼀𤀀𤄀𤈀𤌀𤐀𤔀' + 165 | '𤘀𤜀𤠀𤤀𤨀𤬀𤰀𤴀𤸀𤼀𥀀𥄀𥈀𥌀𥐀𥔀' + 166 | '𥘀𥜀𥠀𥤀𥨀𥬀𥰀𥴀𥸀𥼀𦀀𦄀𦈀𦌀𦐀𦔀' + 167 | '𦘀𦜀𦠀𦤀𦨀𦬀𦰀𦴀𦸀𦼀𧀀𧄀𧈀𧌀𧐀𧔀' + 168 | '𧘀𧜀𧠀𧤀𧨀𧬀𧰀𧴀𧸀𧼀𨀀𨄀𨈀𨌀𨐀𨔀' 169 | ) 170 | 171 | // Check East_Asian_Width properties. Each block of 256 characters 172 | // has the same East_Asian_Width property. 243 of the blocks are 'W' (wide), 173 | // the other 13 + 1 are 'N' (neutral, which in effect is narrow). 174 | // This is significant when considering rendering and wrapping. 175 | const allBlockStarts = [...blockStarts].map(x => x.codePointAt(0)) 176 | const neutralBlockStarts = [...'ᔀꔀ𐘀𒀀𒄀𒈀𓀀𓄀𓈀𓌀𔐀𔔀𖠀𖤀'].map(x => x.codePointAt(0)) 177 | allBlockStarts.forEach(blockStart => { 178 | for (let i = 0; i < 1 << 8; i++) { 179 | const codePoint = blockStart + i 180 | const isInNeutralBlock = neutralBlockStarts 181 | .some(neutralBlockStart => neutralBlockStart <= codePoint && codePoint < neutralBlockStart + (1 << 8)) 182 | expect(scp8.eastAsianWidth(codePoint)).toBe(isInNeutralBlock ? 'N' : 'W') 183 | } 184 | }) 185 | }) 186 | }) 187 | 188 | describe('base32768', () => { 189 | it('works', () => { 190 | const safeRange = function (min, max) { 191 | for (let codePoint = min; codePoint < max; codePoint++) { 192 | if (!scp9(codePoint)) { 193 | return false 194 | } 195 | } 196 | return true 197 | } 198 | 199 | const getAllSafeRanges = rangeSize => { 200 | const allSafeRanges = [] 201 | for (let codePoint = 0; codePoint < (1 << 16) + (1 << 20); codePoint += rangeSize) { 202 | if (safeRange(codePoint, codePoint + rangeSize)) { 203 | allSafeRanges.push(codePoint) 204 | } 205 | } 206 | return allSafeRanges 207 | } 208 | 209 | const rangeSize = 5 210 | const allSafeRanges = getAllSafeRanges(1 << rangeSize) 211 | 212 | const repertoireSizes = [] 213 | for (let i = 15; i > 0; i -= 8) { // Base32768 is a 15-bit encoding of 8-bit binary data 214 | repertoireSizes.unshift(i - rangeSize) 215 | } 216 | 217 | const repertoireOffsets = repertoireSizes 218 | .map(x => 1 << x) 219 | .map((x, i, arr) => x + (i === 0 ? 0 : arr[i - 1])) // cumulative sum 220 | .map((offset, i, arr) => allSafeRanges 221 | .slice(i === 0 ? 0 : arr[i - 1], arr[i]) 222 | .map(x => String.fromCodePoint(x)) 223 | .join('') 224 | ) 225 | .reverse() 226 | 227 | expect(repertoireOffsets).toEqual([ 228 | 'ҠԀڀڠݠހ߀ကႠᄀᄠᅀᆀᇠሀሠበዠጠᎠᏀᐠᑀᑠᒀᒠᓀᓠᔀᔠᕀᕠᖀᖠᗀᗠᘀᘠᙀᚠᛀកᠠᡀᣀᦀ᧠ᨠᯀᰀᴀ⇠⋀⍀⍠⎀⎠⏀␀─┠╀╠▀■◀◠☀☠♀♠⚀⚠⛀⛠✀✠❀➀➠⠀⠠⡀⡠⢀⢠⣀⣠⤀⤠⥀⥠⦠⨠⩀⪀⪠⫠⬀⬠⭀ⰀⲀⲠⳀⴀⵀ⺠⻀㇀㐀㐠㑀㑠㒀㒠㓀㓠㔀㔠㕀㕠㖀㖠㗀㗠㘀㘠㙀㙠㚀㚠㛀㛠㜀㜠㝀㝠㞀㞠㟀㟠㠀㠠㡀㡠㢀㢠㣀㣠㤀㤠㥀㥠㦀㦠㧀㧠㨀㨠㩀㩠㪀㪠㫀㫠㬀㬠㭀㭠㮀㮠㯀㯠㰀㰠㱀㱠㲀㲠㳀㳠㴀㴠㵀㵠㶀㶠㷀㷠㸀㸠㹀㹠㺀㺠㻀㻠㼀㼠㽀㽠㾀㾠㿀㿠䀀䀠䁀䁠䂀䂠䃀䃠䄀䄠䅀䅠䆀䆠䇀䇠䈀䈠䉀䉠䊀䊠䋀䋠䌀䌠䍀䍠䎀䎠䏀䏠䐀䐠䑀䑠䒀䒠䓀䓠䔀䔠䕀䕠䖀䖠䗀䗠䘀䘠䙀䙠䚀䚠䛀䛠䜀䜠䝀䝠䞀䞠䟀䟠䠀䠠䡀䡠䢀䢠䣀䣠䤀䤠䥀䥠䦀䦠䧀䧠䨀䨠䩀䩠䪀䪠䫀䫠䬀䬠䭀䭠䮀䮠䯀䯠䰀䰠䱀䱠䲀䲠䳀䳠䴀䴠䵀䵠䶀䷀䷠一丠乀习亀亠什仠伀传佀你侀侠俀俠倀倠偀偠傀傠僀僠儀儠兀兠冀冠净几刀删剀剠劀加勀勠匀匠區占厀厠叀叠吀吠呀呠咀咠哀哠唀唠啀啠喀喠嗀嗠嘀嘠噀噠嚀嚠囀因圀圠址坠垀垠埀埠堀堠塀塠墀墠壀壠夀夠奀奠妀妠姀姠娀娠婀婠媀媠嫀嫠嬀嬠孀孠宀宠寀寠尀尠局屠岀岠峀峠崀崠嵀嵠嶀嶠巀巠帀帠幀幠庀庠廀廠开张彀彠往徠忀忠怀怠恀恠悀悠惀惠愀愠慀慠憀憠懀懠戀戠所扠技抠拀拠挀挠捀捠掀掠揀揠搀搠摀摠撀撠擀擠攀攠敀敠斀斠旀无昀映晀晠暀暠曀曠最朠杀杠枀枠柀柠栀栠桀桠梀梠检棠椀椠楀楠榀榠槀槠樀樠橀橠檀檠櫀櫠欀欠歀歠殀殠毀毠氀氠汀池沀沠泀泠洀洠浀浠涀涠淀淠渀渠湀湠満溠滀滠漀漠潀潠澀澠激濠瀀瀠灀灠炀炠烀烠焀焠煀煠熀熠燀燠爀爠牀牠犀犠狀狠猀猠獀獠玀玠珀珠琀琠瑀瑠璀璠瓀瓠甀甠畀畠疀疠痀痠瘀瘠癀癠皀皠盀盠眀眠着睠瞀瞠矀矠砀砠础硠碀碠磀磠礀礠祀祠禀禠秀秠稀稠穀穠窀窠竀章笀笠筀筠简箠節篠簀簠籀籠粀粠糀糠紀素絀絠綀綠緀締縀縠繀繠纀纠绀绠缀缠罀罠羀羠翀翠耀耠聀聠肀肠胀胠脀脠腀腠膀膠臀臠舀舠艀艠芀芠苀苠茀茠荀荠莀莠菀菠萀萠葀葠蒀蒠蓀蓠蔀蔠蕀蕠薀薠藀藠蘀蘠虀虠蚀蚠蛀蛠蜀蜠蝀蝠螀螠蟀蟠蠀蠠血衠袀袠裀裠褀褠襀襠覀覠觀觠言訠詀詠誀誠諀諠謀謠譀譠讀讠诀诠谀谠豀豠貀負賀賠贀贠赀赠趀趠跀跠踀踠蹀蹠躀躠軀軠輀輠轀轠辀辠迀迠退造遀遠邀邠郀郠鄀鄠酀酠醀醠釀釠鈀鈠鉀鉠銀銠鋀鋠錀錠鍀鍠鎀鎠鏀鏠鐀鐠鑀鑠钀钠铀铠销锠镀镠門閠闀闠阀阠陀陠隀隠雀雠需霠靀靠鞀鞠韀韠頀頠顀顠颀颠飀飠餀餠饀饠馀馠駀駠騀騠驀驠骀骠髀髠鬀鬠魀魠鮀鮠鯀鯠鰀鰠鱀鱠鲀鲠鳀鳠鴀鴠鵀鵠鶀鶠鷀鷠鸀鸠鹀鹠麀麠黀黠鼀鼠齀齠龀龠ꀀꀠꁀꁠꂀꂠꃀꃠꄀꄠꅀꅠꆀꆠꇀꇠꈀꈠꉀꉠꊀꊠꋀꋠꌀꌠꍀꍠꎀꎠꏀꏠꐀꐠꑀꑠ꒠ꔀꔠꕀꕠꖀꖠꗀꗠꙀꚠꛀ꜀꜠ꝀꞀꡀ', 229 | 'ƀɀɠʀ' 230 | ]) 231 | }) 232 | }) 233 | 234 | describe('base2048', () => { 235 | it('works', () => { 236 | const repertoireSizes = [] 237 | for (let i = 11; i > 0; i -= 8) { // Base2048 is an 11-bit encoding of 8-bit binary data 238 | repertoireSizes.unshift(1 << i) 239 | } 240 | 241 | let codePoint = 0 242 | const repertoires = repertoireSizes 243 | .map(repertoireSize => { 244 | const codePoints = [] 245 | while (codePoints.length < repertoireSize) { 246 | if ( 247 | scp10(codePoint) && 248 | !scp10.generalCategory(codePoint).startsWith('S') && 249 | scp10.generalCategory(codePoint) !== 'Lm' 250 | ) { 251 | codePoints.push(codePoint) 252 | } 253 | codePoint++ 254 | } 255 | return codePoints 256 | }) 257 | .map(codePoints => codePoints.map(x => String.fromCodePoint(x)).join('')) 258 | .reverse() 259 | 260 | expect(repertoires).toEqual([ 261 | '89ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÆÐØÞßæðøþĐđĦħıĸŁłŊŋŒœŦŧƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƢƣƤƥƦƧƨƩƪƫƬƭƮƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃǝǤǥǶǷȜȝȠȡȢȣȤȥȴȵȶȷȸȹȺȻȼȽȾȿɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯͰͱͲͳͶͷͻͼͽͿΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϏϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϳϷϸϺϻϼϽϾϿЂЄЅІЈЉЊЋЏАБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзиклмнопрстуфхцчшщъыьэюяђєѕіјљњћџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӃӄӅӆӇӈӉӊӋӌӍӎӏӔӕӘәӠӡӨөӶӷӺӻӼӽӾӿԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣԤԥԦԧԨԩԪԫԬԭԮԯԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆאבגדהוזחטיךכלםמןנסעףפץצקרשתװױײؠءابةتثجحخدذرزسشصضطظعغػؼؽؾؿفقكلمنهوىي٠١٢٣٤٥٦٧٨٩ٮٯٱٲٳٴٹٺٻټٽپٿڀځڂڃڄڅچڇڈډڊڋڌڍڎڏڐڑڒړڔڕږڗژڙښڛڜڝڞڟڠڡڢڣڤڥڦڧڨکڪګڬڭڮگڰڱڲڳڴڵڶڷڸڹںڻڼڽھڿہۃۄۅۆۇۈۉۊۋیۍێۏېۑےەۮۯ۰۱۲۳۴۵۶۷۸۹ۺۻۼۿܐܒܓܔܕܖܗܘܙܚܛܜܝܞܟܠܡܢܣܤܥܦܧܨܩܪܫܬܭܮܯݍݎݏݐݑݒݓݔݕݖݗݘݙݚݛݜݝݞݟݠݡݢݣݤݥݦݧݨݩݪݫݬݭݮݯݰݱݲݳݴݵݶݷݸݹݺݻݼݽݾݿހށނރބޅކއވމފދތލގޏސޑޒޓޔޕޖޗޘޙޚޛޜޝޞޟޠޡޢޣޤޥޱ߀߁߂߃߄߅߆߇߈߉ߊߋߌߍߎߏߐߑߒߓߔߕߖߗߘߙߚߛߜߝߞߟߠߡߢߣߤߥߦߧߨߩߪࠀࠁࠂࠃࠄࠅࠆࠇࠈࠉࠊࠋࠌࠍࠎࠏࠐࠑࠒࠓࠔࠕࡀࡁࡂࡃࡄࡅࡆࡇࡈࡉࡊࡋࡌࡍࡎࡏࡐࡑࡒࡓࡔࡕࡖࡗࡘࡠࡡࡢࡣࡤࡥࡦࡧࡨࡩࡪࢠࢡࢢࢣࢤࢥࢦࢧࢨࢩࢪࢫࢬࢭࢮࢯࢰࢱࢲࢳࢴࢶࢷࢸࢹࢺࢻࢼࢽऄअआइईउऊऋऌऍऎएऐऑऒओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसहऽॐॠॡ०१२३४५६७८९ॲॳॴॵॶॷॸॹॺॻॼॽॾॿঀঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহঽৎৠৡ০১২৩৪৫৬৭৮৯ৰৱ৴৵৶৷৸৹ৼਅਆਇਈਉਊਏਐਓਔਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਵਸਹੜ੦੧੨੩੪੫੬੭੮੯ੲੳੴઅઆઇઈઉઊઋઌઍએઐઑઓઔકખગઘઙચછજઝઞટઠડઢણતથદધનપફબભમયરલળવશષસહઽૐૠૡ૦૧૨૩૪૫૬૭૮૯ૹଅଆଇଈଉଊଋଌଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଳଵଶଷସହଽୟୠୡ୦୧୨୩୪୫୬୭୮୯ୱ୲୳୴୵୶୷ஃஅஆஇஈஉஊஎஏஐஒஓகஙசஜஞடணதநனபமயரறலளழவஶஷஸஹௐ௦௧௨௩௪௫௬௭௮௯௰௱௲అఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళఴవశషసహఽౘౙౚౠౡ౦౧౨౩౪౫౬౭౮౯౸౹౺౻౼౽౾ಀಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹಽೞೠೡ೦೧೨೩೪೫೬೭೮೯ೱೲഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനഩപഫബഭമയരറലളഴവശഷസഹഺഽൎൔൕൖ൘൙൚൛൜൝൞ൟൠൡ൦൧൨൩൪൫൬൭൮൯൰൱൲൳൴൵൶൷൸ൺൻർൽൾൿඅආඇඈඉඊඋඌඍඎඏඐඑඒඓඔඕඖකඛගඝඞඟචඡජඣඤඥඦටඨඩඪණඬතථදධනඳපඵබභමඹයරලවශෂසහළෆ෦෧෨෩෪෫෬෭෮෯กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะาเแโใไๅ๐๑๒๓๔๕๖๗๘๙ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮຯະາຽເແໂໃໄ໐໑໒໓໔໕໖໗໘໙ໞໟༀ༠༡༢༣༤༥༦༧༨༩༪༫༬༭༮༯༰༱༲༳ཀཁགངཅཆཇཉཊཋཌཎཏཐདནཔཕབམཙཚཛཝཞཟའཡརལཤཥསཧཨཪཫཬྈྉྊྋྌကခဂဃငစဆဇဈဉညဋဌဍဎဏတထဒဓနပဖဗဘမယရလဝသဟဠအဢဣဤဥဧဨဩဪဿ၀၁၂၃၄၅၆၇၈၉ၐၑၒၓၔၕ', 262 | '01234567' 263 | ]) 264 | }) 265 | }) 266 | 267 | describe('base2e15', () => { 268 | it('is not safe', () => { 269 | const repertoires = [ 270 | [0x3480, 0x4DB6], 271 | [0x4E00, 0x8926], 272 | [0xAC00, 0xD7A4], 273 | [0x3400, 0x3480] 274 | ] 275 | const badGc = [] 276 | const badCcc = [] 277 | const badNfdQc = [] 278 | const badNfkdQc = [] 279 | repertoires.forEach(repertoire => { 280 | for (let i = repertoire[0]; i < repertoire[1]; i++) { 281 | if (scp10.generalCategory(i) !== 'Lo') { 282 | badGc.push(i) 283 | } 284 | if (scp10.canonicalCombiningClass(i) !== 0) { 285 | badCcc.push(i) 286 | } 287 | if (scp10.normalizationProperties(i, 'NFD_QC') !== 'Y') { 288 | badNfdQc.push(i) 289 | } 290 | if (scp10.normalizationProperties(i, 'NFKD_QC') !== 'Y') { 291 | badNfkdQc.push(i) 292 | } 293 | } 294 | }) 295 | expect(badGc).toEqual([]) 296 | expect(badCcc).toEqual([]) 297 | expect(badNfdQc.length).toBe(11172) 298 | expect(badNfkdQc.length).toBe(11172) 299 | }) 300 | }) 301 | 302 | describe('base32k', () => { 303 | it('is not safe', () => { 304 | const lanes = [ 305 | [0x4000, 0xA000], 306 | [0xB000, 0xD000] 307 | ] 308 | const badNfdQc = [] 309 | const badNfkdQc = [] 310 | lanes.forEach(lane => { 311 | for (let i = lane[0]; i < lane[1]; i++) { 312 | if (scp10.normalizationProperties(i, 'NFD_QC') !== 'Y') { 313 | badNfdQc.push(i) 314 | } 315 | if (scp10.normalizationProperties(i, 'NFKD_QC') !== 'Y') { 316 | badNfkdQc.push(i) 317 | } 318 | } 319 | }) 320 | expect(badNfdQc.length).toBe(8192) 321 | expect(badNfkdQc.length).toBe(8192) 322 | }) 323 | }) 324 | 325 | describe('14', () => { 326 | it('works', async () => { 327 | const scp14 = await SafeCodePoint('14.0.0') 328 | const numCodePoints = (1 << 16) + (1 << 20) 329 | let numAssigned = 0 330 | let numSafe = 0 331 | let numSafeLetter = 0 332 | let numSafeLetterOther = 0 333 | for (let codePoint = 0; codePoint < numCodePoints; codePoint++) { 334 | const gc = scp14.generalCategory(codePoint) 335 | if (gc !== 'Cn') { 336 | numAssigned++ 337 | if (scp14(codePoint)) { 338 | numSafe++ 339 | if (gc.startsWith('L')) { 340 | numSafeLetter++ 341 | if (gc === 'Lo') { 342 | numSafeLetterOther++ 343 | } 344 | } 345 | } 346 | } 347 | } 348 | expect(numAssigned).toBe(284278) 349 | expect(numSafe).toBe(124456) 350 | expect(numSafeLetter).toBe(116231) 351 | expect(numSafeLetterOther).toBe(113876) 352 | }) 353 | }) 354 | }) 355 | -------------------------------------------------------------------------------- /lib/normalization-properties.js: -------------------------------------------------------------------------------- 1 | // UCD normalization property resources. 2 | 3 | import dehex from './dehex.js' 4 | 5 | /** Get property value for a specific code point, or default if set */ 6 | export default data => { 7 | const byCodePoint = {} 8 | 9 | // Defaults 10 | for (let codePoint = 0; codePoint < (1 << 20) + (1 << 16); codePoint++) { 11 | byCodePoint[codePoint] = { 12 | NFD_QC: 'Y', 13 | NFC_QC: 'Y', 14 | NFKD_QC: 'Y', 15 | NFKC_QC: 'Y' 16 | } 17 | } 18 | 19 | data.forEach(function (row) { 20 | const codePoints = dehex(row[0]) 21 | const property = row[1] // E.g. "NFD_QC" 22 | const value = row[2] // E.g. "N" 23 | 24 | codePoints.forEach(function (codePoint) { 25 | byCodePoint[codePoint][property] = value 26 | }) 27 | }) 28 | 29 | return (codePoint, property) => { 30 | const properties = byCodePoint[codePoint] 31 | if (properties === undefined) { 32 | throw new Error('Unrecognised code point: ' + String(codePoint)) 33 | } 34 | const value = properties[property] 35 | if (value === undefined) { 36 | throw new Error('Unrecognised property: ' + property) 37 | } 38 | return value 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lib/ucd.js: -------------------------------------------------------------------------------- 1 | // This module reads in most kinds of Unicode Character Data set text files. 2 | // Comments (marked with a #) are stripped, empty lines are removed. The 3 | // remaining lines are divided up into fields on the semicolon delimiter, and 4 | // the fields have whitespace trimmed. 5 | 6 | import nodeFetch from 'node-fetch' 7 | 8 | export const get = async (version, name) => { 9 | const url = `http://www.unicode.org/Public/${version}/ucd/${name}` 10 | const res = await nodeFetch(url) 11 | if (!res.ok) { 12 | throw Error(`${res.status} while fetching ${url}`) 13 | } 14 | const body = await res.text() 15 | return body 16 | .split(/\r?\n/) 17 | .map(line => line.replace(/^(.*?)(?:#.*)?$/, '$1')) 18 | .filter(line => line !== '') 19 | .map(line => line.split(';').map(field => field.trim())) 20 | } 21 | -------------------------------------------------------------------------------- /lib/word-break.js: -------------------------------------------------------------------------------- 1 | /** UCD Word_Break resources. */ 2 | 3 | import dehex from './dehex.js' 4 | 5 | /** Get Word_Break for a specific code point */ 6 | export default data => { 7 | const byCodePoint = {} 8 | 9 | // Defaults 10 | for (let codePoint = 0; codePoint < (1 << 20) + (1 << 16); codePoint++) { 11 | byCodePoint[codePoint] = undefined 12 | } 13 | 14 | data.forEach(function (row) { 15 | const codePoints = dehex(row[0]) 16 | const wbp = row[1] // E.g. "Numeric", "ALetter" 17 | 18 | codePoints.forEach(function (codePoint) { 19 | if (codePoint in byCodePoint && byCodePoint[codePoint] !== undefined) { 20 | throw new Error(codePoint) 21 | } 22 | byCodePoint[codePoint] = wbp 23 | }) 24 | }) 25 | 26 | return codePoint => { 27 | if (!(codePoint in byCodePoint)) { 28 | throw new Error('Word_Break unknown for ' + String(codePoint)) 29 | } 30 | return byCodePoint[codePoint] 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "safe-code-point", 3 | "version": "3.0.3", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "safe-code-point", 9 | "version": "3.0.3", 10 | "license": "MIT", 11 | "dependencies": { 12 | "node-fetch": "^3.0.0" 13 | }, 14 | "devDependencies": { 15 | "jasmine": "^5.0.0", 16 | "standard": "^17.0.0" 17 | } 18 | }, 19 | "node_modules/@eslint/eslintrc": { 20 | "version": "1.2.2", 21 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", 22 | "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", 23 | "dev": true, 24 | "dependencies": { 25 | "ajv": "^6.12.4", 26 | "debug": "^4.3.2", 27 | "espree": "^9.3.1", 28 | "globals": "^13.9.0", 29 | "ignore": "^5.2.0", 30 | "import-fresh": "^3.2.1", 31 | "js-yaml": "^4.1.0", 32 | "minimatch": "^3.0.4", 33 | "strip-json-comments": "^3.1.1" 34 | }, 35 | "engines": { 36 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 37 | } 38 | }, 39 | "node_modules/@humanwhocodes/config-array": { 40 | "version": "0.9.5", 41 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", 42 | "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", 43 | "dev": true, 44 | "dependencies": { 45 | "@humanwhocodes/object-schema": "^1.2.1", 46 | "debug": "^4.1.1", 47 | "minimatch": "^3.0.4" 48 | }, 49 | "engines": { 50 | "node": ">=10.10.0" 51 | } 52 | }, 53 | "node_modules/@humanwhocodes/object-schema": { 54 | "version": "1.2.1", 55 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 56 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 57 | "dev": true 58 | }, 59 | "node_modules/@isaacs/cliui": { 60 | "version": "8.0.2", 61 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 62 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 63 | "dev": true, 64 | "dependencies": { 65 | "string-width": "^5.1.2", 66 | "string-width-cjs": "npm:string-width@^4.2.0", 67 | "strip-ansi": "^7.0.1", 68 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 69 | "wrap-ansi": "^8.1.0", 70 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 71 | }, 72 | "engines": { 73 | "node": ">=12" 74 | } 75 | }, 76 | "node_modules/@isaacs/cliui/node_modules/ansi-regex": { 77 | "version": "6.0.1", 78 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 79 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 80 | "dev": true, 81 | "engines": { 82 | "node": ">=12" 83 | }, 84 | "funding": { 85 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 86 | } 87 | }, 88 | "node_modules/@isaacs/cliui/node_modules/strip-ansi": { 89 | "version": "7.1.0", 90 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 91 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 92 | "dev": true, 93 | "dependencies": { 94 | "ansi-regex": "^6.0.1" 95 | }, 96 | "engines": { 97 | "node": ">=12" 98 | }, 99 | "funding": { 100 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 101 | } 102 | }, 103 | "node_modules/@pkgjs/parseargs": { 104 | "version": "0.11.0", 105 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 106 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 107 | "dev": true, 108 | "optional": true, 109 | "engines": { 110 | "node": ">=14" 111 | } 112 | }, 113 | "node_modules/@types/json5": { 114 | "version": "0.0.29", 115 | "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", 116 | "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", 117 | "dev": true 118 | }, 119 | "node_modules/acorn": { 120 | "version": "8.7.1", 121 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", 122 | "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", 123 | "dev": true, 124 | "bin": { 125 | "acorn": "bin/acorn" 126 | }, 127 | "engines": { 128 | "node": ">=0.4.0" 129 | } 130 | }, 131 | "node_modules/acorn-jsx": { 132 | "version": "5.3.2", 133 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 134 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 135 | "dev": true, 136 | "peerDependencies": { 137 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 138 | } 139 | }, 140 | "node_modules/ajv": { 141 | "version": "6.12.6", 142 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 143 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 144 | "dev": true, 145 | "dependencies": { 146 | "fast-deep-equal": "^3.1.1", 147 | "fast-json-stable-stringify": "^2.0.0", 148 | "json-schema-traverse": "^0.4.1", 149 | "uri-js": "^4.2.2" 150 | }, 151 | "funding": { 152 | "type": "github", 153 | "url": "https://github.com/sponsors/epoberezkin" 154 | } 155 | }, 156 | "node_modules/ansi-regex": { 157 | "version": "5.0.1", 158 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 159 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 160 | "dev": true, 161 | "engines": { 162 | "node": ">=8" 163 | } 164 | }, 165 | "node_modules/ansi-styles": { 166 | "version": "4.3.0", 167 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 168 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 169 | "dev": true, 170 | "dependencies": { 171 | "color-convert": "^2.0.1" 172 | }, 173 | "engines": { 174 | "node": ">=8" 175 | }, 176 | "funding": { 177 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 178 | } 179 | }, 180 | "node_modules/argparse": { 181 | "version": "2.0.1", 182 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 183 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 184 | "dev": true 185 | }, 186 | "node_modules/array-includes": { 187 | "version": "3.1.4", 188 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", 189 | "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", 190 | "dev": true, 191 | "dependencies": { 192 | "call-bind": "^1.0.2", 193 | "define-properties": "^1.1.3", 194 | "es-abstract": "^1.19.1", 195 | "get-intrinsic": "^1.1.1", 196 | "is-string": "^1.0.7" 197 | }, 198 | "engines": { 199 | "node": ">= 0.4" 200 | }, 201 | "funding": { 202 | "url": "https://github.com/sponsors/ljharb" 203 | } 204 | }, 205 | "node_modules/array.prototype.flat": { 206 | "version": "1.3.0", 207 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", 208 | "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", 209 | "dev": true, 210 | "dependencies": { 211 | "call-bind": "^1.0.2", 212 | "define-properties": "^1.1.3", 213 | "es-abstract": "^1.19.2", 214 | "es-shim-unscopables": "^1.0.0" 215 | }, 216 | "engines": { 217 | "node": ">= 0.4" 218 | }, 219 | "funding": { 220 | "url": "https://github.com/sponsors/ljharb" 221 | } 222 | }, 223 | "node_modules/array.prototype.flatmap": { 224 | "version": "1.3.0", 225 | "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", 226 | "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", 227 | "dev": true, 228 | "dependencies": { 229 | "call-bind": "^1.0.2", 230 | "define-properties": "^1.1.3", 231 | "es-abstract": "^1.19.2", 232 | "es-shim-unscopables": "^1.0.0" 233 | }, 234 | "engines": { 235 | "node": ">= 0.4" 236 | }, 237 | "funding": { 238 | "url": "https://github.com/sponsors/ljharb" 239 | } 240 | }, 241 | "node_modules/balanced-match": { 242 | "version": "1.0.2", 243 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 244 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 245 | "dev": true 246 | }, 247 | "node_modules/brace-expansion": { 248 | "version": "1.1.11", 249 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 250 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 251 | "dev": true, 252 | "dependencies": { 253 | "balanced-match": "^1.0.0", 254 | "concat-map": "0.0.1" 255 | } 256 | }, 257 | "node_modules/builtins": { 258 | "version": "4.1.0", 259 | "resolved": "https://registry.npmjs.org/builtins/-/builtins-4.1.0.tgz", 260 | "integrity": "sha512-1bPRZQtmKaO6h7qV1YHXNtr6nCK28k0Zo95KM4dXfILcZZwoHJBN1m3lfLv9LPkcOZlrSr+J1bzMaZFO98Yq0w==", 261 | "dev": true, 262 | "dependencies": { 263 | "semver": "^7.0.0" 264 | } 265 | }, 266 | "node_modules/builtins/node_modules/semver": { 267 | "version": "7.3.7", 268 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 269 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 270 | "dev": true, 271 | "dependencies": { 272 | "lru-cache": "^6.0.0" 273 | }, 274 | "bin": { 275 | "semver": "bin/semver.js" 276 | }, 277 | "engines": { 278 | "node": ">=10" 279 | } 280 | }, 281 | "node_modules/call-bind": { 282 | "version": "1.0.2", 283 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 284 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 285 | "dev": true, 286 | "dependencies": { 287 | "function-bind": "^1.1.1", 288 | "get-intrinsic": "^1.0.2" 289 | }, 290 | "funding": { 291 | "url": "https://github.com/sponsors/ljharb" 292 | } 293 | }, 294 | "node_modules/callsites": { 295 | "version": "3.1.0", 296 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 297 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 298 | "dev": true, 299 | "engines": { 300 | "node": ">=6" 301 | } 302 | }, 303 | "node_modules/chalk": { 304 | "version": "4.1.2", 305 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 306 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 307 | "dev": true, 308 | "dependencies": { 309 | "ansi-styles": "^4.1.0", 310 | "supports-color": "^7.1.0" 311 | }, 312 | "engines": { 313 | "node": ">=10" 314 | }, 315 | "funding": { 316 | "url": "https://github.com/chalk/chalk?sponsor=1" 317 | } 318 | }, 319 | "node_modules/color-convert": { 320 | "version": "2.0.1", 321 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 322 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 323 | "dev": true, 324 | "dependencies": { 325 | "color-name": "~1.1.4" 326 | }, 327 | "engines": { 328 | "node": ">=7.0.0" 329 | } 330 | }, 331 | "node_modules/color-name": { 332 | "version": "1.1.4", 333 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 334 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 335 | "dev": true 336 | }, 337 | "node_modules/concat-map": { 338 | "version": "0.0.1", 339 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 340 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 341 | "dev": true 342 | }, 343 | "node_modules/cross-spawn": { 344 | "version": "7.0.3", 345 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 346 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 347 | "dev": true, 348 | "dependencies": { 349 | "path-key": "^3.1.0", 350 | "shebang-command": "^2.0.0", 351 | "which": "^2.0.1" 352 | }, 353 | "engines": { 354 | "node": ">= 8" 355 | } 356 | }, 357 | "node_modules/data-uri-to-buffer": { 358 | "version": "4.0.0", 359 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", 360 | "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", 361 | "engines": { 362 | "node": ">= 12" 363 | } 364 | }, 365 | "node_modules/debug": { 366 | "version": "4.3.4", 367 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 368 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 369 | "dev": true, 370 | "dependencies": { 371 | "ms": "2.1.2" 372 | }, 373 | "engines": { 374 | "node": ">=6.0" 375 | }, 376 | "peerDependenciesMeta": { 377 | "supports-color": { 378 | "optional": true 379 | } 380 | } 381 | }, 382 | "node_modules/deep-is": { 383 | "version": "0.1.4", 384 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 385 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 386 | "dev": true 387 | }, 388 | "node_modules/define-properties": { 389 | "version": "1.1.4", 390 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", 391 | "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", 392 | "dev": true, 393 | "dependencies": { 394 | "has-property-descriptors": "^1.0.0", 395 | "object-keys": "^1.1.1" 396 | }, 397 | "engines": { 398 | "node": ">= 0.4" 399 | }, 400 | "funding": { 401 | "url": "https://github.com/sponsors/ljharb" 402 | } 403 | }, 404 | "node_modules/doctrine": { 405 | "version": "3.0.0", 406 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 407 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 408 | "dev": true, 409 | "dependencies": { 410 | "esutils": "^2.0.2" 411 | }, 412 | "engines": { 413 | "node": ">=6.0.0" 414 | } 415 | }, 416 | "node_modules/eastasianwidth": { 417 | "version": "0.2.0", 418 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 419 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 420 | "dev": true 421 | }, 422 | "node_modules/emoji-regex": { 423 | "version": "9.2.2", 424 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 425 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 426 | "dev": true 427 | }, 428 | "node_modules/error-ex": { 429 | "version": "1.3.2", 430 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 431 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 432 | "dev": true, 433 | "dependencies": { 434 | "is-arrayish": "^0.2.1" 435 | } 436 | }, 437 | "node_modules/es-abstract": { 438 | "version": "1.19.5", 439 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", 440 | "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", 441 | "dev": true, 442 | "dependencies": { 443 | "call-bind": "^1.0.2", 444 | "es-to-primitive": "^1.2.1", 445 | "function-bind": "^1.1.1", 446 | "get-intrinsic": "^1.1.1", 447 | "get-symbol-description": "^1.0.0", 448 | "has": "^1.0.3", 449 | "has-symbols": "^1.0.3", 450 | "internal-slot": "^1.0.3", 451 | "is-callable": "^1.2.4", 452 | "is-negative-zero": "^2.0.2", 453 | "is-regex": "^1.1.4", 454 | "is-shared-array-buffer": "^1.0.2", 455 | "is-string": "^1.0.7", 456 | "is-weakref": "^1.0.2", 457 | "object-inspect": "^1.12.0", 458 | "object-keys": "^1.1.1", 459 | "object.assign": "^4.1.2", 460 | "string.prototype.trimend": "^1.0.4", 461 | "string.prototype.trimstart": "^1.0.4", 462 | "unbox-primitive": "^1.0.1" 463 | }, 464 | "engines": { 465 | "node": ">= 0.4" 466 | }, 467 | "funding": { 468 | "url": "https://github.com/sponsors/ljharb" 469 | } 470 | }, 471 | "node_modules/es-shim-unscopables": { 472 | "version": "1.0.0", 473 | "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", 474 | "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", 475 | "dev": true, 476 | "dependencies": { 477 | "has": "^1.0.3" 478 | } 479 | }, 480 | "node_modules/es-to-primitive": { 481 | "version": "1.2.1", 482 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 483 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 484 | "dev": true, 485 | "dependencies": { 486 | "is-callable": "^1.1.4", 487 | "is-date-object": "^1.0.1", 488 | "is-symbol": "^1.0.2" 489 | }, 490 | "engines": { 491 | "node": ">= 0.4" 492 | }, 493 | "funding": { 494 | "url": "https://github.com/sponsors/ljharb" 495 | } 496 | }, 497 | "node_modules/escape-string-regexp": { 498 | "version": "4.0.0", 499 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 500 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 501 | "dev": true, 502 | "engines": { 503 | "node": ">=10" 504 | }, 505 | "funding": { 506 | "url": "https://github.com/sponsors/sindresorhus" 507 | } 508 | }, 509 | "node_modules/eslint": { 510 | "version": "8.14.0", 511 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", 512 | "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", 513 | "dev": true, 514 | "dependencies": { 515 | "@eslint/eslintrc": "^1.2.2", 516 | "@humanwhocodes/config-array": "^0.9.2", 517 | "ajv": "^6.10.0", 518 | "chalk": "^4.0.0", 519 | "cross-spawn": "^7.0.2", 520 | "debug": "^4.3.2", 521 | "doctrine": "^3.0.0", 522 | "escape-string-regexp": "^4.0.0", 523 | "eslint-scope": "^7.1.1", 524 | "eslint-utils": "^3.0.0", 525 | "eslint-visitor-keys": "^3.3.0", 526 | "espree": "^9.3.1", 527 | "esquery": "^1.4.0", 528 | "esutils": "^2.0.2", 529 | "fast-deep-equal": "^3.1.3", 530 | "file-entry-cache": "^6.0.1", 531 | "functional-red-black-tree": "^1.0.1", 532 | "glob-parent": "^6.0.1", 533 | "globals": "^13.6.0", 534 | "ignore": "^5.2.0", 535 | "import-fresh": "^3.0.0", 536 | "imurmurhash": "^0.1.4", 537 | "is-glob": "^4.0.0", 538 | "js-yaml": "^4.1.0", 539 | "json-stable-stringify-without-jsonify": "^1.0.1", 540 | "levn": "^0.4.1", 541 | "lodash.merge": "^4.6.2", 542 | "minimatch": "^3.0.4", 543 | "natural-compare": "^1.4.0", 544 | "optionator": "^0.9.1", 545 | "regexpp": "^3.2.0", 546 | "strip-ansi": "^6.0.1", 547 | "strip-json-comments": "^3.1.0", 548 | "text-table": "^0.2.0", 549 | "v8-compile-cache": "^2.0.3" 550 | }, 551 | "bin": { 552 | "eslint": "bin/eslint.js" 553 | }, 554 | "engines": { 555 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 556 | }, 557 | "funding": { 558 | "url": "https://opencollective.com/eslint" 559 | } 560 | }, 561 | "node_modules/eslint-config-standard": { 562 | "version": "17.0.0", 563 | "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", 564 | "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", 565 | "dev": true, 566 | "funding": [ 567 | { 568 | "type": "github", 569 | "url": "https://github.com/sponsors/feross" 570 | }, 571 | { 572 | "type": "patreon", 573 | "url": "https://www.patreon.com/feross" 574 | }, 575 | { 576 | "type": "consulting", 577 | "url": "https://feross.org/support" 578 | } 579 | ], 580 | "peerDependencies": { 581 | "eslint": "^8.0.1", 582 | "eslint-plugin-import": "^2.25.2", 583 | "eslint-plugin-n": "^15.0.0", 584 | "eslint-plugin-promise": "^6.0.0" 585 | } 586 | }, 587 | "node_modules/eslint-config-standard-jsx": { 588 | "version": "11.0.0", 589 | "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz", 590 | "integrity": "sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==", 591 | "dev": true, 592 | "funding": [ 593 | { 594 | "type": "github", 595 | "url": "https://github.com/sponsors/feross" 596 | }, 597 | { 598 | "type": "patreon", 599 | "url": "https://www.patreon.com/feross" 600 | }, 601 | { 602 | "type": "consulting", 603 | "url": "https://feross.org/support" 604 | } 605 | ], 606 | "peerDependencies": { 607 | "eslint": "^8.8.0", 608 | "eslint-plugin-react": "^7.28.0" 609 | } 610 | }, 611 | "node_modules/eslint-import-resolver-node": { 612 | "version": "0.3.6", 613 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", 614 | "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", 615 | "dev": true, 616 | "dependencies": { 617 | "debug": "^3.2.7", 618 | "resolve": "^1.20.0" 619 | } 620 | }, 621 | "node_modules/eslint-import-resolver-node/node_modules/debug": { 622 | "version": "3.2.7", 623 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 624 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 625 | "dev": true, 626 | "dependencies": { 627 | "ms": "^2.1.1" 628 | } 629 | }, 630 | "node_modules/eslint-module-utils": { 631 | "version": "2.7.3", 632 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", 633 | "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", 634 | "dev": true, 635 | "dependencies": { 636 | "debug": "^3.2.7", 637 | "find-up": "^2.1.0" 638 | }, 639 | "engines": { 640 | "node": ">=4" 641 | } 642 | }, 643 | "node_modules/eslint-module-utils/node_modules/debug": { 644 | "version": "3.2.7", 645 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 646 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 647 | "dev": true, 648 | "dependencies": { 649 | "ms": "^2.1.1" 650 | } 651 | }, 652 | "node_modules/eslint-plugin-es": { 653 | "version": "4.1.0", 654 | "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", 655 | "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", 656 | "dev": true, 657 | "dependencies": { 658 | "eslint-utils": "^2.0.0", 659 | "regexpp": "^3.0.0" 660 | }, 661 | "engines": { 662 | "node": ">=8.10.0" 663 | }, 664 | "funding": { 665 | "url": "https://github.com/sponsors/mysticatea" 666 | }, 667 | "peerDependencies": { 668 | "eslint": ">=4.19.1" 669 | } 670 | }, 671 | "node_modules/eslint-plugin-es/node_modules/eslint-utils": { 672 | "version": "2.1.0", 673 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", 674 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", 675 | "dev": true, 676 | "dependencies": { 677 | "eslint-visitor-keys": "^1.1.0" 678 | }, 679 | "engines": { 680 | "node": ">=6" 681 | }, 682 | "funding": { 683 | "url": "https://github.com/sponsors/mysticatea" 684 | } 685 | }, 686 | "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { 687 | "version": "1.3.0", 688 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", 689 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", 690 | "dev": true, 691 | "engines": { 692 | "node": ">=4" 693 | } 694 | }, 695 | "node_modules/eslint-plugin-import": { 696 | "version": "2.26.0", 697 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", 698 | "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", 699 | "dev": true, 700 | "dependencies": { 701 | "array-includes": "^3.1.4", 702 | "array.prototype.flat": "^1.2.5", 703 | "debug": "^2.6.9", 704 | "doctrine": "^2.1.0", 705 | "eslint-import-resolver-node": "^0.3.6", 706 | "eslint-module-utils": "^2.7.3", 707 | "has": "^1.0.3", 708 | "is-core-module": "^2.8.1", 709 | "is-glob": "^4.0.3", 710 | "minimatch": "^3.1.2", 711 | "object.values": "^1.1.5", 712 | "resolve": "^1.22.0", 713 | "tsconfig-paths": "^3.14.1" 714 | }, 715 | "engines": { 716 | "node": ">=4" 717 | }, 718 | "peerDependencies": { 719 | "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" 720 | } 721 | }, 722 | "node_modules/eslint-plugin-import/node_modules/debug": { 723 | "version": "2.6.9", 724 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 725 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 726 | "dev": true, 727 | "dependencies": { 728 | "ms": "2.0.0" 729 | } 730 | }, 731 | "node_modules/eslint-plugin-import/node_modules/doctrine": { 732 | "version": "2.1.0", 733 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 734 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 735 | "dev": true, 736 | "dependencies": { 737 | "esutils": "^2.0.2" 738 | }, 739 | "engines": { 740 | "node": ">=0.10.0" 741 | } 742 | }, 743 | "node_modules/eslint-plugin-import/node_modules/ms": { 744 | "version": "2.0.0", 745 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 746 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 747 | "dev": true 748 | }, 749 | "node_modules/eslint-plugin-n": { 750 | "version": "15.2.0", 751 | "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.2.0.tgz", 752 | "integrity": "sha512-lWLg++jGwC88GDGGBX3CMkk0GIWq0y41aH51lavWApOKcMQcYoL3Ayd0lEdtD3SnQtR+3qBvWQS3qGbR2BxRWg==", 753 | "dev": true, 754 | "dependencies": { 755 | "builtins": "^4.0.0", 756 | "eslint-plugin-es": "^4.1.0", 757 | "eslint-utils": "^3.0.0", 758 | "ignore": "^5.1.1", 759 | "is-core-module": "^2.3.0", 760 | "minimatch": "^3.0.4", 761 | "resolve": "^1.10.1", 762 | "semver": "^6.3.0" 763 | }, 764 | "engines": { 765 | "node": ">=12.22.0" 766 | }, 767 | "funding": { 768 | "url": "https://github.com/sponsors/mysticatea" 769 | }, 770 | "peerDependencies": { 771 | "eslint": ">=7.0.0" 772 | } 773 | }, 774 | "node_modules/eslint-plugin-promise": { 775 | "version": "6.0.0", 776 | "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz", 777 | "integrity": "sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==", 778 | "dev": true, 779 | "engines": { 780 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 781 | }, 782 | "peerDependencies": { 783 | "eslint": "^7.0.0 || ^8.0.0" 784 | } 785 | }, 786 | "node_modules/eslint-plugin-react": { 787 | "version": "7.29.4", 788 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", 789 | "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", 790 | "dev": true, 791 | "dependencies": { 792 | "array-includes": "^3.1.4", 793 | "array.prototype.flatmap": "^1.2.5", 794 | "doctrine": "^2.1.0", 795 | "estraverse": "^5.3.0", 796 | "jsx-ast-utils": "^2.4.1 || ^3.0.0", 797 | "minimatch": "^3.1.2", 798 | "object.entries": "^1.1.5", 799 | "object.fromentries": "^2.0.5", 800 | "object.hasown": "^1.1.0", 801 | "object.values": "^1.1.5", 802 | "prop-types": "^15.8.1", 803 | "resolve": "^2.0.0-next.3", 804 | "semver": "^6.3.0", 805 | "string.prototype.matchall": "^4.0.6" 806 | }, 807 | "engines": { 808 | "node": ">=4" 809 | }, 810 | "peerDependencies": { 811 | "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" 812 | } 813 | }, 814 | "node_modules/eslint-plugin-react/node_modules/doctrine": { 815 | "version": "2.1.0", 816 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 817 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 818 | "dev": true, 819 | "dependencies": { 820 | "esutils": "^2.0.2" 821 | }, 822 | "engines": { 823 | "node": ">=0.10.0" 824 | } 825 | }, 826 | "node_modules/eslint-plugin-react/node_modules/resolve": { 827 | "version": "2.0.0-next.3", 828 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", 829 | "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", 830 | "dev": true, 831 | "dependencies": { 832 | "is-core-module": "^2.2.0", 833 | "path-parse": "^1.0.6" 834 | }, 835 | "funding": { 836 | "url": "https://github.com/sponsors/ljharb" 837 | } 838 | }, 839 | "node_modules/eslint-scope": { 840 | "version": "7.1.1", 841 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 842 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 843 | "dev": true, 844 | "dependencies": { 845 | "esrecurse": "^4.3.0", 846 | "estraverse": "^5.2.0" 847 | }, 848 | "engines": { 849 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 850 | } 851 | }, 852 | "node_modules/eslint-utils": { 853 | "version": "3.0.0", 854 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 855 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 856 | "dev": true, 857 | "dependencies": { 858 | "eslint-visitor-keys": "^2.0.0" 859 | }, 860 | "engines": { 861 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" 862 | }, 863 | "funding": { 864 | "url": "https://github.com/sponsors/mysticatea" 865 | }, 866 | "peerDependencies": { 867 | "eslint": ">=5" 868 | } 869 | }, 870 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { 871 | "version": "2.1.0", 872 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 873 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 874 | "dev": true, 875 | "engines": { 876 | "node": ">=10" 877 | } 878 | }, 879 | "node_modules/eslint-visitor-keys": { 880 | "version": "3.3.0", 881 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 882 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 883 | "dev": true, 884 | "engines": { 885 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 886 | } 887 | }, 888 | "node_modules/espree": { 889 | "version": "9.3.1", 890 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", 891 | "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", 892 | "dev": true, 893 | "dependencies": { 894 | "acorn": "^8.7.0", 895 | "acorn-jsx": "^5.3.1", 896 | "eslint-visitor-keys": "^3.3.0" 897 | }, 898 | "engines": { 899 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 900 | } 901 | }, 902 | "node_modules/esquery": { 903 | "version": "1.4.0", 904 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 905 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 906 | "dev": true, 907 | "dependencies": { 908 | "estraverse": "^5.1.0" 909 | }, 910 | "engines": { 911 | "node": ">=0.10" 912 | } 913 | }, 914 | "node_modules/esrecurse": { 915 | "version": "4.3.0", 916 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 917 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 918 | "dev": true, 919 | "dependencies": { 920 | "estraverse": "^5.2.0" 921 | }, 922 | "engines": { 923 | "node": ">=4.0" 924 | } 925 | }, 926 | "node_modules/estraverse": { 927 | "version": "5.3.0", 928 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 929 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 930 | "dev": true, 931 | "engines": { 932 | "node": ">=4.0" 933 | } 934 | }, 935 | "node_modules/esutils": { 936 | "version": "2.0.3", 937 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 938 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 939 | "dev": true, 940 | "engines": { 941 | "node": ">=0.10.0" 942 | } 943 | }, 944 | "node_modules/fast-deep-equal": { 945 | "version": "3.1.3", 946 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 947 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 948 | "dev": true 949 | }, 950 | "node_modules/fast-json-stable-stringify": { 951 | "version": "2.1.0", 952 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 953 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 954 | "dev": true 955 | }, 956 | "node_modules/fast-levenshtein": { 957 | "version": "2.0.6", 958 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 959 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 960 | "dev": true 961 | }, 962 | "node_modules/fetch-blob": { 963 | "version": "3.1.4", 964 | "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", 965 | "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", 966 | "funding": [ 967 | { 968 | "type": "github", 969 | "url": "https://github.com/sponsors/jimmywarting" 970 | }, 971 | { 972 | "type": "paypal", 973 | "url": "https://paypal.me/jimmywarting" 974 | } 975 | ], 976 | "dependencies": { 977 | "node-domexception": "^1.0.0", 978 | "web-streams-polyfill": "^3.0.3" 979 | }, 980 | "engines": { 981 | "node": "^12.20 || >= 14.13" 982 | } 983 | }, 984 | "node_modules/file-entry-cache": { 985 | "version": "6.0.1", 986 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 987 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 988 | "dev": true, 989 | "dependencies": { 990 | "flat-cache": "^3.0.4" 991 | }, 992 | "engines": { 993 | "node": "^10.12.0 || >=12.0.0" 994 | } 995 | }, 996 | "node_modules/find-up": { 997 | "version": "2.1.0", 998 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 999 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1000 | "dev": true, 1001 | "dependencies": { 1002 | "locate-path": "^2.0.0" 1003 | }, 1004 | "engines": { 1005 | "node": ">=4" 1006 | } 1007 | }, 1008 | "node_modules/flat-cache": { 1009 | "version": "3.0.4", 1010 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 1011 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 1012 | "dev": true, 1013 | "dependencies": { 1014 | "flatted": "^3.1.0", 1015 | "rimraf": "^3.0.2" 1016 | }, 1017 | "engines": { 1018 | "node": "^10.12.0 || >=12.0.0" 1019 | } 1020 | }, 1021 | "node_modules/flatted": { 1022 | "version": "3.2.5", 1023 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", 1024 | "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", 1025 | "dev": true 1026 | }, 1027 | "node_modules/foreground-child": { 1028 | "version": "3.1.1", 1029 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 1030 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 1031 | "dev": true, 1032 | "dependencies": { 1033 | "cross-spawn": "^7.0.0", 1034 | "signal-exit": "^4.0.1" 1035 | }, 1036 | "engines": { 1037 | "node": ">=14" 1038 | }, 1039 | "funding": { 1040 | "url": "https://github.com/sponsors/isaacs" 1041 | } 1042 | }, 1043 | "node_modules/formdata-polyfill": { 1044 | "version": "4.0.10", 1045 | "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 1046 | "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 1047 | "dependencies": { 1048 | "fetch-blob": "^3.1.2" 1049 | }, 1050 | "engines": { 1051 | "node": ">=12.20.0" 1052 | } 1053 | }, 1054 | "node_modules/fs.realpath": { 1055 | "version": "1.0.0", 1056 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1057 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1058 | "dev": true 1059 | }, 1060 | "node_modules/function-bind": { 1061 | "version": "1.1.1", 1062 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1063 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1064 | "dev": true 1065 | }, 1066 | "node_modules/functional-red-black-tree": { 1067 | "version": "1.0.1", 1068 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 1069 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 1070 | "dev": true 1071 | }, 1072 | "node_modules/functions-have-names": { 1073 | "version": "1.2.3", 1074 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 1075 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 1076 | "dev": true, 1077 | "funding": { 1078 | "url": "https://github.com/sponsors/ljharb" 1079 | } 1080 | }, 1081 | "node_modules/get-intrinsic": { 1082 | "version": "1.1.1", 1083 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 1084 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 1085 | "dev": true, 1086 | "dependencies": { 1087 | "function-bind": "^1.1.1", 1088 | "has": "^1.0.3", 1089 | "has-symbols": "^1.0.1" 1090 | }, 1091 | "funding": { 1092 | "url": "https://github.com/sponsors/ljharb" 1093 | } 1094 | }, 1095 | "node_modules/get-stdin": { 1096 | "version": "8.0.0", 1097 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", 1098 | "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", 1099 | "dev": true, 1100 | "engines": { 1101 | "node": ">=10" 1102 | }, 1103 | "funding": { 1104 | "url": "https://github.com/sponsors/sindresorhus" 1105 | } 1106 | }, 1107 | "node_modules/get-symbol-description": { 1108 | "version": "1.0.0", 1109 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", 1110 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", 1111 | "dev": true, 1112 | "dependencies": { 1113 | "call-bind": "^1.0.2", 1114 | "get-intrinsic": "^1.1.1" 1115 | }, 1116 | "engines": { 1117 | "node": ">= 0.4" 1118 | }, 1119 | "funding": { 1120 | "url": "https://github.com/sponsors/ljharb" 1121 | } 1122 | }, 1123 | "node_modules/glob": { 1124 | "version": "7.1.7", 1125 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", 1126 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", 1127 | "dev": true, 1128 | "dependencies": { 1129 | "fs.realpath": "^1.0.0", 1130 | "inflight": "^1.0.4", 1131 | "inherits": "2", 1132 | "minimatch": "^3.0.4", 1133 | "once": "^1.3.0", 1134 | "path-is-absolute": "^1.0.0" 1135 | }, 1136 | "engines": { 1137 | "node": "*" 1138 | }, 1139 | "funding": { 1140 | "url": "https://github.com/sponsors/isaacs" 1141 | } 1142 | }, 1143 | "node_modules/glob-parent": { 1144 | "version": "6.0.2", 1145 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1146 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1147 | "dev": true, 1148 | "dependencies": { 1149 | "is-glob": "^4.0.3" 1150 | }, 1151 | "engines": { 1152 | "node": ">=10.13.0" 1153 | } 1154 | }, 1155 | "node_modules/globals": { 1156 | "version": "13.13.0", 1157 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", 1158 | "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", 1159 | "dev": true, 1160 | "dependencies": { 1161 | "type-fest": "^0.20.2" 1162 | }, 1163 | "engines": { 1164 | "node": ">=8" 1165 | }, 1166 | "funding": { 1167 | "url": "https://github.com/sponsors/sindresorhus" 1168 | } 1169 | }, 1170 | "node_modules/graceful-fs": { 1171 | "version": "4.2.10", 1172 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 1173 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", 1174 | "dev": true 1175 | }, 1176 | "node_modules/has": { 1177 | "version": "1.0.3", 1178 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1179 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1180 | "dev": true, 1181 | "dependencies": { 1182 | "function-bind": "^1.1.1" 1183 | }, 1184 | "engines": { 1185 | "node": ">= 0.4.0" 1186 | } 1187 | }, 1188 | "node_modules/has-bigints": { 1189 | "version": "1.0.2", 1190 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 1191 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 1192 | "dev": true, 1193 | "funding": { 1194 | "url": "https://github.com/sponsors/ljharb" 1195 | } 1196 | }, 1197 | "node_modules/has-flag": { 1198 | "version": "4.0.0", 1199 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1200 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1201 | "dev": true, 1202 | "engines": { 1203 | "node": ">=8" 1204 | } 1205 | }, 1206 | "node_modules/has-property-descriptors": { 1207 | "version": "1.0.0", 1208 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", 1209 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", 1210 | "dev": true, 1211 | "dependencies": { 1212 | "get-intrinsic": "^1.1.1" 1213 | }, 1214 | "funding": { 1215 | "url": "https://github.com/sponsors/ljharb" 1216 | } 1217 | }, 1218 | "node_modules/has-symbols": { 1219 | "version": "1.0.3", 1220 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 1221 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 1222 | "dev": true, 1223 | "engines": { 1224 | "node": ">= 0.4" 1225 | }, 1226 | "funding": { 1227 | "url": "https://github.com/sponsors/ljharb" 1228 | } 1229 | }, 1230 | "node_modules/has-tostringtag": { 1231 | "version": "1.0.0", 1232 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 1233 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 1234 | "dev": true, 1235 | "dependencies": { 1236 | "has-symbols": "^1.0.2" 1237 | }, 1238 | "engines": { 1239 | "node": ">= 0.4" 1240 | }, 1241 | "funding": { 1242 | "url": "https://github.com/sponsors/ljharb" 1243 | } 1244 | }, 1245 | "node_modules/ignore": { 1246 | "version": "5.2.0", 1247 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 1248 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 1249 | "dev": true, 1250 | "engines": { 1251 | "node": ">= 4" 1252 | } 1253 | }, 1254 | "node_modules/import-fresh": { 1255 | "version": "3.3.0", 1256 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1257 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1258 | "dev": true, 1259 | "dependencies": { 1260 | "parent-module": "^1.0.0", 1261 | "resolve-from": "^4.0.0" 1262 | }, 1263 | "engines": { 1264 | "node": ">=6" 1265 | }, 1266 | "funding": { 1267 | "url": "https://github.com/sponsors/sindresorhus" 1268 | } 1269 | }, 1270 | "node_modules/imurmurhash": { 1271 | "version": "0.1.4", 1272 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1273 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1274 | "dev": true, 1275 | "engines": { 1276 | "node": ">=0.8.19" 1277 | } 1278 | }, 1279 | "node_modules/inflight": { 1280 | "version": "1.0.6", 1281 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1282 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1283 | "dev": true, 1284 | "dependencies": { 1285 | "once": "^1.3.0", 1286 | "wrappy": "1" 1287 | } 1288 | }, 1289 | "node_modules/inherits": { 1290 | "version": "2.0.4", 1291 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1292 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1293 | "dev": true 1294 | }, 1295 | "node_modules/internal-slot": { 1296 | "version": "1.0.3", 1297 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", 1298 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", 1299 | "dev": true, 1300 | "dependencies": { 1301 | "get-intrinsic": "^1.1.0", 1302 | "has": "^1.0.3", 1303 | "side-channel": "^1.0.4" 1304 | }, 1305 | "engines": { 1306 | "node": ">= 0.4" 1307 | } 1308 | }, 1309 | "node_modules/is-arrayish": { 1310 | "version": "0.2.1", 1311 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1312 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 1313 | "dev": true 1314 | }, 1315 | "node_modules/is-bigint": { 1316 | "version": "1.0.4", 1317 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 1318 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 1319 | "dev": true, 1320 | "dependencies": { 1321 | "has-bigints": "^1.0.1" 1322 | }, 1323 | "funding": { 1324 | "url": "https://github.com/sponsors/ljharb" 1325 | } 1326 | }, 1327 | "node_modules/is-boolean-object": { 1328 | "version": "1.1.2", 1329 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 1330 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 1331 | "dev": true, 1332 | "dependencies": { 1333 | "call-bind": "^1.0.2", 1334 | "has-tostringtag": "^1.0.0" 1335 | }, 1336 | "engines": { 1337 | "node": ">= 0.4" 1338 | }, 1339 | "funding": { 1340 | "url": "https://github.com/sponsors/ljharb" 1341 | } 1342 | }, 1343 | "node_modules/is-callable": { 1344 | "version": "1.2.4", 1345 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", 1346 | "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", 1347 | "dev": true, 1348 | "engines": { 1349 | "node": ">= 0.4" 1350 | }, 1351 | "funding": { 1352 | "url": "https://github.com/sponsors/ljharb" 1353 | } 1354 | }, 1355 | "node_modules/is-core-module": { 1356 | "version": "2.9.0", 1357 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 1358 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 1359 | "dev": true, 1360 | "dependencies": { 1361 | "has": "^1.0.3" 1362 | }, 1363 | "funding": { 1364 | "url": "https://github.com/sponsors/ljharb" 1365 | } 1366 | }, 1367 | "node_modules/is-date-object": { 1368 | "version": "1.0.5", 1369 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 1370 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 1371 | "dev": true, 1372 | "dependencies": { 1373 | "has-tostringtag": "^1.0.0" 1374 | }, 1375 | "engines": { 1376 | "node": ">= 0.4" 1377 | }, 1378 | "funding": { 1379 | "url": "https://github.com/sponsors/ljharb" 1380 | } 1381 | }, 1382 | "node_modules/is-extglob": { 1383 | "version": "2.1.1", 1384 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1385 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1386 | "dev": true, 1387 | "engines": { 1388 | "node": ">=0.10.0" 1389 | } 1390 | }, 1391 | "node_modules/is-fullwidth-code-point": { 1392 | "version": "3.0.0", 1393 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1394 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1395 | "dev": true, 1396 | "engines": { 1397 | "node": ">=8" 1398 | } 1399 | }, 1400 | "node_modules/is-glob": { 1401 | "version": "4.0.3", 1402 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1403 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1404 | "dev": true, 1405 | "dependencies": { 1406 | "is-extglob": "^2.1.1" 1407 | }, 1408 | "engines": { 1409 | "node": ">=0.10.0" 1410 | } 1411 | }, 1412 | "node_modules/is-negative-zero": { 1413 | "version": "2.0.2", 1414 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", 1415 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", 1416 | "dev": true, 1417 | "engines": { 1418 | "node": ">= 0.4" 1419 | }, 1420 | "funding": { 1421 | "url": "https://github.com/sponsors/ljharb" 1422 | } 1423 | }, 1424 | "node_modules/is-number-object": { 1425 | "version": "1.0.7", 1426 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 1427 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 1428 | "dev": true, 1429 | "dependencies": { 1430 | "has-tostringtag": "^1.0.0" 1431 | }, 1432 | "engines": { 1433 | "node": ">= 0.4" 1434 | }, 1435 | "funding": { 1436 | "url": "https://github.com/sponsors/ljharb" 1437 | } 1438 | }, 1439 | "node_modules/is-regex": { 1440 | "version": "1.1.4", 1441 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 1442 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 1443 | "dev": true, 1444 | "dependencies": { 1445 | "call-bind": "^1.0.2", 1446 | "has-tostringtag": "^1.0.0" 1447 | }, 1448 | "engines": { 1449 | "node": ">= 0.4" 1450 | }, 1451 | "funding": { 1452 | "url": "https://github.com/sponsors/ljharb" 1453 | } 1454 | }, 1455 | "node_modules/is-shared-array-buffer": { 1456 | "version": "1.0.2", 1457 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", 1458 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", 1459 | "dev": true, 1460 | "dependencies": { 1461 | "call-bind": "^1.0.2" 1462 | }, 1463 | "funding": { 1464 | "url": "https://github.com/sponsors/ljharb" 1465 | } 1466 | }, 1467 | "node_modules/is-string": { 1468 | "version": "1.0.7", 1469 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 1470 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 1471 | "dev": true, 1472 | "dependencies": { 1473 | "has-tostringtag": "^1.0.0" 1474 | }, 1475 | "engines": { 1476 | "node": ">= 0.4" 1477 | }, 1478 | "funding": { 1479 | "url": "https://github.com/sponsors/ljharb" 1480 | } 1481 | }, 1482 | "node_modules/is-symbol": { 1483 | "version": "1.0.4", 1484 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 1485 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 1486 | "dev": true, 1487 | "dependencies": { 1488 | "has-symbols": "^1.0.2" 1489 | }, 1490 | "engines": { 1491 | "node": ">= 0.4" 1492 | }, 1493 | "funding": { 1494 | "url": "https://github.com/sponsors/ljharb" 1495 | } 1496 | }, 1497 | "node_modules/is-weakref": { 1498 | "version": "1.0.2", 1499 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", 1500 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 1501 | "dev": true, 1502 | "dependencies": { 1503 | "call-bind": "^1.0.2" 1504 | }, 1505 | "funding": { 1506 | "url": "https://github.com/sponsors/ljharb" 1507 | } 1508 | }, 1509 | "node_modules/isexe": { 1510 | "version": "2.0.0", 1511 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1512 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1513 | "dev": true 1514 | }, 1515 | "node_modules/jackspeak": { 1516 | "version": "2.2.1", 1517 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", 1518 | "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", 1519 | "dev": true, 1520 | "dependencies": { 1521 | "@isaacs/cliui": "^8.0.2" 1522 | }, 1523 | "engines": { 1524 | "node": ">=14" 1525 | }, 1526 | "funding": { 1527 | "url": "https://github.com/sponsors/isaacs" 1528 | }, 1529 | "optionalDependencies": { 1530 | "@pkgjs/parseargs": "^0.11.0" 1531 | } 1532 | }, 1533 | "node_modules/jasmine": { 1534 | "version": "5.0.0", 1535 | "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.0.0.tgz", 1536 | "integrity": "sha512-wrigegsVTke3gt65LmLhIVqDZVcsYZwj9Oyai0pc04NlmgxIhfgbX0Af9CC3+S9lk0KZlttqjr2EBO8j2OCovA==", 1537 | "dev": true, 1538 | "dependencies": { 1539 | "glob": "^10.2.2", 1540 | "jasmine-core": "~5.0.0" 1541 | }, 1542 | "bin": { 1543 | "jasmine": "bin/jasmine.js" 1544 | } 1545 | }, 1546 | "node_modules/jasmine-core": { 1547 | "version": "5.0.0", 1548 | "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.0.0.tgz", 1549 | "integrity": "sha512-BJLxZlSVyWPN/oyaS1IIvIjChghI9/xWsLAIJqL9J5Fz47CN3JNr8Lmik3S2S7QS2RxclYjvSVSXP7IR35PAmg==", 1550 | "dev": true 1551 | }, 1552 | "node_modules/jasmine/node_modules/brace-expansion": { 1553 | "version": "2.0.1", 1554 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1555 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1556 | "dev": true, 1557 | "dependencies": { 1558 | "balanced-match": "^1.0.0" 1559 | } 1560 | }, 1561 | "node_modules/jasmine/node_modules/glob": { 1562 | "version": "10.2.6", 1563 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", 1564 | "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", 1565 | "dev": true, 1566 | "dependencies": { 1567 | "foreground-child": "^3.1.0", 1568 | "jackspeak": "^2.0.3", 1569 | "minimatch": "^9.0.1", 1570 | "minipass": "^5.0.0 || ^6.0.2", 1571 | "path-scurry": "^1.7.0" 1572 | }, 1573 | "bin": { 1574 | "glob": "dist/cjs/src/bin.js" 1575 | }, 1576 | "engines": { 1577 | "node": ">=16 || 14 >=14.17" 1578 | }, 1579 | "funding": { 1580 | "url": "https://github.com/sponsors/isaacs" 1581 | } 1582 | }, 1583 | "node_modules/jasmine/node_modules/minimatch": { 1584 | "version": "9.0.1", 1585 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", 1586 | "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", 1587 | "dev": true, 1588 | "dependencies": { 1589 | "brace-expansion": "^2.0.1" 1590 | }, 1591 | "engines": { 1592 | "node": ">=16 || 14 >=14.17" 1593 | }, 1594 | "funding": { 1595 | "url": "https://github.com/sponsors/isaacs" 1596 | } 1597 | }, 1598 | "node_modules/js-tokens": { 1599 | "version": "4.0.0", 1600 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1601 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1602 | "dev": true 1603 | }, 1604 | "node_modules/js-yaml": { 1605 | "version": "4.1.0", 1606 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1607 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1608 | "dev": true, 1609 | "dependencies": { 1610 | "argparse": "^2.0.1" 1611 | }, 1612 | "bin": { 1613 | "js-yaml": "bin/js-yaml.js" 1614 | } 1615 | }, 1616 | "node_modules/json-parse-better-errors": { 1617 | "version": "1.0.2", 1618 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 1619 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 1620 | "dev": true 1621 | }, 1622 | "node_modules/json-schema-traverse": { 1623 | "version": "0.4.1", 1624 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1625 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1626 | "dev": true 1627 | }, 1628 | "node_modules/json-stable-stringify-without-jsonify": { 1629 | "version": "1.0.1", 1630 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1631 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 1632 | "dev": true 1633 | }, 1634 | "node_modules/json5": { 1635 | "version": "1.0.2", 1636 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", 1637 | "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", 1638 | "dev": true, 1639 | "dependencies": { 1640 | "minimist": "^1.2.0" 1641 | }, 1642 | "bin": { 1643 | "json5": "lib/cli.js" 1644 | } 1645 | }, 1646 | "node_modules/jsx-ast-utils": { 1647 | "version": "3.3.0", 1648 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz", 1649 | "integrity": "sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==", 1650 | "dev": true, 1651 | "dependencies": { 1652 | "array-includes": "^3.1.4", 1653 | "object.assign": "^4.1.2" 1654 | }, 1655 | "engines": { 1656 | "node": ">=4.0" 1657 | } 1658 | }, 1659 | "node_modules/levn": { 1660 | "version": "0.4.1", 1661 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 1662 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 1663 | "dev": true, 1664 | "dependencies": { 1665 | "prelude-ls": "^1.2.1", 1666 | "type-check": "~0.4.0" 1667 | }, 1668 | "engines": { 1669 | "node": ">= 0.8.0" 1670 | } 1671 | }, 1672 | "node_modules/load-json-file": { 1673 | "version": "5.3.0", 1674 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", 1675 | "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", 1676 | "dev": true, 1677 | "dependencies": { 1678 | "graceful-fs": "^4.1.15", 1679 | "parse-json": "^4.0.0", 1680 | "pify": "^4.0.1", 1681 | "strip-bom": "^3.0.0", 1682 | "type-fest": "^0.3.0" 1683 | }, 1684 | "engines": { 1685 | "node": ">=6" 1686 | } 1687 | }, 1688 | "node_modules/load-json-file/node_modules/type-fest": { 1689 | "version": "0.3.1", 1690 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", 1691 | "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", 1692 | "dev": true, 1693 | "engines": { 1694 | "node": ">=6" 1695 | } 1696 | }, 1697 | "node_modules/locate-path": { 1698 | "version": "2.0.0", 1699 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 1700 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 1701 | "dev": true, 1702 | "dependencies": { 1703 | "p-locate": "^2.0.0", 1704 | "path-exists": "^3.0.0" 1705 | }, 1706 | "engines": { 1707 | "node": ">=4" 1708 | } 1709 | }, 1710 | "node_modules/lodash.merge": { 1711 | "version": "4.6.2", 1712 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 1713 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 1714 | "dev": true 1715 | }, 1716 | "node_modules/loose-envify": { 1717 | "version": "1.4.0", 1718 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1719 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1720 | "dev": true, 1721 | "dependencies": { 1722 | "js-tokens": "^3.0.0 || ^4.0.0" 1723 | }, 1724 | "bin": { 1725 | "loose-envify": "cli.js" 1726 | } 1727 | }, 1728 | "node_modules/lru-cache": { 1729 | "version": "6.0.0", 1730 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1731 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1732 | "dev": true, 1733 | "dependencies": { 1734 | "yallist": "^4.0.0" 1735 | }, 1736 | "engines": { 1737 | "node": ">=10" 1738 | } 1739 | }, 1740 | "node_modules/minimatch": { 1741 | "version": "3.1.2", 1742 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1743 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1744 | "dev": true, 1745 | "dependencies": { 1746 | "brace-expansion": "^1.1.7" 1747 | }, 1748 | "engines": { 1749 | "node": "*" 1750 | } 1751 | }, 1752 | "node_modules/minimist": { 1753 | "version": "1.2.6", 1754 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 1755 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 1756 | "dev": true 1757 | }, 1758 | "node_modules/minipass": { 1759 | "version": "6.0.2", 1760 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", 1761 | "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", 1762 | "dev": true, 1763 | "engines": { 1764 | "node": ">=16 || 14 >=14.17" 1765 | } 1766 | }, 1767 | "node_modules/ms": { 1768 | "version": "2.1.2", 1769 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1770 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1771 | "dev": true 1772 | }, 1773 | "node_modules/natural-compare": { 1774 | "version": "1.4.0", 1775 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1776 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1777 | "dev": true 1778 | }, 1779 | "node_modules/node-domexception": { 1780 | "version": "1.0.0", 1781 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", 1782 | "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", 1783 | "funding": [ 1784 | { 1785 | "type": "github", 1786 | "url": "https://github.com/sponsors/jimmywarting" 1787 | }, 1788 | { 1789 | "type": "github", 1790 | "url": "https://paypal.me/jimmywarting" 1791 | } 1792 | ], 1793 | "engines": { 1794 | "node": ">=10.5.0" 1795 | } 1796 | }, 1797 | "node_modules/node-fetch": { 1798 | "version": "3.2.10", 1799 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", 1800 | "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", 1801 | "dependencies": { 1802 | "data-uri-to-buffer": "^4.0.0", 1803 | "fetch-blob": "^3.1.4", 1804 | "formdata-polyfill": "^4.0.10" 1805 | }, 1806 | "engines": { 1807 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1808 | }, 1809 | "funding": { 1810 | "type": "opencollective", 1811 | "url": "https://opencollective.com/node-fetch" 1812 | } 1813 | }, 1814 | "node_modules/object-assign": { 1815 | "version": "4.1.1", 1816 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1817 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1818 | "dev": true, 1819 | "engines": { 1820 | "node": ">=0.10.0" 1821 | } 1822 | }, 1823 | "node_modules/object-inspect": { 1824 | "version": "1.12.0", 1825 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", 1826 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", 1827 | "dev": true, 1828 | "funding": { 1829 | "url": "https://github.com/sponsors/ljharb" 1830 | } 1831 | }, 1832 | "node_modules/object-keys": { 1833 | "version": "1.1.1", 1834 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1835 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1836 | "dev": true, 1837 | "engines": { 1838 | "node": ">= 0.4" 1839 | } 1840 | }, 1841 | "node_modules/object.assign": { 1842 | "version": "4.1.2", 1843 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 1844 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 1845 | "dev": true, 1846 | "dependencies": { 1847 | "call-bind": "^1.0.0", 1848 | "define-properties": "^1.1.3", 1849 | "has-symbols": "^1.0.1", 1850 | "object-keys": "^1.1.1" 1851 | }, 1852 | "engines": { 1853 | "node": ">= 0.4" 1854 | }, 1855 | "funding": { 1856 | "url": "https://github.com/sponsors/ljharb" 1857 | } 1858 | }, 1859 | "node_modules/object.entries": { 1860 | "version": "1.1.5", 1861 | "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", 1862 | "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", 1863 | "dev": true, 1864 | "dependencies": { 1865 | "call-bind": "^1.0.2", 1866 | "define-properties": "^1.1.3", 1867 | "es-abstract": "^1.19.1" 1868 | }, 1869 | "engines": { 1870 | "node": ">= 0.4" 1871 | } 1872 | }, 1873 | "node_modules/object.fromentries": { 1874 | "version": "2.0.5", 1875 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", 1876 | "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", 1877 | "dev": true, 1878 | "dependencies": { 1879 | "call-bind": "^1.0.2", 1880 | "define-properties": "^1.1.3", 1881 | "es-abstract": "^1.19.1" 1882 | }, 1883 | "engines": { 1884 | "node": ">= 0.4" 1885 | }, 1886 | "funding": { 1887 | "url": "https://github.com/sponsors/ljharb" 1888 | } 1889 | }, 1890 | "node_modules/object.hasown": { 1891 | "version": "1.1.0", 1892 | "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", 1893 | "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", 1894 | "dev": true, 1895 | "dependencies": { 1896 | "define-properties": "^1.1.3", 1897 | "es-abstract": "^1.19.1" 1898 | }, 1899 | "funding": { 1900 | "url": "https://github.com/sponsors/ljharb" 1901 | } 1902 | }, 1903 | "node_modules/object.values": { 1904 | "version": "1.1.5", 1905 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", 1906 | "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", 1907 | "dev": true, 1908 | "dependencies": { 1909 | "call-bind": "^1.0.2", 1910 | "define-properties": "^1.1.3", 1911 | "es-abstract": "^1.19.1" 1912 | }, 1913 | "engines": { 1914 | "node": ">= 0.4" 1915 | }, 1916 | "funding": { 1917 | "url": "https://github.com/sponsors/ljharb" 1918 | } 1919 | }, 1920 | "node_modules/once": { 1921 | "version": "1.4.0", 1922 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1923 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1924 | "dev": true, 1925 | "dependencies": { 1926 | "wrappy": "1" 1927 | } 1928 | }, 1929 | "node_modules/optionator": { 1930 | "version": "0.9.1", 1931 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 1932 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 1933 | "dev": true, 1934 | "dependencies": { 1935 | "deep-is": "^0.1.3", 1936 | "fast-levenshtein": "^2.0.6", 1937 | "levn": "^0.4.1", 1938 | "prelude-ls": "^1.2.1", 1939 | "type-check": "^0.4.0", 1940 | "word-wrap": "^1.2.3" 1941 | }, 1942 | "engines": { 1943 | "node": ">= 0.8.0" 1944 | } 1945 | }, 1946 | "node_modules/p-limit": { 1947 | "version": "1.3.0", 1948 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", 1949 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", 1950 | "dev": true, 1951 | "dependencies": { 1952 | "p-try": "^1.0.0" 1953 | }, 1954 | "engines": { 1955 | "node": ">=4" 1956 | } 1957 | }, 1958 | "node_modules/p-locate": { 1959 | "version": "2.0.0", 1960 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 1961 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 1962 | "dev": true, 1963 | "dependencies": { 1964 | "p-limit": "^1.1.0" 1965 | }, 1966 | "engines": { 1967 | "node": ">=4" 1968 | } 1969 | }, 1970 | "node_modules/p-try": { 1971 | "version": "1.0.0", 1972 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 1973 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 1974 | "dev": true, 1975 | "engines": { 1976 | "node": ">=4" 1977 | } 1978 | }, 1979 | "node_modules/parent-module": { 1980 | "version": "1.0.1", 1981 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1982 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1983 | "dev": true, 1984 | "dependencies": { 1985 | "callsites": "^3.0.0" 1986 | }, 1987 | "engines": { 1988 | "node": ">=6" 1989 | } 1990 | }, 1991 | "node_modules/parse-json": { 1992 | "version": "4.0.0", 1993 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 1994 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 1995 | "dev": true, 1996 | "dependencies": { 1997 | "error-ex": "^1.3.1", 1998 | "json-parse-better-errors": "^1.0.1" 1999 | }, 2000 | "engines": { 2001 | "node": ">=4" 2002 | } 2003 | }, 2004 | "node_modules/path-exists": { 2005 | "version": "3.0.0", 2006 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 2007 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 2008 | "dev": true, 2009 | "engines": { 2010 | "node": ">=4" 2011 | } 2012 | }, 2013 | "node_modules/path-is-absolute": { 2014 | "version": "1.0.1", 2015 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2016 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2017 | "dev": true, 2018 | "engines": { 2019 | "node": ">=0.10.0" 2020 | } 2021 | }, 2022 | "node_modules/path-key": { 2023 | "version": "3.1.1", 2024 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2025 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2026 | "dev": true, 2027 | "engines": { 2028 | "node": ">=8" 2029 | } 2030 | }, 2031 | "node_modules/path-parse": { 2032 | "version": "1.0.7", 2033 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2034 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2035 | "dev": true 2036 | }, 2037 | "node_modules/path-scurry": { 2038 | "version": "1.9.2", 2039 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", 2040 | "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", 2041 | "dev": true, 2042 | "dependencies": { 2043 | "lru-cache": "^9.1.1", 2044 | "minipass": "^5.0.0 || ^6.0.2" 2045 | }, 2046 | "engines": { 2047 | "node": ">=16 || 14 >=14.17" 2048 | }, 2049 | "funding": { 2050 | "url": "https://github.com/sponsors/isaacs" 2051 | } 2052 | }, 2053 | "node_modules/path-scurry/node_modules/lru-cache": { 2054 | "version": "9.1.1", 2055 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", 2056 | "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", 2057 | "dev": true, 2058 | "engines": { 2059 | "node": "14 || >=16.14" 2060 | } 2061 | }, 2062 | "node_modules/pify": { 2063 | "version": "4.0.1", 2064 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 2065 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 2066 | "dev": true, 2067 | "engines": { 2068 | "node": ">=6" 2069 | } 2070 | }, 2071 | "node_modules/pkg-conf": { 2072 | "version": "3.1.0", 2073 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", 2074 | "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", 2075 | "dev": true, 2076 | "dependencies": { 2077 | "find-up": "^3.0.0", 2078 | "load-json-file": "^5.2.0" 2079 | }, 2080 | "engines": { 2081 | "node": ">=6" 2082 | } 2083 | }, 2084 | "node_modules/pkg-conf/node_modules/find-up": { 2085 | "version": "3.0.0", 2086 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 2087 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 2088 | "dev": true, 2089 | "dependencies": { 2090 | "locate-path": "^3.0.0" 2091 | }, 2092 | "engines": { 2093 | "node": ">=6" 2094 | } 2095 | }, 2096 | "node_modules/pkg-conf/node_modules/locate-path": { 2097 | "version": "3.0.0", 2098 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 2099 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 2100 | "dev": true, 2101 | "dependencies": { 2102 | "p-locate": "^3.0.0", 2103 | "path-exists": "^3.0.0" 2104 | }, 2105 | "engines": { 2106 | "node": ">=6" 2107 | } 2108 | }, 2109 | "node_modules/pkg-conf/node_modules/p-limit": { 2110 | "version": "2.3.0", 2111 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 2112 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 2113 | "dev": true, 2114 | "dependencies": { 2115 | "p-try": "^2.0.0" 2116 | }, 2117 | "engines": { 2118 | "node": ">=6" 2119 | }, 2120 | "funding": { 2121 | "url": "https://github.com/sponsors/sindresorhus" 2122 | } 2123 | }, 2124 | "node_modules/pkg-conf/node_modules/p-locate": { 2125 | "version": "3.0.0", 2126 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 2127 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 2128 | "dev": true, 2129 | "dependencies": { 2130 | "p-limit": "^2.0.0" 2131 | }, 2132 | "engines": { 2133 | "node": ">=6" 2134 | } 2135 | }, 2136 | "node_modules/pkg-conf/node_modules/p-try": { 2137 | "version": "2.2.0", 2138 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 2139 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 2140 | "dev": true, 2141 | "engines": { 2142 | "node": ">=6" 2143 | } 2144 | }, 2145 | "node_modules/prelude-ls": { 2146 | "version": "1.2.1", 2147 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 2148 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 2149 | "dev": true, 2150 | "engines": { 2151 | "node": ">= 0.8.0" 2152 | } 2153 | }, 2154 | "node_modules/prop-types": { 2155 | "version": "15.8.1", 2156 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 2157 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 2158 | "dev": true, 2159 | "dependencies": { 2160 | "loose-envify": "^1.4.0", 2161 | "object-assign": "^4.1.1", 2162 | "react-is": "^16.13.1" 2163 | } 2164 | }, 2165 | "node_modules/punycode": { 2166 | "version": "2.1.1", 2167 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2168 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 2169 | "dev": true, 2170 | "engines": { 2171 | "node": ">=6" 2172 | } 2173 | }, 2174 | "node_modules/react-is": { 2175 | "version": "16.13.1", 2176 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 2177 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", 2178 | "dev": true 2179 | }, 2180 | "node_modules/regexp.prototype.flags": { 2181 | "version": "1.4.3", 2182 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", 2183 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", 2184 | "dev": true, 2185 | "dependencies": { 2186 | "call-bind": "^1.0.2", 2187 | "define-properties": "^1.1.3", 2188 | "functions-have-names": "^1.2.2" 2189 | }, 2190 | "engines": { 2191 | "node": ">= 0.4" 2192 | }, 2193 | "funding": { 2194 | "url": "https://github.com/sponsors/ljharb" 2195 | } 2196 | }, 2197 | "node_modules/regexpp": { 2198 | "version": "3.2.0", 2199 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 2200 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 2201 | "dev": true, 2202 | "engines": { 2203 | "node": ">=8" 2204 | }, 2205 | "funding": { 2206 | "url": "https://github.com/sponsors/mysticatea" 2207 | } 2208 | }, 2209 | "node_modules/resolve": { 2210 | "version": "1.22.0", 2211 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 2212 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 2213 | "dev": true, 2214 | "dependencies": { 2215 | "is-core-module": "^2.8.1", 2216 | "path-parse": "^1.0.7", 2217 | "supports-preserve-symlinks-flag": "^1.0.0" 2218 | }, 2219 | "bin": { 2220 | "resolve": "bin/resolve" 2221 | }, 2222 | "funding": { 2223 | "url": "https://github.com/sponsors/ljharb" 2224 | } 2225 | }, 2226 | "node_modules/resolve-from": { 2227 | "version": "4.0.0", 2228 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2229 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2230 | "dev": true, 2231 | "engines": { 2232 | "node": ">=4" 2233 | } 2234 | }, 2235 | "node_modules/rimraf": { 2236 | "version": "3.0.2", 2237 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 2238 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 2239 | "dev": true, 2240 | "dependencies": { 2241 | "glob": "^7.1.3" 2242 | }, 2243 | "bin": { 2244 | "rimraf": "bin.js" 2245 | }, 2246 | "funding": { 2247 | "url": "https://github.com/sponsors/isaacs" 2248 | } 2249 | }, 2250 | "node_modules/semver": { 2251 | "version": "6.3.0", 2252 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2253 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2254 | "dev": true, 2255 | "bin": { 2256 | "semver": "bin/semver.js" 2257 | } 2258 | }, 2259 | "node_modules/shebang-command": { 2260 | "version": "2.0.0", 2261 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2262 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2263 | "dev": true, 2264 | "dependencies": { 2265 | "shebang-regex": "^3.0.0" 2266 | }, 2267 | "engines": { 2268 | "node": ">=8" 2269 | } 2270 | }, 2271 | "node_modules/shebang-regex": { 2272 | "version": "3.0.0", 2273 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2274 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2275 | "dev": true, 2276 | "engines": { 2277 | "node": ">=8" 2278 | } 2279 | }, 2280 | "node_modules/side-channel": { 2281 | "version": "1.0.4", 2282 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 2283 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 2284 | "dev": true, 2285 | "dependencies": { 2286 | "call-bind": "^1.0.0", 2287 | "get-intrinsic": "^1.0.2", 2288 | "object-inspect": "^1.9.0" 2289 | }, 2290 | "funding": { 2291 | "url": "https://github.com/sponsors/ljharb" 2292 | } 2293 | }, 2294 | "node_modules/signal-exit": { 2295 | "version": "4.0.2", 2296 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", 2297 | "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", 2298 | "dev": true, 2299 | "engines": { 2300 | "node": ">=14" 2301 | }, 2302 | "funding": { 2303 | "url": "https://github.com/sponsors/isaacs" 2304 | } 2305 | }, 2306 | "node_modules/standard": { 2307 | "version": "17.0.0", 2308 | "resolved": "https://registry.npmjs.org/standard/-/standard-17.0.0.tgz", 2309 | "integrity": "sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA==", 2310 | "dev": true, 2311 | "funding": [ 2312 | { 2313 | "type": "github", 2314 | "url": "https://github.com/sponsors/feross" 2315 | }, 2316 | { 2317 | "type": "patreon", 2318 | "url": "https://www.patreon.com/feross" 2319 | }, 2320 | { 2321 | "type": "consulting", 2322 | "url": "https://feross.org/support" 2323 | } 2324 | ], 2325 | "dependencies": { 2326 | "eslint": "^8.13.0", 2327 | "eslint-config-standard": "17.0.0", 2328 | "eslint-config-standard-jsx": "^11.0.0", 2329 | "eslint-plugin-import": "^2.26.0", 2330 | "eslint-plugin-n": "^15.1.0", 2331 | "eslint-plugin-promise": "^6.0.0", 2332 | "eslint-plugin-react": "^7.28.0", 2333 | "standard-engine": "^15.0.0" 2334 | }, 2335 | "bin": { 2336 | "standard": "bin/cmd.js" 2337 | }, 2338 | "engines": { 2339 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2340 | } 2341 | }, 2342 | "node_modules/standard-engine": { 2343 | "version": "15.0.0", 2344 | "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.0.0.tgz", 2345 | "integrity": "sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA==", 2346 | "dev": true, 2347 | "funding": [ 2348 | { 2349 | "type": "github", 2350 | "url": "https://github.com/sponsors/feross" 2351 | }, 2352 | { 2353 | "type": "patreon", 2354 | "url": "https://www.patreon.com/feross" 2355 | }, 2356 | { 2357 | "type": "consulting", 2358 | "url": "https://feross.org/support" 2359 | } 2360 | ], 2361 | "dependencies": { 2362 | "get-stdin": "^8.0.0", 2363 | "minimist": "^1.2.6", 2364 | "pkg-conf": "^3.1.0", 2365 | "xdg-basedir": "^4.0.0" 2366 | }, 2367 | "engines": { 2368 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2369 | } 2370 | }, 2371 | "node_modules/string-width": { 2372 | "version": "5.1.2", 2373 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 2374 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 2375 | "dev": true, 2376 | "dependencies": { 2377 | "eastasianwidth": "^0.2.0", 2378 | "emoji-regex": "^9.2.2", 2379 | "strip-ansi": "^7.0.1" 2380 | }, 2381 | "engines": { 2382 | "node": ">=12" 2383 | }, 2384 | "funding": { 2385 | "url": "https://github.com/sponsors/sindresorhus" 2386 | } 2387 | }, 2388 | "node_modules/string-width-cjs": { 2389 | "name": "string-width", 2390 | "version": "4.2.3", 2391 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 2392 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2393 | "dev": true, 2394 | "dependencies": { 2395 | "emoji-regex": "^8.0.0", 2396 | "is-fullwidth-code-point": "^3.0.0", 2397 | "strip-ansi": "^6.0.1" 2398 | }, 2399 | "engines": { 2400 | "node": ">=8" 2401 | } 2402 | }, 2403 | "node_modules/string-width-cjs/node_modules/emoji-regex": { 2404 | "version": "8.0.0", 2405 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 2406 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 2407 | "dev": true 2408 | }, 2409 | "node_modules/string-width/node_modules/ansi-regex": { 2410 | "version": "6.0.1", 2411 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 2412 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 2413 | "dev": true, 2414 | "engines": { 2415 | "node": ">=12" 2416 | }, 2417 | "funding": { 2418 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 2419 | } 2420 | }, 2421 | "node_modules/string-width/node_modules/strip-ansi": { 2422 | "version": "7.1.0", 2423 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 2424 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 2425 | "dev": true, 2426 | "dependencies": { 2427 | "ansi-regex": "^6.0.1" 2428 | }, 2429 | "engines": { 2430 | "node": ">=12" 2431 | }, 2432 | "funding": { 2433 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 2434 | } 2435 | }, 2436 | "node_modules/string.prototype.matchall": { 2437 | "version": "4.0.7", 2438 | "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", 2439 | "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", 2440 | "dev": true, 2441 | "dependencies": { 2442 | "call-bind": "^1.0.2", 2443 | "define-properties": "^1.1.3", 2444 | "es-abstract": "^1.19.1", 2445 | "get-intrinsic": "^1.1.1", 2446 | "has-symbols": "^1.0.3", 2447 | "internal-slot": "^1.0.3", 2448 | "regexp.prototype.flags": "^1.4.1", 2449 | "side-channel": "^1.0.4" 2450 | }, 2451 | "funding": { 2452 | "url": "https://github.com/sponsors/ljharb" 2453 | } 2454 | }, 2455 | "node_modules/string.prototype.trimend": { 2456 | "version": "1.0.4", 2457 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", 2458 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", 2459 | "dev": true, 2460 | "dependencies": { 2461 | "call-bind": "^1.0.2", 2462 | "define-properties": "^1.1.3" 2463 | }, 2464 | "funding": { 2465 | "url": "https://github.com/sponsors/ljharb" 2466 | } 2467 | }, 2468 | "node_modules/string.prototype.trimstart": { 2469 | "version": "1.0.4", 2470 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", 2471 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", 2472 | "dev": true, 2473 | "dependencies": { 2474 | "call-bind": "^1.0.2", 2475 | "define-properties": "^1.1.3" 2476 | }, 2477 | "funding": { 2478 | "url": "https://github.com/sponsors/ljharb" 2479 | } 2480 | }, 2481 | "node_modules/strip-ansi": { 2482 | "version": "6.0.1", 2483 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2484 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2485 | "dev": true, 2486 | "dependencies": { 2487 | "ansi-regex": "^5.0.1" 2488 | }, 2489 | "engines": { 2490 | "node": ">=8" 2491 | } 2492 | }, 2493 | "node_modules/strip-ansi-cjs": { 2494 | "name": "strip-ansi", 2495 | "version": "6.0.1", 2496 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2497 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2498 | "dev": true, 2499 | "dependencies": { 2500 | "ansi-regex": "^5.0.1" 2501 | }, 2502 | "engines": { 2503 | "node": ">=8" 2504 | } 2505 | }, 2506 | "node_modules/strip-bom": { 2507 | "version": "3.0.0", 2508 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 2509 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 2510 | "dev": true, 2511 | "engines": { 2512 | "node": ">=4" 2513 | } 2514 | }, 2515 | "node_modules/strip-json-comments": { 2516 | "version": "3.1.1", 2517 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2518 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2519 | "dev": true, 2520 | "engines": { 2521 | "node": ">=8" 2522 | }, 2523 | "funding": { 2524 | "url": "https://github.com/sponsors/sindresorhus" 2525 | } 2526 | }, 2527 | "node_modules/supports-color": { 2528 | "version": "7.2.0", 2529 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2530 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2531 | "dev": true, 2532 | "dependencies": { 2533 | "has-flag": "^4.0.0" 2534 | }, 2535 | "engines": { 2536 | "node": ">=8" 2537 | } 2538 | }, 2539 | "node_modules/supports-preserve-symlinks-flag": { 2540 | "version": "1.0.0", 2541 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2542 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2543 | "dev": true, 2544 | "engines": { 2545 | "node": ">= 0.4" 2546 | }, 2547 | "funding": { 2548 | "url": "https://github.com/sponsors/ljharb" 2549 | } 2550 | }, 2551 | "node_modules/text-table": { 2552 | "version": "0.2.0", 2553 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2554 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 2555 | "dev": true 2556 | }, 2557 | "node_modules/tsconfig-paths": { 2558 | "version": "3.14.1", 2559 | "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", 2560 | "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", 2561 | "dev": true, 2562 | "dependencies": { 2563 | "@types/json5": "^0.0.29", 2564 | "json5": "^1.0.1", 2565 | "minimist": "^1.2.6", 2566 | "strip-bom": "^3.0.0" 2567 | } 2568 | }, 2569 | "node_modules/type-check": { 2570 | "version": "0.4.0", 2571 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 2572 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 2573 | "dev": true, 2574 | "dependencies": { 2575 | "prelude-ls": "^1.2.1" 2576 | }, 2577 | "engines": { 2578 | "node": ">= 0.8.0" 2579 | } 2580 | }, 2581 | "node_modules/type-fest": { 2582 | "version": "0.20.2", 2583 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 2584 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 2585 | "dev": true, 2586 | "engines": { 2587 | "node": ">=10" 2588 | }, 2589 | "funding": { 2590 | "url": "https://github.com/sponsors/sindresorhus" 2591 | } 2592 | }, 2593 | "node_modules/unbox-primitive": { 2594 | "version": "1.0.2", 2595 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", 2596 | "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", 2597 | "dev": true, 2598 | "dependencies": { 2599 | "call-bind": "^1.0.2", 2600 | "has-bigints": "^1.0.2", 2601 | "has-symbols": "^1.0.3", 2602 | "which-boxed-primitive": "^1.0.2" 2603 | }, 2604 | "funding": { 2605 | "url": "https://github.com/sponsors/ljharb" 2606 | } 2607 | }, 2608 | "node_modules/uri-js": { 2609 | "version": "4.4.1", 2610 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 2611 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2612 | "dev": true, 2613 | "dependencies": { 2614 | "punycode": "^2.1.0" 2615 | } 2616 | }, 2617 | "node_modules/v8-compile-cache": { 2618 | "version": "2.3.0", 2619 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", 2620 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", 2621 | "dev": true 2622 | }, 2623 | "node_modules/web-streams-polyfill": { 2624 | "version": "3.2.0", 2625 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", 2626 | "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", 2627 | "engines": { 2628 | "node": ">= 8" 2629 | } 2630 | }, 2631 | "node_modules/which": { 2632 | "version": "2.0.2", 2633 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2634 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2635 | "dev": true, 2636 | "dependencies": { 2637 | "isexe": "^2.0.0" 2638 | }, 2639 | "bin": { 2640 | "node-which": "bin/node-which" 2641 | }, 2642 | "engines": { 2643 | "node": ">= 8" 2644 | } 2645 | }, 2646 | "node_modules/which-boxed-primitive": { 2647 | "version": "1.0.2", 2648 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 2649 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 2650 | "dev": true, 2651 | "dependencies": { 2652 | "is-bigint": "^1.0.1", 2653 | "is-boolean-object": "^1.1.0", 2654 | "is-number-object": "^1.0.4", 2655 | "is-string": "^1.0.5", 2656 | "is-symbol": "^1.0.3" 2657 | }, 2658 | "funding": { 2659 | "url": "https://github.com/sponsors/ljharb" 2660 | } 2661 | }, 2662 | "node_modules/word-wrap": { 2663 | "version": "1.2.4", 2664 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", 2665 | "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", 2666 | "dev": true, 2667 | "engines": { 2668 | "node": ">=0.10.0" 2669 | } 2670 | }, 2671 | "node_modules/wrap-ansi": { 2672 | "version": "8.1.0", 2673 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 2674 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 2675 | "dev": true, 2676 | "dependencies": { 2677 | "ansi-styles": "^6.1.0", 2678 | "string-width": "^5.0.1", 2679 | "strip-ansi": "^7.0.1" 2680 | }, 2681 | "engines": { 2682 | "node": ">=12" 2683 | }, 2684 | "funding": { 2685 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2686 | } 2687 | }, 2688 | "node_modules/wrap-ansi-cjs": { 2689 | "name": "wrap-ansi", 2690 | "version": "7.0.0", 2691 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2692 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2693 | "dev": true, 2694 | "dependencies": { 2695 | "ansi-styles": "^4.0.0", 2696 | "string-width": "^4.1.0", 2697 | "strip-ansi": "^6.0.0" 2698 | }, 2699 | "engines": { 2700 | "node": ">=10" 2701 | }, 2702 | "funding": { 2703 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2704 | } 2705 | }, 2706 | "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 2707 | "version": "8.0.0", 2708 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 2709 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 2710 | "dev": true 2711 | }, 2712 | "node_modules/wrap-ansi-cjs/node_modules/string-width": { 2713 | "version": "4.2.3", 2714 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 2715 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2716 | "dev": true, 2717 | "dependencies": { 2718 | "emoji-regex": "^8.0.0", 2719 | "is-fullwidth-code-point": "^3.0.0", 2720 | "strip-ansi": "^6.0.1" 2721 | }, 2722 | "engines": { 2723 | "node": ">=8" 2724 | } 2725 | }, 2726 | "node_modules/wrap-ansi/node_modules/ansi-regex": { 2727 | "version": "6.0.1", 2728 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 2729 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 2730 | "dev": true, 2731 | "engines": { 2732 | "node": ">=12" 2733 | }, 2734 | "funding": { 2735 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 2736 | } 2737 | }, 2738 | "node_modules/wrap-ansi/node_modules/ansi-styles": { 2739 | "version": "6.2.1", 2740 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 2741 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 2742 | "dev": true, 2743 | "engines": { 2744 | "node": ">=12" 2745 | }, 2746 | "funding": { 2747 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2748 | } 2749 | }, 2750 | "node_modules/wrap-ansi/node_modules/strip-ansi": { 2751 | "version": "7.1.0", 2752 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 2753 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 2754 | "dev": true, 2755 | "dependencies": { 2756 | "ansi-regex": "^6.0.1" 2757 | }, 2758 | "engines": { 2759 | "node": ">=12" 2760 | }, 2761 | "funding": { 2762 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 2763 | } 2764 | }, 2765 | "node_modules/wrappy": { 2766 | "version": "1.0.2", 2767 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2768 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2769 | "dev": true 2770 | }, 2771 | "node_modules/xdg-basedir": { 2772 | "version": "4.0.0", 2773 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", 2774 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", 2775 | "dev": true, 2776 | "engines": { 2777 | "node": ">=8" 2778 | } 2779 | }, 2780 | "node_modules/yallist": { 2781 | "version": "4.0.0", 2782 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2783 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 2784 | "dev": true 2785 | } 2786 | }, 2787 | "dependencies": { 2788 | "@eslint/eslintrc": { 2789 | "version": "1.2.2", 2790 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", 2791 | "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", 2792 | "dev": true, 2793 | "requires": { 2794 | "ajv": "^6.12.4", 2795 | "debug": "^4.3.2", 2796 | "espree": "^9.3.1", 2797 | "globals": "^13.9.0", 2798 | "ignore": "^5.2.0", 2799 | "import-fresh": "^3.2.1", 2800 | "js-yaml": "^4.1.0", 2801 | "minimatch": "^3.0.4", 2802 | "strip-json-comments": "^3.1.1" 2803 | } 2804 | }, 2805 | "@humanwhocodes/config-array": { 2806 | "version": "0.9.5", 2807 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", 2808 | "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", 2809 | "dev": true, 2810 | "requires": { 2811 | "@humanwhocodes/object-schema": "^1.2.1", 2812 | "debug": "^4.1.1", 2813 | "minimatch": "^3.0.4" 2814 | } 2815 | }, 2816 | "@humanwhocodes/object-schema": { 2817 | "version": "1.2.1", 2818 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 2819 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 2820 | "dev": true 2821 | }, 2822 | "@isaacs/cliui": { 2823 | "version": "8.0.2", 2824 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 2825 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 2826 | "dev": true, 2827 | "requires": { 2828 | "string-width": "^5.1.2", 2829 | "string-width-cjs": "npm:string-width@^4.2.0", 2830 | "strip-ansi": "^7.0.1", 2831 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 2832 | "wrap-ansi": "^8.1.0", 2833 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 2834 | }, 2835 | "dependencies": { 2836 | "ansi-regex": { 2837 | "version": "6.0.1", 2838 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 2839 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 2840 | "dev": true 2841 | }, 2842 | "strip-ansi": { 2843 | "version": "7.1.0", 2844 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 2845 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 2846 | "dev": true, 2847 | "requires": { 2848 | "ansi-regex": "^6.0.1" 2849 | } 2850 | } 2851 | } 2852 | }, 2853 | "@pkgjs/parseargs": { 2854 | "version": "0.11.0", 2855 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 2856 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 2857 | "dev": true, 2858 | "optional": true 2859 | }, 2860 | "@types/json5": { 2861 | "version": "0.0.29", 2862 | "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", 2863 | "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", 2864 | "dev": true 2865 | }, 2866 | "acorn": { 2867 | "version": "8.7.1", 2868 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", 2869 | "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", 2870 | "dev": true 2871 | }, 2872 | "acorn-jsx": { 2873 | "version": "5.3.2", 2874 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 2875 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 2876 | "dev": true, 2877 | "requires": {} 2878 | }, 2879 | "ajv": { 2880 | "version": "6.12.6", 2881 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 2882 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 2883 | "dev": true, 2884 | "requires": { 2885 | "fast-deep-equal": "^3.1.1", 2886 | "fast-json-stable-stringify": "^2.0.0", 2887 | "json-schema-traverse": "^0.4.1", 2888 | "uri-js": "^4.2.2" 2889 | } 2890 | }, 2891 | "ansi-regex": { 2892 | "version": "5.0.1", 2893 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 2894 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 2895 | "dev": true 2896 | }, 2897 | "ansi-styles": { 2898 | "version": "4.3.0", 2899 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2900 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2901 | "dev": true, 2902 | "requires": { 2903 | "color-convert": "^2.0.1" 2904 | } 2905 | }, 2906 | "argparse": { 2907 | "version": "2.0.1", 2908 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2909 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 2910 | "dev": true 2911 | }, 2912 | "array-includes": { 2913 | "version": "3.1.4", 2914 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", 2915 | "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", 2916 | "dev": true, 2917 | "requires": { 2918 | "call-bind": "^1.0.2", 2919 | "define-properties": "^1.1.3", 2920 | "es-abstract": "^1.19.1", 2921 | "get-intrinsic": "^1.1.1", 2922 | "is-string": "^1.0.7" 2923 | } 2924 | }, 2925 | "array.prototype.flat": { 2926 | "version": "1.3.0", 2927 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", 2928 | "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", 2929 | "dev": true, 2930 | "requires": { 2931 | "call-bind": "^1.0.2", 2932 | "define-properties": "^1.1.3", 2933 | "es-abstract": "^1.19.2", 2934 | "es-shim-unscopables": "^1.0.0" 2935 | } 2936 | }, 2937 | "array.prototype.flatmap": { 2938 | "version": "1.3.0", 2939 | "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", 2940 | "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", 2941 | "dev": true, 2942 | "requires": { 2943 | "call-bind": "^1.0.2", 2944 | "define-properties": "^1.1.3", 2945 | "es-abstract": "^1.19.2", 2946 | "es-shim-unscopables": "^1.0.0" 2947 | } 2948 | }, 2949 | "balanced-match": { 2950 | "version": "1.0.2", 2951 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 2952 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 2953 | "dev": true 2954 | }, 2955 | "brace-expansion": { 2956 | "version": "1.1.11", 2957 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 2958 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 2959 | "dev": true, 2960 | "requires": { 2961 | "balanced-match": "^1.0.0", 2962 | "concat-map": "0.0.1" 2963 | } 2964 | }, 2965 | "builtins": { 2966 | "version": "4.1.0", 2967 | "resolved": "https://registry.npmjs.org/builtins/-/builtins-4.1.0.tgz", 2968 | "integrity": "sha512-1bPRZQtmKaO6h7qV1YHXNtr6nCK28k0Zo95KM4dXfILcZZwoHJBN1m3lfLv9LPkcOZlrSr+J1bzMaZFO98Yq0w==", 2969 | "dev": true, 2970 | "requires": { 2971 | "semver": "^7.0.0" 2972 | }, 2973 | "dependencies": { 2974 | "semver": { 2975 | "version": "7.3.7", 2976 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 2977 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 2978 | "dev": true, 2979 | "requires": { 2980 | "lru-cache": "^6.0.0" 2981 | } 2982 | } 2983 | } 2984 | }, 2985 | "call-bind": { 2986 | "version": "1.0.2", 2987 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 2988 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 2989 | "dev": true, 2990 | "requires": { 2991 | "function-bind": "^1.1.1", 2992 | "get-intrinsic": "^1.0.2" 2993 | } 2994 | }, 2995 | "callsites": { 2996 | "version": "3.1.0", 2997 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2998 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 2999 | "dev": true 3000 | }, 3001 | "chalk": { 3002 | "version": "4.1.2", 3003 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 3004 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 3005 | "dev": true, 3006 | "requires": { 3007 | "ansi-styles": "^4.1.0", 3008 | "supports-color": "^7.1.0" 3009 | } 3010 | }, 3011 | "color-convert": { 3012 | "version": "2.0.1", 3013 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 3014 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 3015 | "dev": true, 3016 | "requires": { 3017 | "color-name": "~1.1.4" 3018 | } 3019 | }, 3020 | "color-name": { 3021 | "version": "1.1.4", 3022 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3023 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 3024 | "dev": true 3025 | }, 3026 | "concat-map": { 3027 | "version": "0.0.1", 3028 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 3029 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 3030 | "dev": true 3031 | }, 3032 | "cross-spawn": { 3033 | "version": "7.0.3", 3034 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 3035 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 3036 | "dev": true, 3037 | "requires": { 3038 | "path-key": "^3.1.0", 3039 | "shebang-command": "^2.0.0", 3040 | "which": "^2.0.1" 3041 | } 3042 | }, 3043 | "data-uri-to-buffer": { 3044 | "version": "4.0.0", 3045 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", 3046 | "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" 3047 | }, 3048 | "debug": { 3049 | "version": "4.3.4", 3050 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 3051 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 3052 | "dev": true, 3053 | "requires": { 3054 | "ms": "2.1.2" 3055 | } 3056 | }, 3057 | "deep-is": { 3058 | "version": "0.1.4", 3059 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 3060 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 3061 | "dev": true 3062 | }, 3063 | "define-properties": { 3064 | "version": "1.1.4", 3065 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", 3066 | "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", 3067 | "dev": true, 3068 | "requires": { 3069 | "has-property-descriptors": "^1.0.0", 3070 | "object-keys": "^1.1.1" 3071 | } 3072 | }, 3073 | "doctrine": { 3074 | "version": "3.0.0", 3075 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 3076 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 3077 | "dev": true, 3078 | "requires": { 3079 | "esutils": "^2.0.2" 3080 | } 3081 | }, 3082 | "eastasianwidth": { 3083 | "version": "0.2.0", 3084 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 3085 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 3086 | "dev": true 3087 | }, 3088 | "emoji-regex": { 3089 | "version": "9.2.2", 3090 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 3091 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 3092 | "dev": true 3093 | }, 3094 | "error-ex": { 3095 | "version": "1.3.2", 3096 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 3097 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 3098 | "dev": true, 3099 | "requires": { 3100 | "is-arrayish": "^0.2.1" 3101 | } 3102 | }, 3103 | "es-abstract": { 3104 | "version": "1.19.5", 3105 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", 3106 | "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", 3107 | "dev": true, 3108 | "requires": { 3109 | "call-bind": "^1.0.2", 3110 | "es-to-primitive": "^1.2.1", 3111 | "function-bind": "^1.1.1", 3112 | "get-intrinsic": "^1.1.1", 3113 | "get-symbol-description": "^1.0.0", 3114 | "has": "^1.0.3", 3115 | "has-symbols": "^1.0.3", 3116 | "internal-slot": "^1.0.3", 3117 | "is-callable": "^1.2.4", 3118 | "is-negative-zero": "^2.0.2", 3119 | "is-regex": "^1.1.4", 3120 | "is-shared-array-buffer": "^1.0.2", 3121 | "is-string": "^1.0.7", 3122 | "is-weakref": "^1.0.2", 3123 | "object-inspect": "^1.12.0", 3124 | "object-keys": "^1.1.1", 3125 | "object.assign": "^4.1.2", 3126 | "string.prototype.trimend": "^1.0.4", 3127 | "string.prototype.trimstart": "^1.0.4", 3128 | "unbox-primitive": "^1.0.1" 3129 | } 3130 | }, 3131 | "es-shim-unscopables": { 3132 | "version": "1.0.0", 3133 | "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", 3134 | "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", 3135 | "dev": true, 3136 | "requires": { 3137 | "has": "^1.0.3" 3138 | } 3139 | }, 3140 | "es-to-primitive": { 3141 | "version": "1.2.1", 3142 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 3143 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 3144 | "dev": true, 3145 | "requires": { 3146 | "is-callable": "^1.1.4", 3147 | "is-date-object": "^1.0.1", 3148 | "is-symbol": "^1.0.2" 3149 | } 3150 | }, 3151 | "escape-string-regexp": { 3152 | "version": "4.0.0", 3153 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 3154 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 3155 | "dev": true 3156 | }, 3157 | "eslint": { 3158 | "version": "8.14.0", 3159 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", 3160 | "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", 3161 | "dev": true, 3162 | "requires": { 3163 | "@eslint/eslintrc": "^1.2.2", 3164 | "@humanwhocodes/config-array": "^0.9.2", 3165 | "ajv": "^6.10.0", 3166 | "chalk": "^4.0.0", 3167 | "cross-spawn": "^7.0.2", 3168 | "debug": "^4.3.2", 3169 | "doctrine": "^3.0.0", 3170 | "escape-string-regexp": "^4.0.0", 3171 | "eslint-scope": "^7.1.1", 3172 | "eslint-utils": "^3.0.0", 3173 | "eslint-visitor-keys": "^3.3.0", 3174 | "espree": "^9.3.1", 3175 | "esquery": "^1.4.0", 3176 | "esutils": "^2.0.2", 3177 | "fast-deep-equal": "^3.1.3", 3178 | "file-entry-cache": "^6.0.1", 3179 | "functional-red-black-tree": "^1.0.1", 3180 | "glob-parent": "^6.0.1", 3181 | "globals": "^13.6.0", 3182 | "ignore": "^5.2.0", 3183 | "import-fresh": "^3.0.0", 3184 | "imurmurhash": "^0.1.4", 3185 | "is-glob": "^4.0.0", 3186 | "js-yaml": "^4.1.0", 3187 | "json-stable-stringify-without-jsonify": "^1.0.1", 3188 | "levn": "^0.4.1", 3189 | "lodash.merge": "^4.6.2", 3190 | "minimatch": "^3.0.4", 3191 | "natural-compare": "^1.4.0", 3192 | "optionator": "^0.9.1", 3193 | "regexpp": "^3.2.0", 3194 | "strip-ansi": "^6.0.1", 3195 | "strip-json-comments": "^3.1.0", 3196 | "text-table": "^0.2.0", 3197 | "v8-compile-cache": "^2.0.3" 3198 | } 3199 | }, 3200 | "eslint-config-standard": { 3201 | "version": "17.0.0", 3202 | "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", 3203 | "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", 3204 | "dev": true, 3205 | "requires": {} 3206 | }, 3207 | "eslint-config-standard-jsx": { 3208 | "version": "11.0.0", 3209 | "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz", 3210 | "integrity": "sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==", 3211 | "dev": true, 3212 | "requires": {} 3213 | }, 3214 | "eslint-import-resolver-node": { 3215 | "version": "0.3.6", 3216 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", 3217 | "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", 3218 | "dev": true, 3219 | "requires": { 3220 | "debug": "^3.2.7", 3221 | "resolve": "^1.20.0" 3222 | }, 3223 | "dependencies": { 3224 | "debug": { 3225 | "version": "3.2.7", 3226 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 3227 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 3228 | "dev": true, 3229 | "requires": { 3230 | "ms": "^2.1.1" 3231 | } 3232 | } 3233 | } 3234 | }, 3235 | "eslint-module-utils": { 3236 | "version": "2.7.3", 3237 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", 3238 | "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", 3239 | "dev": true, 3240 | "requires": { 3241 | "debug": "^3.2.7", 3242 | "find-up": "^2.1.0" 3243 | }, 3244 | "dependencies": { 3245 | "debug": { 3246 | "version": "3.2.7", 3247 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 3248 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 3249 | "dev": true, 3250 | "requires": { 3251 | "ms": "^2.1.1" 3252 | } 3253 | } 3254 | } 3255 | }, 3256 | "eslint-plugin-es": { 3257 | "version": "4.1.0", 3258 | "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", 3259 | "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", 3260 | "dev": true, 3261 | "requires": { 3262 | "eslint-utils": "^2.0.0", 3263 | "regexpp": "^3.0.0" 3264 | }, 3265 | "dependencies": { 3266 | "eslint-utils": { 3267 | "version": "2.1.0", 3268 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", 3269 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", 3270 | "dev": true, 3271 | "requires": { 3272 | "eslint-visitor-keys": "^1.1.0" 3273 | } 3274 | }, 3275 | "eslint-visitor-keys": { 3276 | "version": "1.3.0", 3277 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", 3278 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", 3279 | "dev": true 3280 | } 3281 | } 3282 | }, 3283 | "eslint-plugin-import": { 3284 | "version": "2.26.0", 3285 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", 3286 | "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", 3287 | "dev": true, 3288 | "requires": { 3289 | "array-includes": "^3.1.4", 3290 | "array.prototype.flat": "^1.2.5", 3291 | "debug": "^2.6.9", 3292 | "doctrine": "^2.1.0", 3293 | "eslint-import-resolver-node": "^0.3.6", 3294 | "eslint-module-utils": "^2.7.3", 3295 | "has": "^1.0.3", 3296 | "is-core-module": "^2.8.1", 3297 | "is-glob": "^4.0.3", 3298 | "minimatch": "^3.1.2", 3299 | "object.values": "^1.1.5", 3300 | "resolve": "^1.22.0", 3301 | "tsconfig-paths": "^3.14.1" 3302 | }, 3303 | "dependencies": { 3304 | "debug": { 3305 | "version": "2.6.9", 3306 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 3307 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 3308 | "dev": true, 3309 | "requires": { 3310 | "ms": "2.0.0" 3311 | } 3312 | }, 3313 | "doctrine": { 3314 | "version": "2.1.0", 3315 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 3316 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 3317 | "dev": true, 3318 | "requires": { 3319 | "esutils": "^2.0.2" 3320 | } 3321 | }, 3322 | "ms": { 3323 | "version": "2.0.0", 3324 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 3325 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 3326 | "dev": true 3327 | } 3328 | } 3329 | }, 3330 | "eslint-plugin-n": { 3331 | "version": "15.2.0", 3332 | "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.2.0.tgz", 3333 | "integrity": "sha512-lWLg++jGwC88GDGGBX3CMkk0GIWq0y41aH51lavWApOKcMQcYoL3Ayd0lEdtD3SnQtR+3qBvWQS3qGbR2BxRWg==", 3334 | "dev": true, 3335 | "requires": { 3336 | "builtins": "^4.0.0", 3337 | "eslint-plugin-es": "^4.1.0", 3338 | "eslint-utils": "^3.0.0", 3339 | "ignore": "^5.1.1", 3340 | "is-core-module": "^2.3.0", 3341 | "minimatch": "^3.0.4", 3342 | "resolve": "^1.10.1", 3343 | "semver": "^6.3.0" 3344 | } 3345 | }, 3346 | "eslint-plugin-promise": { 3347 | "version": "6.0.0", 3348 | "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz", 3349 | "integrity": "sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==", 3350 | "dev": true, 3351 | "requires": {} 3352 | }, 3353 | "eslint-plugin-react": { 3354 | "version": "7.29.4", 3355 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", 3356 | "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", 3357 | "dev": true, 3358 | "requires": { 3359 | "array-includes": "^3.1.4", 3360 | "array.prototype.flatmap": "^1.2.5", 3361 | "doctrine": "^2.1.0", 3362 | "estraverse": "^5.3.0", 3363 | "jsx-ast-utils": "^2.4.1 || ^3.0.0", 3364 | "minimatch": "^3.1.2", 3365 | "object.entries": "^1.1.5", 3366 | "object.fromentries": "^2.0.5", 3367 | "object.hasown": "^1.1.0", 3368 | "object.values": "^1.1.5", 3369 | "prop-types": "^15.8.1", 3370 | "resolve": "^2.0.0-next.3", 3371 | "semver": "^6.3.0", 3372 | "string.prototype.matchall": "^4.0.6" 3373 | }, 3374 | "dependencies": { 3375 | "doctrine": { 3376 | "version": "2.1.0", 3377 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 3378 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 3379 | "dev": true, 3380 | "requires": { 3381 | "esutils": "^2.0.2" 3382 | } 3383 | }, 3384 | "resolve": { 3385 | "version": "2.0.0-next.3", 3386 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", 3387 | "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", 3388 | "dev": true, 3389 | "requires": { 3390 | "is-core-module": "^2.2.0", 3391 | "path-parse": "^1.0.6" 3392 | } 3393 | } 3394 | } 3395 | }, 3396 | "eslint-scope": { 3397 | "version": "7.1.1", 3398 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 3399 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 3400 | "dev": true, 3401 | "requires": { 3402 | "esrecurse": "^4.3.0", 3403 | "estraverse": "^5.2.0" 3404 | } 3405 | }, 3406 | "eslint-utils": { 3407 | "version": "3.0.0", 3408 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 3409 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 3410 | "dev": true, 3411 | "requires": { 3412 | "eslint-visitor-keys": "^2.0.0" 3413 | }, 3414 | "dependencies": { 3415 | "eslint-visitor-keys": { 3416 | "version": "2.1.0", 3417 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 3418 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 3419 | "dev": true 3420 | } 3421 | } 3422 | }, 3423 | "eslint-visitor-keys": { 3424 | "version": "3.3.0", 3425 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 3426 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 3427 | "dev": true 3428 | }, 3429 | "espree": { 3430 | "version": "9.3.1", 3431 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", 3432 | "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", 3433 | "dev": true, 3434 | "requires": { 3435 | "acorn": "^8.7.0", 3436 | "acorn-jsx": "^5.3.1", 3437 | "eslint-visitor-keys": "^3.3.0" 3438 | } 3439 | }, 3440 | "esquery": { 3441 | "version": "1.4.0", 3442 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 3443 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 3444 | "dev": true, 3445 | "requires": { 3446 | "estraverse": "^5.1.0" 3447 | } 3448 | }, 3449 | "esrecurse": { 3450 | "version": "4.3.0", 3451 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 3452 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 3453 | "dev": true, 3454 | "requires": { 3455 | "estraverse": "^5.2.0" 3456 | } 3457 | }, 3458 | "estraverse": { 3459 | "version": "5.3.0", 3460 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 3461 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 3462 | "dev": true 3463 | }, 3464 | "esutils": { 3465 | "version": "2.0.3", 3466 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 3467 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 3468 | "dev": true 3469 | }, 3470 | "fast-deep-equal": { 3471 | "version": "3.1.3", 3472 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 3473 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 3474 | "dev": true 3475 | }, 3476 | "fast-json-stable-stringify": { 3477 | "version": "2.1.0", 3478 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 3479 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 3480 | "dev": true 3481 | }, 3482 | "fast-levenshtein": { 3483 | "version": "2.0.6", 3484 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 3485 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 3486 | "dev": true 3487 | }, 3488 | "fetch-blob": { 3489 | "version": "3.1.4", 3490 | "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", 3491 | "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", 3492 | "requires": { 3493 | "node-domexception": "^1.0.0", 3494 | "web-streams-polyfill": "^3.0.3" 3495 | } 3496 | }, 3497 | "file-entry-cache": { 3498 | "version": "6.0.1", 3499 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 3500 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 3501 | "dev": true, 3502 | "requires": { 3503 | "flat-cache": "^3.0.4" 3504 | } 3505 | }, 3506 | "find-up": { 3507 | "version": "2.1.0", 3508 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 3509 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 3510 | "dev": true, 3511 | "requires": { 3512 | "locate-path": "^2.0.0" 3513 | } 3514 | }, 3515 | "flat-cache": { 3516 | "version": "3.0.4", 3517 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 3518 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 3519 | "dev": true, 3520 | "requires": { 3521 | "flatted": "^3.1.0", 3522 | "rimraf": "^3.0.2" 3523 | } 3524 | }, 3525 | "flatted": { 3526 | "version": "3.2.5", 3527 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", 3528 | "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", 3529 | "dev": true 3530 | }, 3531 | "foreground-child": { 3532 | "version": "3.1.1", 3533 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 3534 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 3535 | "dev": true, 3536 | "requires": { 3537 | "cross-spawn": "^7.0.0", 3538 | "signal-exit": "^4.0.1" 3539 | } 3540 | }, 3541 | "formdata-polyfill": { 3542 | "version": "4.0.10", 3543 | "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 3544 | "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 3545 | "requires": { 3546 | "fetch-blob": "^3.1.2" 3547 | } 3548 | }, 3549 | "fs.realpath": { 3550 | "version": "1.0.0", 3551 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 3552 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 3553 | "dev": true 3554 | }, 3555 | "function-bind": { 3556 | "version": "1.1.1", 3557 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 3558 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 3559 | "dev": true 3560 | }, 3561 | "functional-red-black-tree": { 3562 | "version": "1.0.1", 3563 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 3564 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 3565 | "dev": true 3566 | }, 3567 | "functions-have-names": { 3568 | "version": "1.2.3", 3569 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 3570 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 3571 | "dev": true 3572 | }, 3573 | "get-intrinsic": { 3574 | "version": "1.1.1", 3575 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 3576 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 3577 | "dev": true, 3578 | "requires": { 3579 | "function-bind": "^1.1.1", 3580 | "has": "^1.0.3", 3581 | "has-symbols": "^1.0.1" 3582 | } 3583 | }, 3584 | "get-stdin": { 3585 | "version": "8.0.0", 3586 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", 3587 | "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", 3588 | "dev": true 3589 | }, 3590 | "get-symbol-description": { 3591 | "version": "1.0.0", 3592 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", 3593 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", 3594 | "dev": true, 3595 | "requires": { 3596 | "call-bind": "^1.0.2", 3597 | "get-intrinsic": "^1.1.1" 3598 | } 3599 | }, 3600 | "glob": { 3601 | "version": "7.1.7", 3602 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", 3603 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", 3604 | "dev": true, 3605 | "requires": { 3606 | "fs.realpath": "^1.0.0", 3607 | "inflight": "^1.0.4", 3608 | "inherits": "2", 3609 | "minimatch": "^3.0.4", 3610 | "once": "^1.3.0", 3611 | "path-is-absolute": "^1.0.0" 3612 | } 3613 | }, 3614 | "glob-parent": { 3615 | "version": "6.0.2", 3616 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 3617 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 3618 | "dev": true, 3619 | "requires": { 3620 | "is-glob": "^4.0.3" 3621 | } 3622 | }, 3623 | "globals": { 3624 | "version": "13.13.0", 3625 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", 3626 | "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", 3627 | "dev": true, 3628 | "requires": { 3629 | "type-fest": "^0.20.2" 3630 | } 3631 | }, 3632 | "graceful-fs": { 3633 | "version": "4.2.10", 3634 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 3635 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", 3636 | "dev": true 3637 | }, 3638 | "has": { 3639 | "version": "1.0.3", 3640 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 3641 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 3642 | "dev": true, 3643 | "requires": { 3644 | "function-bind": "^1.1.1" 3645 | } 3646 | }, 3647 | "has-bigints": { 3648 | "version": "1.0.2", 3649 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 3650 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 3651 | "dev": true 3652 | }, 3653 | "has-flag": { 3654 | "version": "4.0.0", 3655 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 3656 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 3657 | "dev": true 3658 | }, 3659 | "has-property-descriptors": { 3660 | "version": "1.0.0", 3661 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", 3662 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", 3663 | "dev": true, 3664 | "requires": { 3665 | "get-intrinsic": "^1.1.1" 3666 | } 3667 | }, 3668 | "has-symbols": { 3669 | "version": "1.0.3", 3670 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 3671 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 3672 | "dev": true 3673 | }, 3674 | "has-tostringtag": { 3675 | "version": "1.0.0", 3676 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 3677 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 3678 | "dev": true, 3679 | "requires": { 3680 | "has-symbols": "^1.0.2" 3681 | } 3682 | }, 3683 | "ignore": { 3684 | "version": "5.2.0", 3685 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 3686 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 3687 | "dev": true 3688 | }, 3689 | "import-fresh": { 3690 | "version": "3.3.0", 3691 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 3692 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 3693 | "dev": true, 3694 | "requires": { 3695 | "parent-module": "^1.0.0", 3696 | "resolve-from": "^4.0.0" 3697 | } 3698 | }, 3699 | "imurmurhash": { 3700 | "version": "0.1.4", 3701 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 3702 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 3703 | "dev": true 3704 | }, 3705 | "inflight": { 3706 | "version": "1.0.6", 3707 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 3708 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 3709 | "dev": true, 3710 | "requires": { 3711 | "once": "^1.3.0", 3712 | "wrappy": "1" 3713 | } 3714 | }, 3715 | "inherits": { 3716 | "version": "2.0.4", 3717 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 3718 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 3719 | "dev": true 3720 | }, 3721 | "internal-slot": { 3722 | "version": "1.0.3", 3723 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", 3724 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", 3725 | "dev": true, 3726 | "requires": { 3727 | "get-intrinsic": "^1.1.0", 3728 | "has": "^1.0.3", 3729 | "side-channel": "^1.0.4" 3730 | } 3731 | }, 3732 | "is-arrayish": { 3733 | "version": "0.2.1", 3734 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 3735 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 3736 | "dev": true 3737 | }, 3738 | "is-bigint": { 3739 | "version": "1.0.4", 3740 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 3741 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 3742 | "dev": true, 3743 | "requires": { 3744 | "has-bigints": "^1.0.1" 3745 | } 3746 | }, 3747 | "is-boolean-object": { 3748 | "version": "1.1.2", 3749 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 3750 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 3751 | "dev": true, 3752 | "requires": { 3753 | "call-bind": "^1.0.2", 3754 | "has-tostringtag": "^1.0.0" 3755 | } 3756 | }, 3757 | "is-callable": { 3758 | "version": "1.2.4", 3759 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", 3760 | "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", 3761 | "dev": true 3762 | }, 3763 | "is-core-module": { 3764 | "version": "2.9.0", 3765 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 3766 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 3767 | "dev": true, 3768 | "requires": { 3769 | "has": "^1.0.3" 3770 | } 3771 | }, 3772 | "is-date-object": { 3773 | "version": "1.0.5", 3774 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 3775 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 3776 | "dev": true, 3777 | "requires": { 3778 | "has-tostringtag": "^1.0.0" 3779 | } 3780 | }, 3781 | "is-extglob": { 3782 | "version": "2.1.1", 3783 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3784 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 3785 | "dev": true 3786 | }, 3787 | "is-fullwidth-code-point": { 3788 | "version": "3.0.0", 3789 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 3790 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 3791 | "dev": true 3792 | }, 3793 | "is-glob": { 3794 | "version": "4.0.3", 3795 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3796 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3797 | "dev": true, 3798 | "requires": { 3799 | "is-extglob": "^2.1.1" 3800 | } 3801 | }, 3802 | "is-negative-zero": { 3803 | "version": "2.0.2", 3804 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", 3805 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", 3806 | "dev": true 3807 | }, 3808 | "is-number-object": { 3809 | "version": "1.0.7", 3810 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 3811 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 3812 | "dev": true, 3813 | "requires": { 3814 | "has-tostringtag": "^1.0.0" 3815 | } 3816 | }, 3817 | "is-regex": { 3818 | "version": "1.1.4", 3819 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 3820 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 3821 | "dev": true, 3822 | "requires": { 3823 | "call-bind": "^1.0.2", 3824 | "has-tostringtag": "^1.0.0" 3825 | } 3826 | }, 3827 | "is-shared-array-buffer": { 3828 | "version": "1.0.2", 3829 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", 3830 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", 3831 | "dev": true, 3832 | "requires": { 3833 | "call-bind": "^1.0.2" 3834 | } 3835 | }, 3836 | "is-string": { 3837 | "version": "1.0.7", 3838 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 3839 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 3840 | "dev": true, 3841 | "requires": { 3842 | "has-tostringtag": "^1.0.0" 3843 | } 3844 | }, 3845 | "is-symbol": { 3846 | "version": "1.0.4", 3847 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 3848 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 3849 | "dev": true, 3850 | "requires": { 3851 | "has-symbols": "^1.0.2" 3852 | } 3853 | }, 3854 | "is-weakref": { 3855 | "version": "1.0.2", 3856 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", 3857 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 3858 | "dev": true, 3859 | "requires": { 3860 | "call-bind": "^1.0.2" 3861 | } 3862 | }, 3863 | "isexe": { 3864 | "version": "2.0.0", 3865 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3866 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 3867 | "dev": true 3868 | }, 3869 | "jackspeak": { 3870 | "version": "2.2.1", 3871 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", 3872 | "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", 3873 | "dev": true, 3874 | "requires": { 3875 | "@isaacs/cliui": "^8.0.2", 3876 | "@pkgjs/parseargs": "^0.11.0" 3877 | } 3878 | }, 3879 | "jasmine": { 3880 | "version": "5.0.0", 3881 | "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.0.0.tgz", 3882 | "integrity": "sha512-wrigegsVTke3gt65LmLhIVqDZVcsYZwj9Oyai0pc04NlmgxIhfgbX0Af9CC3+S9lk0KZlttqjr2EBO8j2OCovA==", 3883 | "dev": true, 3884 | "requires": { 3885 | "glob": "^10.2.2", 3886 | "jasmine-core": "~5.0.0" 3887 | }, 3888 | "dependencies": { 3889 | "brace-expansion": { 3890 | "version": "2.0.1", 3891 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 3892 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 3893 | "dev": true, 3894 | "requires": { 3895 | "balanced-match": "^1.0.0" 3896 | } 3897 | }, 3898 | "glob": { 3899 | "version": "10.2.6", 3900 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", 3901 | "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", 3902 | "dev": true, 3903 | "requires": { 3904 | "foreground-child": "^3.1.0", 3905 | "jackspeak": "^2.0.3", 3906 | "minimatch": "^9.0.1", 3907 | "minipass": "^5.0.0 || ^6.0.2", 3908 | "path-scurry": "^1.7.0" 3909 | } 3910 | }, 3911 | "minimatch": { 3912 | "version": "9.0.1", 3913 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", 3914 | "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", 3915 | "dev": true, 3916 | "requires": { 3917 | "brace-expansion": "^2.0.1" 3918 | } 3919 | } 3920 | } 3921 | }, 3922 | "jasmine-core": { 3923 | "version": "5.0.0", 3924 | "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.0.0.tgz", 3925 | "integrity": "sha512-BJLxZlSVyWPN/oyaS1IIvIjChghI9/xWsLAIJqL9J5Fz47CN3JNr8Lmik3S2S7QS2RxclYjvSVSXP7IR35PAmg==", 3926 | "dev": true 3927 | }, 3928 | "js-tokens": { 3929 | "version": "4.0.0", 3930 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3931 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 3932 | "dev": true 3933 | }, 3934 | "js-yaml": { 3935 | "version": "4.1.0", 3936 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 3937 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 3938 | "dev": true, 3939 | "requires": { 3940 | "argparse": "^2.0.1" 3941 | } 3942 | }, 3943 | "json-parse-better-errors": { 3944 | "version": "1.0.2", 3945 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 3946 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 3947 | "dev": true 3948 | }, 3949 | "json-schema-traverse": { 3950 | "version": "0.4.1", 3951 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3952 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 3953 | "dev": true 3954 | }, 3955 | "json-stable-stringify-without-jsonify": { 3956 | "version": "1.0.1", 3957 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 3958 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 3959 | "dev": true 3960 | }, 3961 | "json5": { 3962 | "version": "1.0.2", 3963 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", 3964 | "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", 3965 | "dev": true, 3966 | "requires": { 3967 | "minimist": "^1.2.0" 3968 | } 3969 | }, 3970 | "jsx-ast-utils": { 3971 | "version": "3.3.0", 3972 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz", 3973 | "integrity": "sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==", 3974 | "dev": true, 3975 | "requires": { 3976 | "array-includes": "^3.1.4", 3977 | "object.assign": "^4.1.2" 3978 | } 3979 | }, 3980 | "levn": { 3981 | "version": "0.4.1", 3982 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 3983 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 3984 | "dev": true, 3985 | "requires": { 3986 | "prelude-ls": "^1.2.1", 3987 | "type-check": "~0.4.0" 3988 | } 3989 | }, 3990 | "load-json-file": { 3991 | "version": "5.3.0", 3992 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", 3993 | "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", 3994 | "dev": true, 3995 | "requires": { 3996 | "graceful-fs": "^4.1.15", 3997 | "parse-json": "^4.0.0", 3998 | "pify": "^4.0.1", 3999 | "strip-bom": "^3.0.0", 4000 | "type-fest": "^0.3.0" 4001 | }, 4002 | "dependencies": { 4003 | "type-fest": { 4004 | "version": "0.3.1", 4005 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", 4006 | "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", 4007 | "dev": true 4008 | } 4009 | } 4010 | }, 4011 | "locate-path": { 4012 | "version": "2.0.0", 4013 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 4014 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 4015 | "dev": true, 4016 | "requires": { 4017 | "p-locate": "^2.0.0", 4018 | "path-exists": "^3.0.0" 4019 | } 4020 | }, 4021 | "lodash.merge": { 4022 | "version": "4.6.2", 4023 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 4024 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 4025 | "dev": true 4026 | }, 4027 | "loose-envify": { 4028 | "version": "1.4.0", 4029 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 4030 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 4031 | "dev": true, 4032 | "requires": { 4033 | "js-tokens": "^3.0.0 || ^4.0.0" 4034 | } 4035 | }, 4036 | "lru-cache": { 4037 | "version": "6.0.0", 4038 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 4039 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 4040 | "dev": true, 4041 | "requires": { 4042 | "yallist": "^4.0.0" 4043 | } 4044 | }, 4045 | "minimatch": { 4046 | "version": "3.1.2", 4047 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 4048 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 4049 | "dev": true, 4050 | "requires": { 4051 | "brace-expansion": "^1.1.7" 4052 | } 4053 | }, 4054 | "minimist": { 4055 | "version": "1.2.6", 4056 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 4057 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 4058 | "dev": true 4059 | }, 4060 | "minipass": { 4061 | "version": "6.0.2", 4062 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", 4063 | "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", 4064 | "dev": true 4065 | }, 4066 | "ms": { 4067 | "version": "2.1.2", 4068 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 4069 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 4070 | "dev": true 4071 | }, 4072 | "natural-compare": { 4073 | "version": "1.4.0", 4074 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 4075 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 4076 | "dev": true 4077 | }, 4078 | "node-domexception": { 4079 | "version": "1.0.0", 4080 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", 4081 | "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" 4082 | }, 4083 | "node-fetch": { 4084 | "version": "3.2.10", 4085 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", 4086 | "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", 4087 | "requires": { 4088 | "data-uri-to-buffer": "^4.0.0", 4089 | "fetch-blob": "^3.1.4", 4090 | "formdata-polyfill": "^4.0.10" 4091 | } 4092 | }, 4093 | "object-assign": { 4094 | "version": "4.1.1", 4095 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 4096 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 4097 | "dev": true 4098 | }, 4099 | "object-inspect": { 4100 | "version": "1.12.0", 4101 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", 4102 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", 4103 | "dev": true 4104 | }, 4105 | "object-keys": { 4106 | "version": "1.1.1", 4107 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 4108 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 4109 | "dev": true 4110 | }, 4111 | "object.assign": { 4112 | "version": "4.1.2", 4113 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 4114 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 4115 | "dev": true, 4116 | "requires": { 4117 | "call-bind": "^1.0.0", 4118 | "define-properties": "^1.1.3", 4119 | "has-symbols": "^1.0.1", 4120 | "object-keys": "^1.1.1" 4121 | } 4122 | }, 4123 | "object.entries": { 4124 | "version": "1.1.5", 4125 | "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", 4126 | "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", 4127 | "dev": true, 4128 | "requires": { 4129 | "call-bind": "^1.0.2", 4130 | "define-properties": "^1.1.3", 4131 | "es-abstract": "^1.19.1" 4132 | } 4133 | }, 4134 | "object.fromentries": { 4135 | "version": "2.0.5", 4136 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", 4137 | "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", 4138 | "dev": true, 4139 | "requires": { 4140 | "call-bind": "^1.0.2", 4141 | "define-properties": "^1.1.3", 4142 | "es-abstract": "^1.19.1" 4143 | } 4144 | }, 4145 | "object.hasown": { 4146 | "version": "1.1.0", 4147 | "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", 4148 | "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", 4149 | "dev": true, 4150 | "requires": { 4151 | "define-properties": "^1.1.3", 4152 | "es-abstract": "^1.19.1" 4153 | } 4154 | }, 4155 | "object.values": { 4156 | "version": "1.1.5", 4157 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", 4158 | "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", 4159 | "dev": true, 4160 | "requires": { 4161 | "call-bind": "^1.0.2", 4162 | "define-properties": "^1.1.3", 4163 | "es-abstract": "^1.19.1" 4164 | } 4165 | }, 4166 | "once": { 4167 | "version": "1.4.0", 4168 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 4169 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 4170 | "dev": true, 4171 | "requires": { 4172 | "wrappy": "1" 4173 | } 4174 | }, 4175 | "optionator": { 4176 | "version": "0.9.1", 4177 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 4178 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 4179 | "dev": true, 4180 | "requires": { 4181 | "deep-is": "^0.1.3", 4182 | "fast-levenshtein": "^2.0.6", 4183 | "levn": "^0.4.1", 4184 | "prelude-ls": "^1.2.1", 4185 | "type-check": "^0.4.0", 4186 | "word-wrap": "^1.2.3" 4187 | } 4188 | }, 4189 | "p-limit": { 4190 | "version": "1.3.0", 4191 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", 4192 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", 4193 | "dev": true, 4194 | "requires": { 4195 | "p-try": "^1.0.0" 4196 | } 4197 | }, 4198 | "p-locate": { 4199 | "version": "2.0.0", 4200 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 4201 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 4202 | "dev": true, 4203 | "requires": { 4204 | "p-limit": "^1.1.0" 4205 | } 4206 | }, 4207 | "p-try": { 4208 | "version": "1.0.0", 4209 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 4210 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 4211 | "dev": true 4212 | }, 4213 | "parent-module": { 4214 | "version": "1.0.1", 4215 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 4216 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 4217 | "dev": true, 4218 | "requires": { 4219 | "callsites": "^3.0.0" 4220 | } 4221 | }, 4222 | "parse-json": { 4223 | "version": "4.0.0", 4224 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 4225 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 4226 | "dev": true, 4227 | "requires": { 4228 | "error-ex": "^1.3.1", 4229 | "json-parse-better-errors": "^1.0.1" 4230 | } 4231 | }, 4232 | "path-exists": { 4233 | "version": "3.0.0", 4234 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 4235 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 4236 | "dev": true 4237 | }, 4238 | "path-is-absolute": { 4239 | "version": "1.0.1", 4240 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 4241 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 4242 | "dev": true 4243 | }, 4244 | "path-key": { 4245 | "version": "3.1.1", 4246 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 4247 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 4248 | "dev": true 4249 | }, 4250 | "path-parse": { 4251 | "version": "1.0.7", 4252 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 4253 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 4254 | "dev": true 4255 | }, 4256 | "path-scurry": { 4257 | "version": "1.9.2", 4258 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", 4259 | "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", 4260 | "dev": true, 4261 | "requires": { 4262 | "lru-cache": "^9.1.1", 4263 | "minipass": "^5.0.0 || ^6.0.2" 4264 | }, 4265 | "dependencies": { 4266 | "lru-cache": { 4267 | "version": "9.1.1", 4268 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", 4269 | "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", 4270 | "dev": true 4271 | } 4272 | } 4273 | }, 4274 | "pify": { 4275 | "version": "4.0.1", 4276 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 4277 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 4278 | "dev": true 4279 | }, 4280 | "pkg-conf": { 4281 | "version": "3.1.0", 4282 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", 4283 | "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", 4284 | "dev": true, 4285 | "requires": { 4286 | "find-up": "^3.0.0", 4287 | "load-json-file": "^5.2.0" 4288 | }, 4289 | "dependencies": { 4290 | "find-up": { 4291 | "version": "3.0.0", 4292 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 4293 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 4294 | "dev": true, 4295 | "requires": { 4296 | "locate-path": "^3.0.0" 4297 | } 4298 | }, 4299 | "locate-path": { 4300 | "version": "3.0.0", 4301 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 4302 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 4303 | "dev": true, 4304 | "requires": { 4305 | "p-locate": "^3.0.0", 4306 | "path-exists": "^3.0.0" 4307 | } 4308 | }, 4309 | "p-limit": { 4310 | "version": "2.3.0", 4311 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 4312 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 4313 | "dev": true, 4314 | "requires": { 4315 | "p-try": "^2.0.0" 4316 | } 4317 | }, 4318 | "p-locate": { 4319 | "version": "3.0.0", 4320 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 4321 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 4322 | "dev": true, 4323 | "requires": { 4324 | "p-limit": "^2.0.0" 4325 | } 4326 | }, 4327 | "p-try": { 4328 | "version": "2.2.0", 4329 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 4330 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 4331 | "dev": true 4332 | } 4333 | } 4334 | }, 4335 | "prelude-ls": { 4336 | "version": "1.2.1", 4337 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 4338 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 4339 | "dev": true 4340 | }, 4341 | "prop-types": { 4342 | "version": "15.8.1", 4343 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 4344 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 4345 | "dev": true, 4346 | "requires": { 4347 | "loose-envify": "^1.4.0", 4348 | "object-assign": "^4.1.1", 4349 | "react-is": "^16.13.1" 4350 | } 4351 | }, 4352 | "punycode": { 4353 | "version": "2.1.1", 4354 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 4355 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 4356 | "dev": true 4357 | }, 4358 | "react-is": { 4359 | "version": "16.13.1", 4360 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 4361 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", 4362 | "dev": true 4363 | }, 4364 | "regexp.prototype.flags": { 4365 | "version": "1.4.3", 4366 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", 4367 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", 4368 | "dev": true, 4369 | "requires": { 4370 | "call-bind": "^1.0.2", 4371 | "define-properties": "^1.1.3", 4372 | "functions-have-names": "^1.2.2" 4373 | } 4374 | }, 4375 | "regexpp": { 4376 | "version": "3.2.0", 4377 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 4378 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 4379 | "dev": true 4380 | }, 4381 | "resolve": { 4382 | "version": "1.22.0", 4383 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 4384 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 4385 | "dev": true, 4386 | "requires": { 4387 | "is-core-module": "^2.8.1", 4388 | "path-parse": "^1.0.7", 4389 | "supports-preserve-symlinks-flag": "^1.0.0" 4390 | } 4391 | }, 4392 | "resolve-from": { 4393 | "version": "4.0.0", 4394 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 4395 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 4396 | "dev": true 4397 | }, 4398 | "rimraf": { 4399 | "version": "3.0.2", 4400 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 4401 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 4402 | "dev": true, 4403 | "requires": { 4404 | "glob": "^7.1.3" 4405 | } 4406 | }, 4407 | "semver": { 4408 | "version": "6.3.0", 4409 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 4410 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 4411 | "dev": true 4412 | }, 4413 | "shebang-command": { 4414 | "version": "2.0.0", 4415 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 4416 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 4417 | "dev": true, 4418 | "requires": { 4419 | "shebang-regex": "^3.0.0" 4420 | } 4421 | }, 4422 | "shebang-regex": { 4423 | "version": "3.0.0", 4424 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 4425 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 4426 | "dev": true 4427 | }, 4428 | "side-channel": { 4429 | "version": "1.0.4", 4430 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 4431 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 4432 | "dev": true, 4433 | "requires": { 4434 | "call-bind": "^1.0.0", 4435 | "get-intrinsic": "^1.0.2", 4436 | "object-inspect": "^1.9.0" 4437 | } 4438 | }, 4439 | "signal-exit": { 4440 | "version": "4.0.2", 4441 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", 4442 | "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", 4443 | "dev": true 4444 | }, 4445 | "standard": { 4446 | "version": "17.0.0", 4447 | "resolved": "https://registry.npmjs.org/standard/-/standard-17.0.0.tgz", 4448 | "integrity": "sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA==", 4449 | "dev": true, 4450 | "requires": { 4451 | "eslint": "^8.13.0", 4452 | "eslint-config-standard": "17.0.0", 4453 | "eslint-config-standard-jsx": "^11.0.0", 4454 | "eslint-plugin-import": "^2.26.0", 4455 | "eslint-plugin-n": "^15.1.0", 4456 | "eslint-plugin-promise": "^6.0.0", 4457 | "eslint-plugin-react": "^7.28.0", 4458 | "standard-engine": "^15.0.0" 4459 | } 4460 | }, 4461 | "standard-engine": { 4462 | "version": "15.0.0", 4463 | "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.0.0.tgz", 4464 | "integrity": "sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA==", 4465 | "dev": true, 4466 | "requires": { 4467 | "get-stdin": "^8.0.0", 4468 | "minimist": "^1.2.6", 4469 | "pkg-conf": "^3.1.0", 4470 | "xdg-basedir": "^4.0.0" 4471 | } 4472 | }, 4473 | "string-width": { 4474 | "version": "5.1.2", 4475 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 4476 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 4477 | "dev": true, 4478 | "requires": { 4479 | "eastasianwidth": "^0.2.0", 4480 | "emoji-regex": "^9.2.2", 4481 | "strip-ansi": "^7.0.1" 4482 | }, 4483 | "dependencies": { 4484 | "ansi-regex": { 4485 | "version": "6.0.1", 4486 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 4487 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 4488 | "dev": true 4489 | }, 4490 | "strip-ansi": { 4491 | "version": "7.1.0", 4492 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 4493 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 4494 | "dev": true, 4495 | "requires": { 4496 | "ansi-regex": "^6.0.1" 4497 | } 4498 | } 4499 | } 4500 | }, 4501 | "string-width-cjs": { 4502 | "version": "npm:string-width@4.2.3", 4503 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 4504 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 4505 | "dev": true, 4506 | "requires": { 4507 | "emoji-regex": "^8.0.0", 4508 | "is-fullwidth-code-point": "^3.0.0", 4509 | "strip-ansi": "^6.0.1" 4510 | }, 4511 | "dependencies": { 4512 | "emoji-regex": { 4513 | "version": "8.0.0", 4514 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 4515 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 4516 | "dev": true 4517 | } 4518 | } 4519 | }, 4520 | "string.prototype.matchall": { 4521 | "version": "4.0.7", 4522 | "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", 4523 | "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", 4524 | "dev": true, 4525 | "requires": { 4526 | "call-bind": "^1.0.2", 4527 | "define-properties": "^1.1.3", 4528 | "es-abstract": "^1.19.1", 4529 | "get-intrinsic": "^1.1.1", 4530 | "has-symbols": "^1.0.3", 4531 | "internal-slot": "^1.0.3", 4532 | "regexp.prototype.flags": "^1.4.1", 4533 | "side-channel": "^1.0.4" 4534 | } 4535 | }, 4536 | "string.prototype.trimend": { 4537 | "version": "1.0.4", 4538 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", 4539 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", 4540 | "dev": true, 4541 | "requires": { 4542 | "call-bind": "^1.0.2", 4543 | "define-properties": "^1.1.3" 4544 | } 4545 | }, 4546 | "string.prototype.trimstart": { 4547 | "version": "1.0.4", 4548 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", 4549 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", 4550 | "dev": true, 4551 | "requires": { 4552 | "call-bind": "^1.0.2", 4553 | "define-properties": "^1.1.3" 4554 | } 4555 | }, 4556 | "strip-ansi": { 4557 | "version": "6.0.1", 4558 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4559 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4560 | "dev": true, 4561 | "requires": { 4562 | "ansi-regex": "^5.0.1" 4563 | } 4564 | }, 4565 | "strip-ansi-cjs": { 4566 | "version": "npm:strip-ansi@6.0.1", 4567 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4568 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4569 | "dev": true, 4570 | "requires": { 4571 | "ansi-regex": "^5.0.1" 4572 | } 4573 | }, 4574 | "strip-bom": { 4575 | "version": "3.0.0", 4576 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 4577 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 4578 | "dev": true 4579 | }, 4580 | "strip-json-comments": { 4581 | "version": "3.1.1", 4582 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 4583 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 4584 | "dev": true 4585 | }, 4586 | "supports-color": { 4587 | "version": "7.2.0", 4588 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 4589 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 4590 | "dev": true, 4591 | "requires": { 4592 | "has-flag": "^4.0.0" 4593 | } 4594 | }, 4595 | "supports-preserve-symlinks-flag": { 4596 | "version": "1.0.0", 4597 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 4598 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 4599 | "dev": true 4600 | }, 4601 | "text-table": { 4602 | "version": "0.2.0", 4603 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 4604 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 4605 | "dev": true 4606 | }, 4607 | "tsconfig-paths": { 4608 | "version": "3.14.1", 4609 | "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", 4610 | "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", 4611 | "dev": true, 4612 | "requires": { 4613 | "@types/json5": "^0.0.29", 4614 | "json5": "^1.0.1", 4615 | "minimist": "^1.2.6", 4616 | "strip-bom": "^3.0.0" 4617 | } 4618 | }, 4619 | "type-check": { 4620 | "version": "0.4.0", 4621 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 4622 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 4623 | "dev": true, 4624 | "requires": { 4625 | "prelude-ls": "^1.2.1" 4626 | } 4627 | }, 4628 | "type-fest": { 4629 | "version": "0.20.2", 4630 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 4631 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 4632 | "dev": true 4633 | }, 4634 | "unbox-primitive": { 4635 | "version": "1.0.2", 4636 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", 4637 | "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", 4638 | "dev": true, 4639 | "requires": { 4640 | "call-bind": "^1.0.2", 4641 | "has-bigints": "^1.0.2", 4642 | "has-symbols": "^1.0.3", 4643 | "which-boxed-primitive": "^1.0.2" 4644 | } 4645 | }, 4646 | "uri-js": { 4647 | "version": "4.4.1", 4648 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 4649 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 4650 | "dev": true, 4651 | "requires": { 4652 | "punycode": "^2.1.0" 4653 | } 4654 | }, 4655 | "v8-compile-cache": { 4656 | "version": "2.3.0", 4657 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", 4658 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", 4659 | "dev": true 4660 | }, 4661 | "web-streams-polyfill": { 4662 | "version": "3.2.0", 4663 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", 4664 | "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" 4665 | }, 4666 | "which": { 4667 | "version": "2.0.2", 4668 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 4669 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 4670 | "dev": true, 4671 | "requires": { 4672 | "isexe": "^2.0.0" 4673 | } 4674 | }, 4675 | "which-boxed-primitive": { 4676 | "version": "1.0.2", 4677 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 4678 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 4679 | "dev": true, 4680 | "requires": { 4681 | "is-bigint": "^1.0.1", 4682 | "is-boolean-object": "^1.1.0", 4683 | "is-number-object": "^1.0.4", 4684 | "is-string": "^1.0.5", 4685 | "is-symbol": "^1.0.3" 4686 | } 4687 | }, 4688 | "word-wrap": { 4689 | "version": "1.2.4", 4690 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", 4691 | "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", 4692 | "dev": true 4693 | }, 4694 | "wrap-ansi": { 4695 | "version": "8.1.0", 4696 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 4697 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 4698 | "dev": true, 4699 | "requires": { 4700 | "ansi-styles": "^6.1.0", 4701 | "string-width": "^5.0.1", 4702 | "strip-ansi": "^7.0.1" 4703 | }, 4704 | "dependencies": { 4705 | "ansi-regex": { 4706 | "version": "6.0.1", 4707 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 4708 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 4709 | "dev": true 4710 | }, 4711 | "ansi-styles": { 4712 | "version": "6.2.1", 4713 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 4714 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 4715 | "dev": true 4716 | }, 4717 | "strip-ansi": { 4718 | "version": "7.1.0", 4719 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 4720 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 4721 | "dev": true, 4722 | "requires": { 4723 | "ansi-regex": "^6.0.1" 4724 | } 4725 | } 4726 | } 4727 | }, 4728 | "wrap-ansi-cjs": { 4729 | "version": "npm:wrap-ansi@7.0.0", 4730 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 4731 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 4732 | "dev": true, 4733 | "requires": { 4734 | "ansi-styles": "^4.0.0", 4735 | "string-width": "^4.1.0", 4736 | "strip-ansi": "^6.0.0" 4737 | }, 4738 | "dependencies": { 4739 | "emoji-regex": { 4740 | "version": "8.0.0", 4741 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 4742 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 4743 | "dev": true 4744 | }, 4745 | "string-width": { 4746 | "version": "4.2.3", 4747 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 4748 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 4749 | "dev": true, 4750 | "requires": { 4751 | "emoji-regex": "^8.0.0", 4752 | "is-fullwidth-code-point": "^3.0.0", 4753 | "strip-ansi": "^6.0.1" 4754 | } 4755 | } 4756 | } 4757 | }, 4758 | "wrappy": { 4759 | "version": "1.0.2", 4760 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4761 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4762 | "dev": true 4763 | }, 4764 | "xdg-basedir": { 4765 | "version": "4.0.0", 4766 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", 4767 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", 4768 | "dev": true 4769 | }, 4770 | "yallist": { 4771 | "version": "4.0.0", 4772 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 4773 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 4774 | "dev": true 4775 | } 4776 | } 4777 | } 4778 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "safe-code-point", 3 | "version": "3.0.3", 4 | "description": "Ascertains whether a Unicode code point is 'safe' for the purposes of encoding binary data", 5 | "homepage": "https://github.com/qntm/safe-code-point", 6 | "repository": { 7 | "type": "git", 8 | "url": "git://github.com/qntm/safe-code-point.git" 9 | }, 10 | "main": "lib/index.js", 11 | "type": "module", 12 | "keywords": [ 13 | "base64", 14 | "base65536", 15 | "base32768", 16 | "base2048", 17 | "base131072", 18 | "encoding", 19 | "unicode", 20 | "text", 21 | "decoding", 22 | "binary" 23 | ], 24 | "scripts": { 25 | "jasmine": "jasmine", 26 | "standard": "standard --fix", 27 | "tag": "node -e \"require('child_process').spawn('git', ['tag', `v${require('./package.json').version}`], { stdio: 'inherit' })\"", 28 | "tag-and-publish": "npm run tag && git push --tags && npm publish && npm version patch --no-git-tag-version && git add . && git commit -m \"Bump patch\" && git push", 29 | "test": "standard && jasmine \"**/*.spec.mjs\"" 30 | }, 31 | "author": "qntm", 32 | "dependencies": { 33 | "node-fetch": "^3.0.0" 34 | }, 35 | "devDependencies": { 36 | "jasmine": "^5.0.0", 37 | "standard": "^17.0.0" 38 | }, 39 | "files": [ 40 | "lib", 41 | "!lib/**/*.spec.mjs" 42 | ], 43 | "license": "MIT" 44 | } 45 | --------------------------------------------------------------------------------