├── .github ├── FUNDING.yml └── workflows │ └── main.yml ├── .gitignore ├── .yarn └── releases │ └── yarn-3.1.0.cjs ├── .yarnrc.yml ├── LICENSE ├── README.md ├── package.json ├── packages └── svgo-jsx │ ├── .gitignore │ ├── README.md │ ├── fixtures │ ├── after.config.js │ ├── components.config.js │ ├── input-react-native-svg │ │ └── cog.svg │ ├── input │ │ └── cog.svg │ ├── react-native-svg.config.js │ └── svgo-jsx.config.js │ ├── mappings.js │ ├── package.json │ ├── svgo-jsx-bin.js │ ├── svgo-jsx-cli.js │ ├── svgo-jsx-cli.test.js │ ├── svgo-jsx.d.ts │ ├── svgo-jsx.js │ └── svgo-jsx.test.js └── yarn.lock /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | open_collective: svgo 4 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | branches: 5 | - main 6 | pull_request: 7 | branches: 8 | - main 9 | jobs: 10 | test: 11 | name: Node.js ${{ matrix.node-version }} 12 | runs-on: ubuntu-latest 13 | strategy: 14 | fail-fast: false 15 | matrix: 16 | node-version: 17 | - 18 18 | - 16 19 | - 14 20 | steps: 21 | - uses: actions/checkout@v2 22 | - uses: actions/setup-node@v2 23 | with: 24 | node-version: ${{ matrix.node-version }} 25 | - run: yarn --immutable 26 | - run: yarn test 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .yarn/* 2 | !.yarn/patches 3 | !.yarn/releases 4 | !.yarn/plugins 5 | !.yarn/sdks 6 | !.yarn/versions 7 | .pnp.* 8 | 9 | node_modules 10 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | 3 | yarnPath: .yarn/releases/yarn-3.1.0.cjs 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Bogdan Chadkin 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 | # SVGO Components 2 | 3 | Transform SVG into components for various frameworks. 4 | 5 | ## svgo-jsx 6 | 7 | See [@svgo/jsx](./packages/svgo-jsx/README.md) package with react-dom and preact support. 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "packageManager": "yarn@3.1.0", 3 | "workspaces": [ 4 | "packages/*" 5 | ], 6 | "type": "module", 7 | "scripts": { 8 | "test": "NODE_OPTIONS=--experimental-vm-modules jest" 9 | }, 10 | "devDependencies": { 11 | "jest": "^29.3.1", 12 | "prettier": "^2.7.1" 13 | }, 14 | "version": "0.0.2" 15 | } 16 | -------------------------------------------------------------------------------- /packages/svgo-jsx/.gitignore: -------------------------------------------------------------------------------- 1 | fixtures/output* 2 | -------------------------------------------------------------------------------- /packages/svgo-jsx/README.md: -------------------------------------------------------------------------------- 1 | # @svgo/jsx 2 | 3 | Transform SVG into JSX components 4 | 5 | ## Usage 6 | 7 | Create svgo-jsx.config.js module 8 | 9 | ```js 10 | export const config = { 11 | inputDir: "./svgs", 12 | outputDir: "./icons", 13 | }; 14 | ``` 15 | 16 | or in commonjs project 17 | 18 | ```js 19 | exports.config = { 20 | inputDir: "./svgs", 21 | outputDir: "./icons", 22 | }; 23 | ``` 24 | 25 | Install and run 26 | 27 | ``` 28 | yarn add @svgo/jsx --dev 29 | yarn svgo-jsx 30 | ``` 31 | 32 | You can also specify own config file 33 | 34 | ``` 35 | yarn svgo-jsx icons.config.mjs 36 | ``` 37 | 38 | ## Differences from SVGR 39 | 40 | - much smaller install size (4.30MB vs 34MB) 41 | - 4x better performance 42 | - svgr is built around babel plugins which is the source of problems above 43 | 44 | SVGR heavily inspired this project. Svgo-jsx has less features out of the box 45 | and focused on simple task to convert SVGO to JSX. 46 | 47 | ## Config 48 | 49 | **inputDir**: required string 50 | 51 | A path relative to config file with SVG files. 52 | 53 | **outputDir**: required string 54 | 55 | A path relative to config svgo-jsx will write generated components into. 56 | 57 | **target**: optional "react-dom", "react-native-svg", "preact" or "custom" 58 | 59 | Default: "react-dom" 60 | 61 | Frameworks handle attributes differently. React requires camelised "xlink:href", preact prefer modern "href". Here you can specify desired framework. 62 | 63 | "custom" target does not transform tags and attributes and allows to write svgo plugin 64 | to generate components for custom renerer. 65 | 66 | **template**: optional function 67 | 68 | ```js 69 | ({ 70 | target: Target, 71 | sourceFile: string, 72 | targetFile: string, 73 | componentName: string, 74 | jsx: string, 75 | components: string[] 76 | }) => string; 77 | ``` 78 | 79 | Default: 80 | 81 | ```js 82 | ({ sourceFile, componentName, jsx }) => `// Generated from ${sourceFile} 83 | 84 | export const ${componentName} = (props) => { 85 | return ( 86 | ${jsx} 87 | ); 88 | } 89 | `; 90 | ``` 91 | 92 | **svgProps**: optional object 93 | 94 | Default: `{ "{...props}": null }` 95 | 96 | A set of props to extend `` element. There are three ways to specify props 97 | 98 | - as string value 99 | - as dynamic prop with expression 100 | - as object spread 101 | 102 | ```json 103 | { 104 | "fill": "black", 105 | "width": "{width ?? 24}", 106 | "{...props}": null 107 | } 108 | ``` 109 | 110 | **transformFilename**: optional function 111 | 112 | ```js 113 | (string) => string; 114 | ``` 115 | 116 | Default: converts `*.svg` into `*.js` 117 | 118 | This function accepts `*.svg` basepath and transforms into whatever format you like. 119 | 120 | **plugins** 121 | 122 | Default: 123 | 124 | ```js 125 | [ 126 | { 127 | name: "preset-default", 128 | params: { 129 | overrides: { 130 | // makes icons scaled into width/height box 131 | removeViewBox: false, 132 | }, 133 | }, 134 | }, 135 | // removes xmlns namespace unnecessary when svg is inlined into html 136 | { name: "removeXMLNS" }, 137 | // prevents collision with other components on the page 138 | { name: "prefixIds" }, 139 | ] 140 | ``` 141 | 142 | SVGO plugins option to enable optimisations 143 | 144 | ## API 145 | 146 | ### convertSvgToJsx 147 | 148 | ```js 149 | ({ target: Target, file: string, svg: string, svgProps, plugins = [] }) => { 150 | jsx: string, 151 | components: string[] 152 | }; 153 | ``` 154 | 155 | Produces jsx without component wrapper and list of components (capitalized tags). 156 | 157 | - target: same string as above 158 | - file: used for error reporting 159 | - svg: string with svg file content 160 | - svgProps: same object as above without any default 161 | - plugins: svgo plugins array without any default 162 | 163 | ## Working with custom renderer 164 | 165 | Custom renderer is a SVGO plugin which prepares jsx to any not supported out of the box renderers 166 | by converting tag names and attributes. 167 | 168 | ```js 169 | const customTargetPlugin = { 170 | name: "svgo-jsx-custom", 171 | fn: () => { 172 | const customTags = { 173 | svg: "Svg" 174 | } 175 | const customAttributes = { 176 | "xlink:href": "xlinkHref" 177 | } 178 | return { 179 | element: { 180 | enter: (node) => { 181 | node.name = customTags[node.name] ?? node.name; 182 | // attributes recreation is used to preserve order 183 | const newAttributes = {}; 184 | for (const [name, value] of Object.entries(node.attributes)) { 185 | newAttributes[customAttributes[name] ?? name] = value; 186 | } 187 | node.attributes = newAttributes; 188 | }, 189 | }, 190 | }; 191 | }, 192 | }; 193 | 194 | const template = ({ componentName, jsx, components }) => ` 195 | import {${components.join(", ")}} from 'react-custom' 196 | 197 | export const ${componentName} = () => { 198 | return ( 199 | ${jsx} 200 | ); 201 | } 202 | `; 203 | 204 | export const config = { 205 | ... 206 | target: 'custom', 207 | template, 208 | plugins: [ 209 | { 210 | name: "preset-default", 211 | params: { 212 | overrides: { 213 | removeViewBox: false, 214 | }, 215 | }, 216 | }, 217 | { name: "removeXMLNS" }, 218 | { name: "prefixIds" }, 219 | customTargetPlugin 220 | ] 221 | }; 222 | ``` 223 | 224 | ## How to generate index.js if you really need it 225 | 226 | ```js 227 | export const config = { 228 | after: async ({ targets }) => { 229 | let result = '' 230 | for (const { file, componentName } of targets) { 231 | result += `export { ${componentName} } from './${file}'\n` 232 | } 233 | await fs.writeFile('icons/index.js', result) 234 | } 235 | } 236 | ``` 237 | 238 | 239 | ## License and Copyright 240 | 241 | This software is released under the terms of the MIT license. 242 | -------------------------------------------------------------------------------- /packages/svgo-jsx/fixtures/after.config.js: -------------------------------------------------------------------------------- 1 | export const config = { 2 | inputDir: "./input", 3 | outputDir: "./output-components", 4 | after: async ({ targets }) => { 5 | console.info("===start==="); 6 | console.info(targets); 7 | console.info("===end==="); 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /packages/svgo-jsx/fixtures/components.config.js: -------------------------------------------------------------------------------- 1 | const template = ({ 2 | sourceFile, 3 | componentName, 4 | jsx, 5 | components, 6 | }) => `// Generated from ${sourceFile} 7 | 8 | import {${components.join(", ")}} from 'react-custom' 9 | 10 | export const ${componentName} = (props) => { 11 | return ( 12 | ${jsx} 13 | ); 14 | } 15 | `; 16 | 17 | export const config = { 18 | inputDir: "./input", 19 | outputDir: "./output-components", 20 | template, 21 | plugins: [ 22 | { 23 | name: "capital-tags", 24 | fn: () => { 25 | return { 26 | element: { 27 | enter: (node) => { 28 | if (node.name === "svg") { 29 | node.name = "Svg"; 30 | } 31 | if (node.name === "circle") { 32 | node.name = "Circle"; 33 | } 34 | }, 35 | }, 36 | }; 37 | }, 38 | }, 39 | ], 40 | }; 41 | -------------------------------------------------------------------------------- /packages/svgo-jsx/fixtures/input-react-native-svg/cog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /packages/svgo-jsx/fixtures/input/cog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/svgo-jsx/fixtures/react-native-svg.config.js: -------------------------------------------------------------------------------- 1 | export const config = { 2 | target: "react-native-svg", 3 | inputDir: "./input-react-native-svg", 4 | outputDir: "./output-react-native-svg", 5 | }; 6 | -------------------------------------------------------------------------------- /packages/svgo-jsx/fixtures/svgo-jsx.config.js: -------------------------------------------------------------------------------- 1 | export const config = { 2 | inputDir: "./input", 3 | outputDir: "./output", 4 | }; 5 | -------------------------------------------------------------------------------- /packages/svgo-jsx/mappings.js: -------------------------------------------------------------------------------- 1 | // https://github.com/facebook/react/blob/419cc9c3799bc296c3c2a2c93880826aca680886/packages/react-dom/src/shared/possibleStandardNames.js 2 | 3 | export const reactAttributes = { 4 | // HTML 5 | accept: "accept", 6 | acceptcharset: "acceptCharset", 7 | "accept-charset": "acceptCharset", 8 | accesskey: "accessKey", 9 | action: "action", 10 | allowfullscreen: "allowFullScreen", 11 | alt: "alt", 12 | as: "as", 13 | async: "async", 14 | autocapitalize: "autoCapitalize", 15 | autocomplete: "autoComplete", 16 | autocorrect: "autoCorrect", 17 | autofocus: "autoFocus", 18 | autoplay: "autoPlay", 19 | autosave: "autoSave", 20 | capture: "capture", 21 | cellpadding: "cellPadding", 22 | cellspacing: "cellSpacing", 23 | challenge: "challenge", 24 | charset: "charSet", 25 | checked: "checked", 26 | children: "children", 27 | cite: "cite", 28 | class: "className", 29 | classid: "classID", 30 | classname: "className", 31 | cols: "cols", 32 | colspan: "colSpan", 33 | content: "content", 34 | contenteditable: "contentEditable", 35 | contextmenu: "contextMenu", 36 | controls: "controls", 37 | controlslist: "controlsList", 38 | coords: "coords", 39 | crossorigin: "crossOrigin", 40 | dangerouslysetinnerhtml: "dangerouslySetInnerHTML", 41 | data: "data", 42 | datetime: "dateTime", 43 | default: "default", 44 | defaultchecked: "defaultChecked", 45 | defaultvalue: "defaultValue", 46 | defer: "defer", 47 | dir: "dir", 48 | disabled: "disabled", 49 | disablepictureinpicture: "disablePictureInPicture", 50 | disableremoteplayback: "disableRemotePlayback", 51 | download: "download", 52 | draggable: "draggable", 53 | enctype: "encType", 54 | enterkeyhint: "enterKeyHint", 55 | for: "htmlFor", 56 | form: "form", 57 | formmethod: "formMethod", 58 | formaction: "formAction", 59 | formenctype: "formEncType", 60 | formnovalidate: "formNoValidate", 61 | formtarget: "formTarget", 62 | frameborder: "frameBorder", 63 | headers: "headers", 64 | height: "height", 65 | hidden: "hidden", 66 | high: "high", 67 | href: "href", 68 | hreflang: "hrefLang", 69 | htmlfor: "htmlFor", 70 | httpequiv: "httpEquiv", 71 | "http-equiv": "httpEquiv", 72 | icon: "icon", 73 | id: "id", 74 | innerhtml: "innerHTML", 75 | inputmode: "inputMode", 76 | integrity: "integrity", 77 | is: "is", 78 | itemid: "itemID", 79 | itemprop: "itemProp", 80 | itemref: "itemRef", 81 | itemscope: "itemScope", 82 | itemtype: "itemType", 83 | keyparams: "keyParams", 84 | keytype: "keyType", 85 | kind: "kind", 86 | label: "label", 87 | lang: "lang", 88 | list: "list", 89 | loop: "loop", 90 | low: "low", 91 | manifest: "manifest", 92 | marginwidth: "marginWidth", 93 | marginheight: "marginHeight", 94 | max: "max", 95 | maxlength: "maxLength", 96 | media: "media", 97 | mediagroup: "mediaGroup", 98 | method: "method", 99 | min: "min", 100 | minlength: "minLength", 101 | multiple: "multiple", 102 | muted: "muted", 103 | name: "name", 104 | nomodule: "noModule", 105 | nonce: "nonce", 106 | novalidate: "noValidate", 107 | open: "open", 108 | optimum: "optimum", 109 | pattern: "pattern", 110 | placeholder: "placeholder", 111 | playsinline: "playsInline", 112 | poster: "poster", 113 | preload: "preload", 114 | profile: "profile", 115 | radiogroup: "radioGroup", 116 | readonly: "readOnly", 117 | referrerpolicy: "referrerPolicy", 118 | rel: "rel", 119 | required: "required", 120 | reversed: "reversed", 121 | role: "role", 122 | rows: "rows", 123 | rowspan: "rowSpan", 124 | sandbox: "sandbox", 125 | scope: "scope", 126 | scoped: "scoped", 127 | scrolling: "scrolling", 128 | seamless: "seamless", 129 | selected: "selected", 130 | shape: "shape", 131 | size: "size", 132 | sizes: "sizes", 133 | span: "span", 134 | spellcheck: "spellCheck", 135 | src: "src", 136 | srcdoc: "srcDoc", 137 | srclang: "srcLang", 138 | srcset: "srcSet", 139 | start: "start", 140 | step: "step", 141 | style: "style", 142 | summary: "summary", 143 | tabindex: "tabIndex", 144 | target: "target", 145 | title: "title", 146 | type: "type", 147 | usemap: "useMap", 148 | value: "value", 149 | width: "width", 150 | wmode: "wmode", 151 | wrap: "wrap", 152 | 153 | // SVG 154 | about: "about", 155 | accentheight: "accentHeight", 156 | "accent-height": "accentHeight", 157 | accumulate: "accumulate", 158 | additive: "additive", 159 | alignmentbaseline: "alignmentBaseline", 160 | "alignment-baseline": "alignmentBaseline", 161 | allowreorder: "allowReorder", 162 | alphabetic: "alphabetic", 163 | amplitude: "amplitude", 164 | arabicform: "arabicForm", 165 | "arabic-form": "arabicForm", 166 | ascent: "ascent", 167 | attributename: "attributeName", 168 | attributetype: "attributeType", 169 | autoreverse: "autoReverse", 170 | azimuth: "azimuth", 171 | basefrequency: "baseFrequency", 172 | baselineshift: "baselineShift", 173 | "baseline-shift": "baselineShift", 174 | baseprofile: "baseProfile", 175 | bbox: "bbox", 176 | begin: "begin", 177 | bias: "bias", 178 | by: "by", 179 | calcmode: "calcMode", 180 | capheight: "capHeight", 181 | "cap-height": "capHeight", 182 | clip: "clip", 183 | clippath: "clipPath", 184 | "clip-path": "clipPath", 185 | clippathunits: "clipPathUnits", 186 | cliprule: "clipRule", 187 | "clip-rule": "clipRule", 188 | color: "color", 189 | colorinterpolation: "colorInterpolation", 190 | "color-interpolation": "colorInterpolation", 191 | colorinterpolationfilters: "colorInterpolationFilters", 192 | "color-interpolation-filters": "colorInterpolationFilters", 193 | colorprofile: "colorProfile", 194 | "color-profile": "colorProfile", 195 | colorrendering: "colorRendering", 196 | "color-rendering": "colorRendering", 197 | contentscripttype: "contentScriptType", 198 | contentstyletype: "contentStyleType", 199 | cursor: "cursor", 200 | cx: "cx", 201 | cy: "cy", 202 | d: "d", 203 | datatype: "datatype", 204 | decelerate: "decelerate", 205 | descent: "descent", 206 | diffuseconstant: "diffuseConstant", 207 | direction: "direction", 208 | display: "display", 209 | divisor: "divisor", 210 | dominantbaseline: "dominantBaseline", 211 | "dominant-baseline": "dominantBaseline", 212 | dur: "dur", 213 | dx: "dx", 214 | dy: "dy", 215 | edgemode: "edgeMode", 216 | elevation: "elevation", 217 | enablebackground: "enableBackground", 218 | "enable-background": "enableBackground", 219 | end: "end", 220 | exponent: "exponent", 221 | externalresourcesrequired: "externalResourcesRequired", 222 | fill: "fill", 223 | fillopacity: "fillOpacity", 224 | "fill-opacity": "fillOpacity", 225 | fillrule: "fillRule", 226 | "fill-rule": "fillRule", 227 | filter: "filter", 228 | filterres: "filterRes", 229 | filterunits: "filterUnits", 230 | floodopacity: "floodOpacity", 231 | "flood-opacity": "floodOpacity", 232 | floodcolor: "floodColor", 233 | "flood-color": "floodColor", 234 | focusable: "focusable", 235 | fontfamily: "fontFamily", 236 | "font-family": "fontFamily", 237 | fontsize: "fontSize", 238 | "font-size": "fontSize", 239 | fontsizeadjust: "fontSizeAdjust", 240 | "font-size-adjust": "fontSizeAdjust", 241 | fontstretch: "fontStretch", 242 | "font-stretch": "fontStretch", 243 | fontstyle: "fontStyle", 244 | "font-style": "fontStyle", 245 | fontvariant: "fontVariant", 246 | "font-variant": "fontVariant", 247 | fontweight: "fontWeight", 248 | "font-weight": "fontWeight", 249 | format: "format", 250 | from: "from", 251 | fx: "fx", 252 | fy: "fy", 253 | g1: "g1", 254 | g2: "g2", 255 | glyphname: "glyphName", 256 | "glyph-name": "glyphName", 257 | glyphorientationhorizontal: "glyphOrientationHorizontal", 258 | "glyph-orientation-horizontal": "glyphOrientationHorizontal", 259 | glyphorientationvertical: "glyphOrientationVertical", 260 | "glyph-orientation-vertical": "glyphOrientationVertical", 261 | glyphref: "glyphRef", 262 | gradienttransform: "gradientTransform", 263 | gradientunits: "gradientUnits", 264 | hanging: "hanging", 265 | horizadvx: "horizAdvX", 266 | "horiz-adv-x": "horizAdvX", 267 | horizoriginx: "horizOriginX", 268 | "horiz-origin-x": "horizOriginX", 269 | ideographic: "ideographic", 270 | imagerendering: "imageRendering", 271 | "image-rendering": "imageRendering", 272 | in2: "in2", 273 | in: "in", 274 | inlist: "inlist", 275 | intercept: "intercept", 276 | k1: "k1", 277 | k2: "k2", 278 | k3: "k3", 279 | k4: "k4", 280 | k: "k", 281 | kernelmatrix: "kernelMatrix", 282 | kernelunitlength: "kernelUnitLength", 283 | kerning: "kerning", 284 | keypoints: "keyPoints", 285 | keysplines: "keySplines", 286 | keytimes: "keyTimes", 287 | lengthadjust: "lengthAdjust", 288 | letterspacing: "letterSpacing", 289 | "letter-spacing": "letterSpacing", 290 | lightingcolor: "lightingColor", 291 | "lighting-color": "lightingColor", 292 | limitingconeangle: "limitingConeAngle", 293 | local: "local", 294 | markerend: "markerEnd", 295 | "marker-end": "markerEnd", 296 | markerheight: "markerHeight", 297 | markermid: "markerMid", 298 | "marker-mid": "markerMid", 299 | markerstart: "markerStart", 300 | "marker-start": "markerStart", 301 | markerunits: "markerUnits", 302 | markerwidth: "markerWidth", 303 | mask: "mask", 304 | maskcontentunits: "maskContentUnits", 305 | maskunits: "maskUnits", 306 | mathematical: "mathematical", 307 | mode: "mode", 308 | numoctaves: "numOctaves", 309 | offset: "offset", 310 | opacity: "opacity", 311 | operator: "operator", 312 | order: "order", 313 | orient: "orient", 314 | orientation: "orientation", 315 | origin: "origin", 316 | overflow: "overflow", 317 | overlineposition: "overlinePosition", 318 | "overline-position": "overlinePosition", 319 | overlinethickness: "overlineThickness", 320 | "overline-thickness": "overlineThickness", 321 | paintorder: "paintOrder", 322 | "paint-order": "paintOrder", 323 | panose1: "panose1", 324 | "panose-1": "panose1", 325 | pathlength: "pathLength", 326 | patterncontentunits: "patternContentUnits", 327 | patterntransform: "patternTransform", 328 | patternunits: "patternUnits", 329 | pointerevents: "pointerEvents", 330 | "pointer-events": "pointerEvents", 331 | points: "points", 332 | pointsatx: "pointsAtX", 333 | pointsaty: "pointsAtY", 334 | pointsatz: "pointsAtZ", 335 | prefix: "prefix", 336 | preservealpha: "preserveAlpha", 337 | preserveaspectratio: "preserveAspectRatio", 338 | primitiveunits: "primitiveUnits", 339 | property: "property", 340 | r: "r", 341 | radius: "radius", 342 | refx: "refX", 343 | refy: "refY", 344 | renderingintent: "renderingIntent", 345 | "rendering-intent": "renderingIntent", 346 | repeatcount: "repeatCount", 347 | repeatdur: "repeatDur", 348 | requiredextensions: "requiredExtensions", 349 | requiredfeatures: "requiredFeatures", 350 | resource: "resource", 351 | restart: "restart", 352 | result: "result", 353 | results: "results", 354 | rotate: "rotate", 355 | rx: "rx", 356 | ry: "ry", 357 | scale: "scale", 358 | security: "security", 359 | seed: "seed", 360 | shaperendering: "shapeRendering", 361 | "shape-rendering": "shapeRendering", 362 | slope: "slope", 363 | spacing: "spacing", 364 | specularconstant: "specularConstant", 365 | specularexponent: "specularExponent", 366 | speed: "speed", 367 | spreadmethod: "spreadMethod", 368 | startoffset: "startOffset", 369 | stddeviation: "stdDeviation", 370 | stemh: "stemh", 371 | stemv: "stemv", 372 | stitchtiles: "stitchTiles", 373 | stopcolor: "stopColor", 374 | "stop-color": "stopColor", 375 | stopopacity: "stopOpacity", 376 | "stop-opacity": "stopOpacity", 377 | strikethroughposition: "strikethroughPosition", 378 | "strikethrough-position": "strikethroughPosition", 379 | strikethroughthickness: "strikethroughThickness", 380 | "strikethrough-thickness": "strikethroughThickness", 381 | string: "string", 382 | stroke: "stroke", 383 | strokedasharray: "strokeDasharray", 384 | "stroke-dasharray": "strokeDasharray", 385 | strokedashoffset: "strokeDashoffset", 386 | "stroke-dashoffset": "strokeDashoffset", 387 | strokelinecap: "strokeLinecap", 388 | "stroke-linecap": "strokeLinecap", 389 | strokelinejoin: "strokeLinejoin", 390 | "stroke-linejoin": "strokeLinejoin", 391 | strokemiterlimit: "strokeMiterlimit", 392 | "stroke-miterlimit": "strokeMiterlimit", 393 | strokewidth: "strokeWidth", 394 | "stroke-width": "strokeWidth", 395 | strokeopacity: "strokeOpacity", 396 | "stroke-opacity": "strokeOpacity", 397 | suppresscontenteditablewarning: "suppressContentEditableWarning", 398 | suppresshydrationwarning: "suppressHydrationWarning", 399 | surfacescale: "surfaceScale", 400 | systemlanguage: "systemLanguage", 401 | tablevalues: "tableValues", 402 | targetx: "targetX", 403 | targety: "targetY", 404 | textanchor: "textAnchor", 405 | "text-anchor": "textAnchor", 406 | textdecoration: "textDecoration", 407 | "text-decoration": "textDecoration", 408 | textlength: "textLength", 409 | textrendering: "textRendering", 410 | "text-rendering": "textRendering", 411 | to: "to", 412 | transform: "transform", 413 | typeof: "typeof", 414 | u1: "u1", 415 | u2: "u2", 416 | underlineposition: "underlinePosition", 417 | "underline-position": "underlinePosition", 418 | underlinethickness: "underlineThickness", 419 | "underline-thickness": "underlineThickness", 420 | unicode: "unicode", 421 | unicodebidi: "unicodeBidi", 422 | "unicode-bidi": "unicodeBidi", 423 | unicoderange: "unicodeRange", 424 | "unicode-range": "unicodeRange", 425 | unitsperem: "unitsPerEm", 426 | "units-per-em": "unitsPerEm", 427 | unselectable: "unselectable", 428 | valphabetic: "vAlphabetic", 429 | "v-alphabetic": "vAlphabetic", 430 | values: "values", 431 | vectoreffect: "vectorEffect", 432 | "vector-effect": "vectorEffect", 433 | version: "version", 434 | vertadvy: "vertAdvY", 435 | "vert-adv-y": "vertAdvY", 436 | vertoriginx: "vertOriginX", 437 | "vert-origin-x": "vertOriginX", 438 | vertoriginy: "vertOriginY", 439 | "vert-origin-y": "vertOriginY", 440 | vhanging: "vHanging", 441 | "v-hanging": "vHanging", 442 | videographic: "vIdeographic", 443 | "v-ideographic": "vIdeographic", 444 | viewbox: "viewBox", 445 | viewtarget: "viewTarget", 446 | visibility: "visibility", 447 | vmathematical: "vMathematical", 448 | "v-mathematical": "vMathematical", 449 | vocab: "vocab", 450 | widths: "widths", 451 | wordspacing: "wordSpacing", 452 | "word-spacing": "wordSpacing", 453 | writingmode: "writingMode", 454 | "writing-mode": "writingMode", 455 | x1: "x1", 456 | x2: "x2", 457 | x: "x", 458 | xchannelselector: "xChannelSelector", 459 | xheight: "xHeight", 460 | "x-height": "xHeight", 461 | xlinkactuate: "xlinkActuate", 462 | "xlink:actuate": "xlinkActuate", 463 | xlinkarcrole: "xlinkArcrole", 464 | "xlink:arcrole": "xlinkArcrole", 465 | xlinkhref: "xlinkHref", 466 | "xlink:href": "xlinkHref", 467 | xlinkrole: "xlinkRole", 468 | "xlink:role": "xlinkRole", 469 | xlinkshow: "xlinkShow", 470 | "xlink:show": "xlinkShow", 471 | xlinktitle: "xlinkTitle", 472 | "xlink:title": "xlinkTitle", 473 | xlinktype: "xlinkType", 474 | "xlink:type": "xlinkType", 475 | xmlbase: "xmlBase", 476 | "xml:base": "xmlBase", 477 | xmllang: "xmlLang", 478 | "xml:lang": "xmlLang", 479 | xmlns: "xmlns", 480 | "xml:space": "xmlSpace", 481 | xmlnsxlink: "xmlnsXlink", 482 | "xmlns:xlink": "xmlnsXlink", 483 | xmlspace: "xmlSpace", 484 | y1: "y1", 485 | y2: "y2", 486 | y: "y", 487 | ychannelselector: "yChannelSelector", 488 | z: "z", 489 | zoomandpan: "zoomAndPan", 490 | }; 491 | 492 | export const preactAttributes = { "xlink:href": "href" }; 493 | 494 | export const reactNativeSvgTags = { 495 | circle: "Circle", 496 | clipPath: "ClipPath", 497 | defs: "Defs", 498 | ellipse: "Ellipse", 499 | g: "G", 500 | image: "Image", 501 | line: "Line", 502 | linearGradient: "LinearGradient", 503 | path: "Path", 504 | polygon: "Polygon", 505 | polyline: "Polyline", 506 | radialGradient: "RadialGradient", 507 | rect: "Rect", 508 | stop: "Stop", 509 | svg: "Svg", 510 | symbol: "Symbol", 511 | text: "Text", 512 | tspan: "TSpan", 513 | textPath: "TextPath", 514 | use: "Use", 515 | mask: "Mask", 516 | foreignObject: "ForeignObject", 517 | marker: "Marker", 518 | pattern: "Pattern", 519 | }; 520 | -------------------------------------------------------------------------------- /packages/svgo-jsx/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@svgo/jsx", 3 | "version": "0.4.2", 4 | "description": "Transform SVG into JSX components", 5 | "author": "Bogdan Chadkin ", 6 | "repository": { 7 | "type": "git", 8 | "url": "git://github.com/svg/svgo-components.git" 9 | }, 10 | "packageManager": "yarn@3.0.0", 11 | "type": "module", 12 | "bin": { 13 | "svgo-jsx": "./svgo-jsx-bin.js" 14 | }, 15 | "exports": "./svgo-jsx.js", 16 | "types": "./svgo-jsx.d.ts", 17 | "files": [ 18 | "svgo-jsx-bin.js", 19 | "svgo-jsx-cli.js", 20 | "svgo-jsx.js", 21 | "svgo-jsx.d.ts", 22 | "mappings.js" 23 | ], 24 | "dependencies": { 25 | "css-tree": "^2.2.1", 26 | "svgo": "^3.0.1" 27 | }, 28 | "devDependencies": { 29 | "prettier": "^2.7.1" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /packages/svgo-jsx/svgo-jsx-bin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import "./svgo-jsx-cli.js"; 4 | -------------------------------------------------------------------------------- /packages/svgo-jsx/svgo-jsx-cli.js: -------------------------------------------------------------------------------- 1 | import * as fs from "fs/promises"; 2 | import * as path from "path"; 3 | import { convertSvgToJsx } from "./svgo-jsx.js"; 4 | 5 | const start = process.hrtime.bigint(); 6 | 7 | const commonTemplate = ({ 8 | sourceFile, 9 | componentName, 10 | jsx, 11 | }) => `// Generated from ${sourceFile} 12 | 13 | export const ${componentName} = (props) => { 14 | return ( 15 | ${jsx} 16 | ); 17 | } 18 | `; 19 | 20 | const reactNativeSvgTemplate = ({ 21 | sourceFile, 22 | componentName, 23 | jsx, 24 | components, 25 | }) => `// Generated from ${sourceFile} 26 | 27 | import {${components.join(", ")}} from 'react-native-svg' 28 | 29 | export const ${componentName} = (props) => { 30 | return ( 31 | ${jsx} 32 | ); 33 | } 34 | `; 35 | 36 | const defaultTemplate = (options) => { 37 | if (options.target === "react-native-svg") { 38 | return reactNativeSvgTemplate(options); 39 | } else { 40 | return commonTemplate(options); 41 | } 42 | }; 43 | 44 | const defaultTransformFilename = (filename) => { 45 | const basename = path.basename(filename, path.extname(filename)); 46 | return basename + ".js"; 47 | }; 48 | 49 | const pascalcase = (string) => { 50 | return string 51 | .replace(/[^A-Z0-9]+([A-Z0-9])?/gi, (invalid, char) => 52 | char == null ? "" : char.toUpperCase() 53 | ) 54 | .replace(/^[a-z]/, (char) => char.toUpperCase()); 55 | }; 56 | 57 | const transformComponentName = (filename) => { 58 | const basename = path.basename(filename, path.extname(filename)); 59 | // digits cannot start variable name 60 | return pascalcase(basename).replace(/^[0-9]/, (char) => `_${char}`); 61 | }; 62 | 63 | const defaultSvgProps = { "{...props}": null }; 64 | 65 | const defaultPlugins = [ 66 | { 67 | name: "preset-default", 68 | params: { 69 | overrides: { 70 | removeViewBox: false, 71 | }, 72 | }, 73 | }, 74 | { name: "removeXMLNS" }, 75 | { name: "prefixIds" }, 76 | ]; 77 | 78 | const [rawConfigFile = "./svgo-jsx.config.js"] = process.argv.slice(2); 79 | const configFile = path.isAbsolute(rawConfigFile) 80 | ? rawConfigFile 81 | : path.join(process.cwd(), rawConfigFile); 82 | const configDir = path.dirname(configFile); 83 | let count = 0; 84 | 85 | const run = async () => { 86 | const { config } = await import(configFile); 87 | if (config.inputDir == null) { 88 | throw Error("inputDir string should be specified"); 89 | } 90 | if (config.outputDir == null) { 91 | throw Error("output string should be specified"); 92 | } 93 | 94 | const inputDir = path.join(configDir, config.inputDir); 95 | const outputDir = path.join(configDir, config.outputDir); 96 | const target = config.target ?? "react-dom"; 97 | const svgProps = config.svgProps ?? defaultSvgProps; 98 | const plugins = config.plugins ?? defaultPlugins; 99 | const template = config.template ?? defaultTemplate; 100 | const transformFilename = 101 | config.transformFilename ?? defaultTransformFilename; 102 | const after = config.after; 103 | 104 | const list = await fs.readdir(inputDir, { withFileTypes: true }); 105 | const targets = []; 106 | await Promise.all( 107 | list.map(async (dirent) => { 108 | if (dirent.isFile()) { 109 | count += 1; 110 | const svgFile = path.join(inputDir, dirent.name); 111 | const svg = await fs.readFile(svgFile, "utf-8"); 112 | const { jsx, components } = convertSvgToJsx({ 113 | target, 114 | file: path.relative(configDir, svgFile), 115 | svg, 116 | svgProps, 117 | plugins, 118 | }); 119 | 120 | const componentName = transformComponentName(dirent.name); 121 | const jsxFilename = transformFilename(dirent.name); 122 | const jsxFile = path.join(outputDir, jsxFilename); 123 | const component = template({ 124 | target, 125 | sourceFile: path.relative(configDir, svgFile), 126 | targetFile: path.relative(configDir, jsxFile), 127 | componentName, 128 | jsx, 129 | components, 130 | }); 131 | await fs.mkdir(outputDir, { recursive: true }); 132 | await fs.writeFile(jsxFile, component); 133 | targets.push({ 134 | file: jsxFilename, 135 | componentName, 136 | }); 137 | } 138 | }) 139 | ); 140 | 141 | targets.sort((a, b) => a.file.localeCompare(b.file)); 142 | 143 | await after?.({ targets }); 144 | 145 | const end = process.hrtime.bigint(); 146 | 147 | console.info(`Compiled ${count} icons in ${(end - start) / BigInt(1e6)}ms`); 148 | }; 149 | 150 | (async () => { 151 | try { 152 | await run(); 153 | } catch (error) { 154 | console.error(error); 155 | } 156 | })(); 157 | -------------------------------------------------------------------------------- /packages/svgo-jsx/svgo-jsx-cli.test.js: -------------------------------------------------------------------------------- 1 | import { promises as fs } from "fs"; 2 | import util from "util"; 3 | import path from "path"; 4 | import { fileURLToPath } from "url"; 5 | import child_process from "child_process"; 6 | import prettier from "prettier"; 7 | 8 | const exec = util.promisify(child_process.exec); 9 | const dir = path.dirname(fileURLToPath(import.meta.url)); 10 | 11 | test("cli converts svg into component with default config", async () => { 12 | const cli = path.join(dir, "./svgo-jsx-cli.js"); 13 | const config = path.join(dir, "./fixtures/svgo-jsx.config.js"); 14 | const { stdout, stderr } = await exec(`node ${cli} ${config}`); 15 | expect(stderr).toBe(""); 16 | expect(stdout).toMatch(/Compiled 1 icons in \d+ms/); 17 | const generatedFile = path.join(dir, "./fixtures/output/cog.js"); 18 | const generated = prettier.format(await fs.readFile(generatedFile, "utf-8"), { 19 | filepath: generatedFile, 20 | }); 21 | expect(generated).toMatchInlineSnapshot(` 22 | "// Generated from input/cog.svg 23 | 24 | export const Cog = (props) => { 25 | return ( 26 | 27 | 28 | 29 | 30 | 31 | 32 | 40 | 41 | 42 | 43 | 44 | 45 | ); 46 | }; 47 | " 48 | `); 49 | }); 50 | 51 | test("jsx components list is passed to template", async () => { 52 | const cli = path.join(dir, "./svgo-jsx-cli.js"); 53 | const config = path.join(dir, "./fixtures/components.config.js"); 54 | const { stdout, stderr } = await exec(`node ${cli} ${config}`); 55 | expect(stderr).toBe(""); 56 | expect(stdout).toMatch(/Compiled 1 icons in \d+ms/); 57 | const generatedFile = path.join(dir, "./fixtures/output-components/cog.js"); 58 | const generated = prettier.format(await fs.readFile(generatedFile, "utf-8"), { 59 | filepath: generatedFile, 60 | }); 61 | expect(generated).toMatchInlineSnapshot(` 62 | "// Generated from input/cog.svg 63 | 64 | import { Svg, Circle } from "react-custom"; 65 | 66 | export const Cog = (props) => { 67 | return ( 68 | 78 | 79 | 80 | 81 | 82 | 83 | 91 | 92 | 93 | 94 | 95 | 96 | ); 97 | }; 98 | " 99 | `); 100 | }); 101 | 102 | test("supports react-native-svg target with imports and remove unknown elements", async () => { 103 | const cli = path.join(dir, "./svgo-jsx-cli.js"); 104 | const config = path.join(dir, "./fixtures/react-native-svg.config.js"); 105 | const { stdout, stderr } = await exec(`node ${cli} ${config}`); 106 | expect(stderr).toBe(""); 107 | expect(stdout).toMatch(/Compiled 1 icons in \d+ms/); 108 | const generatedFile = path.join( 109 | dir, 110 | "./fixtures/output-react-native-svg/cog.js" 111 | ); 112 | const generated = prettier.format(await fs.readFile(generatedFile, "utf-8"), { 113 | filepath: generatedFile, 114 | }); 115 | expect(generated).toMatchInlineSnapshot(` 116 | "// Generated from input-react-native-svg/cog.svg 117 | 118 | import { Svg, G, Circle, Defs, LinearGradient, Stop } from "react-native-svg"; 119 | 120 | export const Cog = (props) => { 121 | return ( 122 | 123 | 124 | 125 | 126 | 127 | 128 | 136 | 137 | 138 | 139 | 140 | 141 | ); 142 | }; 143 | " 144 | `); 145 | }); 146 | 147 | test('should run "after" callback with the list of generated jsx files ', async () => { 148 | const cli = path.join(dir, "./svgo-jsx-cli.js"); 149 | const config = path.join(dir, "./fixtures/after.config.js"); 150 | const { stdout, stderr } = await exec(`node ${cli} ${config}`); 151 | expect(stderr).toBe(""); 152 | // find log after start and before end 153 | const log = stdout.split("===start===")[1].split("===end===")[0]; 154 | expect(log).toMatchInlineSnapshot(` 155 | " 156 | [ { file: 'cog.js', componentName: 'Cog' } ] 157 | " 158 | `); 159 | }); 160 | -------------------------------------------------------------------------------- /packages/svgo-jsx/svgo-jsx.d.ts: -------------------------------------------------------------------------------- 1 | import type { Config as SvgoConfig } from "svgo"; 2 | 3 | type Target = "react-dom" | "react-native-svg" | "preact" | "custom"; 4 | 5 | type SvgProps = Record; 6 | 7 | type Options = { 8 | file: string; 9 | svg: string; 10 | target?: Target; 11 | svgProps?: SvgProps; 12 | plugins?: SvgoConfig["plugins"]; 13 | }; 14 | 15 | type Output = { 16 | jsx: string; 17 | components: string[]; 18 | }; 19 | 20 | export declare function convertSvgToJsx(options: Options): Output; 21 | 22 | type TemplateOptions = { 23 | target: Target; 24 | sourceFile: string; 25 | targetFile: string; 26 | componentName: string; 27 | jsx: string; 28 | components: string[]; 29 | }; 30 | 31 | type AfterOptions = { 32 | targets: Array<{ 33 | file: string; 34 | componentName: string; 35 | }>; 36 | }; 37 | 38 | export type Config = { 39 | inputDir: string; 40 | outputDir: string; 41 | target?: Target; 42 | svgProps?: SvgProps; 43 | plugins?: SvgoConfig["plugins"]; 44 | template?: (options: TemplateOptions) => string; 45 | transformFilename?: (file: string) => string; 46 | after?: (options: AfterOptions) => void | Awaited; 47 | }; 48 | -------------------------------------------------------------------------------- /packages/svgo-jsx/svgo-jsx.js: -------------------------------------------------------------------------------- 1 | import { optimize } from "svgo"; 2 | import { parse, walk } from "css-tree"; 3 | import { 4 | reactAttributes, 5 | preactAttributes, 6 | reactNativeSvgTags, 7 | } from "./mappings.js"; 8 | 9 | const targetPlugin = (target) => ({ 10 | name: "svgo-jsx-target", 11 | fn: () => { 12 | let mappings = null; 13 | if (target === "react-dom") { 14 | mappings = reactAttributes; 15 | } 16 | if (target === "preact") { 17 | mappings = preactAttributes; 18 | } 19 | if (mappings != null) { 20 | return { 21 | element: { 22 | enter: (node) => { 23 | const newAttributes = {}; 24 | // preserve an order of attributes 25 | for (const [name, value] of Object.entries(node.attributes)) { 26 | newAttributes[mappings[name] || name] = value; 27 | } 28 | node.attributes = newAttributes; 29 | }, 30 | }, 31 | }; 32 | } 33 | if (target === "react-native-svg") { 34 | return { 35 | element: { 36 | enter: (node, parentNode) => { 37 | if (reactNativeSvgTags[node.name] == null) { 38 | // remove unknown elements 39 | parentNode.children = parentNode.children.filter( 40 | (item) => item !== node 41 | ); 42 | } else { 43 | node.name = reactNativeSvgTags[node.name]; 44 | const newAttributes = {}; 45 | // preserve an order of attributes 46 | for (const [name, value] of Object.entries(node.attributes)) { 47 | newAttributes[reactAttributes[name] || name] = value; 48 | } 49 | node.attributes = newAttributes; 50 | } 51 | }, 52 | }, 53 | }; 54 | } 55 | }, 56 | }); 57 | 58 | const convertStyleProperty = (property) => { 59 | if (property.startsWith("--")) { 60 | return property; 61 | } 62 | // Microsoft vendor-prefixes are uniquely cased 63 | if (property.startsWith("-ms-")) { 64 | property = property.slice(1); 65 | } 66 | return property 67 | .toLowerCase() 68 | .replace(/-(\w|$)/g, (dashChar, char) => char.toUpperCase()); 69 | }; 70 | 71 | const convertStyleToObject = (style) => { 72 | const styleObject = {}; 73 | const ast = parse(style, { 74 | context: "declarationList", 75 | parseValue: false, 76 | }); 77 | walk(ast, (node) => { 78 | if (node.type === "Declaration") { 79 | styleObject[convertStyleProperty(node.property)] = node.value.value; 80 | } 81 | }); 82 | return styleObject; 83 | }; 84 | 85 | const convertAttributes = (node, parentNode, svgProps) => { 86 | const attributes = Object.entries(node.attributes); 87 | // use map to override existing attributes with passed props 88 | const props = new Map(); 89 | for (const [name, value] of attributes) { 90 | if (name === "style") { 91 | const styleObject = convertStyleToObject(value); 92 | props.set(name, `{${JSON.stringify(styleObject)}}`); 93 | // skip attributes with namespaces which are invalid jsx syntax 94 | } else if (name.includes(":") === false) { 95 | props.set(name, JSON.stringify(value)); 96 | } 97 | } 98 | if (parentNode.type === "root" && svgProps) { 99 | for (const [name, value] of Object.entries(svgProps)) { 100 | // delete previous prop before setting to reset order 101 | if (value == null) { 102 | props.delete(name); 103 | props.set(name, null); 104 | } else if (value.startsWith("{")) { 105 | props.delete(name); 106 | props.set(name, value); 107 | } else { 108 | props.delete(name); 109 | props.set(name, JSON.stringify(value)); 110 | } 111 | } 112 | } 113 | let result = ""; 114 | for (const [name, value] of props) { 115 | if (value == null) { 116 | result += ` ${name}`; 117 | } else { 118 | result += ` ${name}=${value}`; 119 | } 120 | } 121 | return result; 122 | }; 123 | 124 | const convertXastToJsx = (node, parentNode, svgProps, components) => { 125 | switch (node.type) { 126 | case "root": { 127 | let renderedChildren = ""; 128 | let renderedChildrenCount = 0; 129 | for (const child of node.children) { 130 | const renderedChild = convertXastToJsx( 131 | child, 132 | node, 133 | svgProps, 134 | components 135 | ); 136 | if (renderedChild.length !== 0) { 137 | renderedChildren += renderedChild; 138 | renderedChildrenCount += 1; 139 | } 140 | } 141 | if (renderedChildrenCount === 1) { 142 | return renderedChildren; 143 | } else { 144 | return `<>${renderedChildren}`; 145 | } 146 | } 147 | case "element": { 148 | const name = node.name; 149 | // collect all components names 150 | if (name.startsWith(name[0].toUpperCase())) { 151 | components.add(name); 152 | } 153 | const attributes = convertAttributes(node, parentNode, svgProps); 154 | if (node.children.length === 0) { 155 | return `<${name}${attributes} />`; 156 | } 157 | let renderedChildren = ""; 158 | for (const child of node.children) { 159 | renderedChildren += convertXastToJsx(child, node, svgProps, components); 160 | } 161 | return `<${name}${attributes}>${renderedChildren}`; 162 | } 163 | case "text": 164 | return `{${JSON.stringify(node.value)}}`; 165 | 166 | case "cdata": 167 | return `{${JSON.stringify(node.value)}}`; 168 | case "comment": 169 | return `{/* ${node.value} */}`; 170 | case "doctype": 171 | return ""; 172 | case "instruction": 173 | return ""; 174 | default: 175 | throw Error(`Unexpected node type "${node.type}"`); 176 | } 177 | }; 178 | 179 | const validTargets = ["react-dom", "react-native-svg", "preact", "custom"]; 180 | 181 | export const convertSvgToJsx = ({ 182 | target = "react-dom", 183 | file, 184 | svg, 185 | svgProps, 186 | plugins = [], 187 | }) => { 188 | let xast; 189 | const extractXastPlugin = { 190 | name: "svgo-jsx-extract-xast", 191 | fn: (root) => { 192 | xast = root; 193 | return {}; 194 | }, 195 | }; 196 | 197 | if (validTargets.includes(target) === false) { 198 | throw Error( 199 | `Target "${target}" is not valid. ` + 200 | `Use one of the following: ${validTargets.join(", ")}.` 201 | ); 202 | } 203 | 204 | optimize(svg, { 205 | path: file, 206 | plugins: [...plugins, targetPlugin(target), extractXastPlugin], 207 | }); 208 | try { 209 | const components = new Set(); 210 | const jsx = convertXastToJsx(xast, null, svgProps, components); 211 | return { 212 | jsx, 213 | components: Array.from(components), 214 | }; 215 | } catch (error) { 216 | throw Error(`${error.message}\nin ${file}`); 217 | } 218 | }; 219 | -------------------------------------------------------------------------------- /packages/svgo-jsx/svgo-jsx.test.js: -------------------------------------------------------------------------------- 1 | import prettier from "prettier"; 2 | import { convertSvgToJsx } from "./svgo-jsx.js"; 3 | 4 | const format = (code) => { 5 | return prettier.format(code, { parser: "babel" }); 6 | }; 7 | 8 | const convertAndFormat = (options) => { 9 | return format(convertSvgToJsx(options).jsx); 10 | }; 11 | 12 | test("render all nodes except doctype and instruction", () => { 13 | expect( 14 | convertAndFormat({ 15 | file: "./test.svg", 16 | svg: ` 17 | 18 | 19 | 20 | 21 | 22 | 23 | `, 24 | }) 25 | ).toMatchInlineSnapshot(` 26 | " 27 | {/* test rectangle */} 28 | 29 | ; 30 | " 31 | `); 32 | }); 33 | 34 | test("wrap with fragment when toplevel comment is present", () => { 35 | expect( 36 | convertAndFormat({ 37 | file: "./test.svg", 38 | svg: ` 39 | 40 | 41 | `, 42 | }) 43 | ).toMatchInlineSnapshot(` 44 | "<> 45 | {/* top level comment */} 46 | 47 | ; 48 | " 49 | `); 50 | }); 51 | 52 | test("render text and cdata properly", () => { 53 | const svg = ` 54 | 55 | 56 | 59 | 60 | `; 61 | expect(convertAndFormat({ file: "./test.svg", svg })).toMatchInlineSnapshot(` 62 | " 63 | 64 | 65 | ; 66 | " 67 | `); 68 | }); 69 | 70 | test("convert style attribute with proper prefixes", () => { 71 | expect( 72 | convertAndFormat({ 73 | file: "./test.svg", 74 | svg: ` 75 | 76 | 77 | 78 | 79 | 80 | `, 81 | }) 82 | ).toMatchInlineSnapshot(` 83 | " 84 | 91 | 102 | 103 | ; 104 | " 105 | `); 106 | }); 107 | 108 | test("convert attribute names", () => { 109 | expect( 110 | convertAndFormat({ 111 | file: "./test.svg", 112 | svg: ` 113 | 114 | 115 | 116 | `, 117 | }) 118 | ).toMatchInlineSnapshot(` 119 | " 127 | 128 | ; 129 | " 130 | `); 131 | }); 132 | 133 | test("preserve aria-*, data-* and unknown attributes", () => { 134 | expect( 135 | convertAndFormat({ 136 | file: "./test.svg", 137 | svg: ` 138 | 139 | `, 140 | }) 141 | ).toMatchInlineSnapshot(` 142 | "; 143 | " 144 | `); 145 | }); 146 | 147 | test("allow to pass and spread svg props", () => { 148 | expect( 149 | convertAndFormat({ 150 | file: "./test.svg", 151 | svg: ` 152 | 153 | 154 | 155 | `, 156 | svgProps: { 157 | "{...defaults}": null, 158 | className: "{className}", 159 | fill: "#000", 160 | "{...props}": null, 161 | }, 162 | }) 163 | ).toMatchInlineSnapshot(` 164 | " 173 | 174 | ; 175 | " 176 | `); 177 | }); 178 | 179 | test("override existing svg attributes with passed props", () => { 180 | expect( 181 | convertAndFormat({ 182 | file: "./test.svg", 183 | svg: ` 184 | 185 | 186 | 187 | `, 188 | svgProps: { 189 | width: "{size}", 190 | }, 191 | }) 192 | ).toMatchInlineSnapshot(` 193 | " 194 | 195 | ; 196 | " 197 | `); 198 | }); 199 | 200 | test("allow to pass svgo plugins", () => { 201 | expect( 202 | convertSvgToJsx({ 203 | file: "./test.svg", 204 | svg: ` 205 | 206 | 207 | 208 | `, 209 | plugins: ["preset-default"], 210 | }).jsx 211 | ).toMatchInlineSnapshot( 212 | `""` 213 | ); 214 | }); 215 | 216 | test("support preact and ignores namespaced attributes", () => { 217 | expect( 218 | convertAndFormat({ 219 | target: "preact", 220 | file: "./test.svg", 221 | svg: ` 222 | 223 | 224 | 225 | 226 | `, 227 | }) 228 | ).toMatchInlineSnapshot(` 229 | " 236 | 237 | 238 | ; 239 | " 240 | `); 241 | }); 242 | 243 | test("support custom target without transforming attributes", () => { 244 | const { jsx, components } = convertSvgToJsx({ 245 | target: "custom", 246 | file: "./test.svg", 247 | svg: ` 248 | 249 | 250 | 251 | 252 | `, 253 | }); 254 | expect(format(jsx)).toMatchInlineSnapshot(` 255 | " 262 | 263 | 264 | ; 265 | " 266 | `); 267 | }); 268 | 269 | const capitalTagsPlugin = { 270 | name: "capital-tags", 271 | fn: () => { 272 | return { 273 | element: { 274 | enter: (node) => { 275 | if (node.name === "svg") { 276 | node.name = "Root"; 277 | } 278 | if (node.name === "rect") { 279 | node.name = "Rect"; 280 | } 281 | }, 282 | }, 283 | }; 284 | }, 285 | }; 286 | 287 | test("output list of used components", () => { 288 | const { jsx, components } = convertSvgToJsx({ 289 | target: "custom", 290 | file: "./test.svg", 291 | svg: ` 292 | 293 | 294 | 295 | 296 | `, 297 | plugins: [capitalTagsPlugin], 298 | }); 299 | expect(format(jsx)).toMatchInlineSnapshot(` 300 | " 307 | 308 | 309 | ; 310 | " 311 | `); 312 | expect(components).toEqual(["Root", "Rect"]); 313 | }); 314 | 315 | test("override existing svg attributes with passed props and custom target", () => { 316 | const { jsx } = convertSvgToJsx({ 317 | target: "custom", 318 | file: "./test.svg", 319 | svg: ` 320 | 321 | 322 | 323 | `, 324 | svgProps: { 325 | width: "{size}", 326 | }, 327 | plugins: [capitalTagsPlugin], 328 | }); 329 | 330 | expect(format(jsx)).toMatchInlineSnapshot(` 331 | " 332 | 333 | ; 334 | " 335 | `); 336 | }); 337 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # This file is generated by running "yarn install" inside your project. 2 | # Manual changes might be lost - proceed with caution! 3 | 4 | __metadata: 5 | version: 5 6 | cacheKey: 8 7 | 8 | "@ampproject/remapping@npm:^2.1.0": 9 | version: 2.2.0 10 | resolution: "@ampproject/remapping@npm:2.2.0" 11 | dependencies: 12 | "@jridgewell/gen-mapping": ^0.1.0 13 | "@jridgewell/trace-mapping": ^0.3.9 14 | checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 15 | languageName: node 16 | linkType: hard 17 | 18 | "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6": 19 | version: 7.18.6 20 | resolution: "@babel/code-frame@npm:7.18.6" 21 | dependencies: 22 | "@babel/highlight": ^7.18.6 23 | checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba 24 | languageName: node 25 | linkType: hard 26 | 27 | "@babel/compat-data@npm:^7.20.0": 28 | version: 7.20.1 29 | resolution: "@babel/compat-data@npm:7.20.1" 30 | checksum: 989b9b7a6fe43c547bb8329241bd0ba6983488b83d29cc59de35536272ee6bb4cc7487ba6c8a4bceebb3a57f8c5fea1434f80bbbe75202bc79bc1110f955ff25 31 | languageName: node 32 | linkType: hard 33 | 34 | "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3": 35 | version: 7.20.2 36 | resolution: "@babel/core@npm:7.20.2" 37 | dependencies: 38 | "@ampproject/remapping": ^2.1.0 39 | "@babel/code-frame": ^7.18.6 40 | "@babel/generator": ^7.20.2 41 | "@babel/helper-compilation-targets": ^7.20.0 42 | "@babel/helper-module-transforms": ^7.20.2 43 | "@babel/helpers": ^7.20.1 44 | "@babel/parser": ^7.20.2 45 | "@babel/template": ^7.18.10 46 | "@babel/traverse": ^7.20.1 47 | "@babel/types": ^7.20.2 48 | convert-source-map: ^1.7.0 49 | debug: ^4.1.0 50 | gensync: ^1.0.0-beta.2 51 | json5: ^2.2.1 52 | semver: ^6.3.0 53 | checksum: 98faaaef26103a276a30a141b951a93bc8418d100d1f668bf7a69d12f3e25df57958e8b6b9100d95663f720db62da85ade736f6629a5ebb1e640251a1b43c0e4 54 | languageName: node 55 | linkType: hard 56 | 57 | "@babel/generator@npm:^7.20.1, @babel/generator@npm:^7.20.2, @babel/generator@npm:^7.7.2": 58 | version: 7.20.4 59 | resolution: "@babel/generator@npm:7.20.4" 60 | dependencies: 61 | "@babel/types": ^7.20.2 62 | "@jridgewell/gen-mapping": ^0.3.2 63 | jsesc: ^2.5.1 64 | checksum: 967b59f18e5ce999e5a741825bcecb2be4bbfc1824a92c21b47d0b5694e0eb09314a70f8b9142e9591c149c7fb83d51f73ae8fbd96d30a42666425889e51ceb1 65 | languageName: node 66 | linkType: hard 67 | 68 | "@babel/helper-compilation-targets@npm:^7.20.0": 69 | version: 7.20.0 70 | resolution: "@babel/helper-compilation-targets@npm:7.20.0" 71 | dependencies: 72 | "@babel/compat-data": ^7.20.0 73 | "@babel/helper-validator-option": ^7.18.6 74 | browserslist: ^4.21.3 75 | semver: ^6.3.0 76 | peerDependencies: 77 | "@babel/core": ^7.0.0 78 | checksum: bc183f2109648849c8fde0b3c5cf08adf2f7ad6dc617b546fd20f34c8ef574ee5ee293c8d1bd0ed0221212e8f5907cdc2c42097870f1dcc769a654107d82c95b 79 | languageName: node 80 | linkType: hard 81 | 82 | "@babel/helper-environment-visitor@npm:^7.18.9": 83 | version: 7.18.9 84 | resolution: "@babel/helper-environment-visitor@npm:7.18.9" 85 | checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 86 | languageName: node 87 | linkType: hard 88 | 89 | "@babel/helper-function-name@npm:^7.19.0": 90 | version: 7.19.0 91 | resolution: "@babel/helper-function-name@npm:7.19.0" 92 | dependencies: 93 | "@babel/template": ^7.18.10 94 | "@babel/types": ^7.19.0 95 | checksum: eac1f5db428ba546270c2b8d750c24eb528b8fcfe50c81de2e0bdebf0e20f24bec688d4331533b782e4a907fad435244621ca2193cfcf80a86731299840e0f6e 96 | languageName: node 97 | linkType: hard 98 | 99 | "@babel/helper-hoist-variables@npm:^7.18.6": 100 | version: 7.18.6 101 | resolution: "@babel/helper-hoist-variables@npm:7.18.6" 102 | dependencies: 103 | "@babel/types": ^7.18.6 104 | checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f 105 | languageName: node 106 | linkType: hard 107 | 108 | "@babel/helper-module-imports@npm:^7.18.6": 109 | version: 7.18.6 110 | resolution: "@babel/helper-module-imports@npm:7.18.6" 111 | dependencies: 112 | "@babel/types": ^7.18.6 113 | checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def 114 | languageName: node 115 | linkType: hard 116 | 117 | "@babel/helper-module-transforms@npm:^7.20.2": 118 | version: 7.20.2 119 | resolution: "@babel/helper-module-transforms@npm:7.20.2" 120 | dependencies: 121 | "@babel/helper-environment-visitor": ^7.18.9 122 | "@babel/helper-module-imports": ^7.18.6 123 | "@babel/helper-simple-access": ^7.20.2 124 | "@babel/helper-split-export-declaration": ^7.18.6 125 | "@babel/helper-validator-identifier": ^7.19.1 126 | "@babel/template": ^7.18.10 127 | "@babel/traverse": ^7.20.1 128 | "@babel/types": ^7.20.2 129 | checksum: 33a60ca115f6fce2c9d98e2a2e5649498aa7b23e2ae3c18745d7a021487708fc311458c33542f299387a0da168afccba94116e077f2cce49ae9e5ab83399e8a2 130 | languageName: node 131 | linkType: hard 132 | 133 | "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.8.0": 134 | version: 7.20.2 135 | resolution: "@babel/helper-plugin-utils@npm:7.20.2" 136 | checksum: f6cae53b7fdb1bf3abd50fa61b10b4470985b400cc794d92635da1e7077bb19729f626adc0741b69403d9b6e411cddddb9c0157a709cc7c4eeb41e663be5d74b 137 | languageName: node 138 | linkType: hard 139 | 140 | "@babel/helper-simple-access@npm:^7.20.2": 141 | version: 7.20.2 142 | resolution: "@babel/helper-simple-access@npm:7.20.2" 143 | dependencies: 144 | "@babel/types": ^7.20.2 145 | checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 146 | languageName: node 147 | linkType: hard 148 | 149 | "@babel/helper-split-export-declaration@npm:^7.18.6": 150 | version: 7.18.6 151 | resolution: "@babel/helper-split-export-declaration@npm:7.18.6" 152 | dependencies: 153 | "@babel/types": ^7.18.6 154 | checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b 155 | languageName: node 156 | linkType: hard 157 | 158 | "@babel/helper-string-parser@npm:^7.19.4": 159 | version: 7.19.4 160 | resolution: "@babel/helper-string-parser@npm:7.19.4" 161 | checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 162 | languageName: node 163 | linkType: hard 164 | 165 | "@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": 166 | version: 7.19.1 167 | resolution: "@babel/helper-validator-identifier@npm:7.19.1" 168 | checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a 169 | languageName: node 170 | linkType: hard 171 | 172 | "@babel/helper-validator-option@npm:^7.18.6": 173 | version: 7.18.6 174 | resolution: "@babel/helper-validator-option@npm:7.18.6" 175 | checksum: f9cc6eb7cc5d759c5abf006402180f8d5e4251e9198197428a97e05d65eb2f8ae5a0ce73b1dfd2d35af41d0eb780627a64edf98a4e71f064eeeacef8de58f2cf 176 | languageName: node 177 | linkType: hard 178 | 179 | "@babel/helpers@npm:^7.20.1": 180 | version: 7.20.1 181 | resolution: "@babel/helpers@npm:7.20.1" 182 | dependencies: 183 | "@babel/template": ^7.18.10 184 | "@babel/traverse": ^7.20.1 185 | "@babel/types": ^7.20.0 186 | checksum: be35f78666bdab895775ed94dbeb098f7b4fa08ce4cfb0c3a9e69b7220cce56960dcdc2b14f5df9d3b80388d4bf7df155c97f6cf6768c0138f4e6931d0f44955 187 | languageName: node 188 | linkType: hard 189 | 190 | "@babel/highlight@npm:^7.18.6": 191 | version: 7.18.6 192 | resolution: "@babel/highlight@npm:7.18.6" 193 | dependencies: 194 | "@babel/helper-validator-identifier": ^7.18.6 195 | chalk: ^2.0.0 196 | js-tokens: ^4.0.0 197 | checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 198 | languageName: node 199 | linkType: hard 200 | 201 | "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.10, @babel/parser@npm:^7.20.1, @babel/parser@npm:^7.20.2": 202 | version: 7.20.3 203 | resolution: "@babel/parser@npm:7.20.3" 204 | bin: 205 | parser: ./bin/babel-parser.js 206 | checksum: 33bcdb45de65a3cf27ed376cb34f32be3c3485a10e3252f8d0126f6a034efc3145c0d219e57fcd5a8956361552008bc30b9bae4a723823fb3633027071be8a45 207 | languageName: node 208 | linkType: hard 209 | 210 | "@babel/plugin-syntax-async-generators@npm:^7.8.4": 211 | version: 7.8.4 212 | resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" 213 | dependencies: 214 | "@babel/helper-plugin-utils": ^7.8.0 215 | peerDependencies: 216 | "@babel/core": ^7.0.0-0 217 | checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 218 | languageName: node 219 | linkType: hard 220 | 221 | "@babel/plugin-syntax-bigint@npm:^7.8.3": 222 | version: 7.8.3 223 | resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" 224 | dependencies: 225 | "@babel/helper-plugin-utils": ^7.8.0 226 | peerDependencies: 227 | "@babel/core": ^7.0.0-0 228 | checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 229 | languageName: node 230 | linkType: hard 231 | 232 | "@babel/plugin-syntax-class-properties@npm:^7.8.3": 233 | version: 7.12.13 234 | resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" 235 | dependencies: 236 | "@babel/helper-plugin-utils": ^7.12.13 237 | peerDependencies: 238 | "@babel/core": ^7.0.0-0 239 | checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc 240 | languageName: node 241 | linkType: hard 242 | 243 | "@babel/plugin-syntax-import-meta@npm:^7.8.3": 244 | version: 7.10.4 245 | resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" 246 | dependencies: 247 | "@babel/helper-plugin-utils": ^7.10.4 248 | peerDependencies: 249 | "@babel/core": ^7.0.0-0 250 | checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b 251 | languageName: node 252 | linkType: hard 253 | 254 | "@babel/plugin-syntax-json-strings@npm:^7.8.3": 255 | version: 7.8.3 256 | resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" 257 | dependencies: 258 | "@babel/helper-plugin-utils": ^7.8.0 259 | peerDependencies: 260 | "@babel/core": ^7.0.0-0 261 | checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a 262 | languageName: node 263 | linkType: hard 264 | 265 | "@babel/plugin-syntax-jsx@npm:^7.7.2": 266 | version: 7.18.6 267 | resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" 268 | dependencies: 269 | "@babel/helper-plugin-utils": ^7.18.6 270 | peerDependencies: 271 | "@babel/core": ^7.0.0-0 272 | checksum: 6d37ea972970195f1ffe1a54745ce2ae456e0ac6145fae9aa1480f297248b262ea6ebb93010eddb86ebfacb94f57c05a1fc5d232b9a67325b09060299d515c67 273 | languageName: node 274 | linkType: hard 275 | 276 | "@babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": 277 | version: 7.10.4 278 | resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" 279 | dependencies: 280 | "@babel/helper-plugin-utils": ^7.10.4 281 | peerDependencies: 282 | "@babel/core": ^7.0.0-0 283 | checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 284 | languageName: node 285 | linkType: hard 286 | 287 | "@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": 288 | version: 7.8.3 289 | resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" 290 | dependencies: 291 | "@babel/helper-plugin-utils": ^7.8.0 292 | peerDependencies: 293 | "@babel/core": ^7.0.0-0 294 | checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 295 | languageName: node 296 | linkType: hard 297 | 298 | "@babel/plugin-syntax-numeric-separator@npm:^7.8.3": 299 | version: 7.10.4 300 | resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" 301 | dependencies: 302 | "@babel/helper-plugin-utils": ^7.10.4 303 | peerDependencies: 304 | "@babel/core": ^7.0.0-0 305 | checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 306 | languageName: node 307 | linkType: hard 308 | 309 | "@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": 310 | version: 7.8.3 311 | resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" 312 | dependencies: 313 | "@babel/helper-plugin-utils": ^7.8.0 314 | peerDependencies: 315 | "@babel/core": ^7.0.0-0 316 | checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf 317 | languageName: node 318 | linkType: hard 319 | 320 | "@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": 321 | version: 7.8.3 322 | resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" 323 | dependencies: 324 | "@babel/helper-plugin-utils": ^7.8.0 325 | peerDependencies: 326 | "@babel/core": ^7.0.0-0 327 | checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 328 | languageName: node 329 | linkType: hard 330 | 331 | "@babel/plugin-syntax-optional-chaining@npm:^7.8.3": 332 | version: 7.8.3 333 | resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" 334 | dependencies: 335 | "@babel/helper-plugin-utils": ^7.8.0 336 | peerDependencies: 337 | "@babel/core": ^7.0.0-0 338 | checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 339 | languageName: node 340 | linkType: hard 341 | 342 | "@babel/plugin-syntax-top-level-await@npm:^7.8.3": 343 | version: 7.14.5 344 | resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" 345 | dependencies: 346 | "@babel/helper-plugin-utils": ^7.14.5 347 | peerDependencies: 348 | "@babel/core": ^7.0.0-0 349 | checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e 350 | languageName: node 351 | linkType: hard 352 | 353 | "@babel/plugin-syntax-typescript@npm:^7.7.2": 354 | version: 7.20.0 355 | resolution: "@babel/plugin-syntax-typescript@npm:7.20.0" 356 | dependencies: 357 | "@babel/helper-plugin-utils": ^7.19.0 358 | peerDependencies: 359 | "@babel/core": ^7.0.0-0 360 | checksum: 6189c0b5c32ba3c9a80a42338bd50719d783b20ef29b853d4f03929e971913d3cefd80184e924ae98ad6db09080be8fe6f1ffde9a6db8972523234f0274d36f7 361 | languageName: node 362 | linkType: hard 363 | 364 | "@babel/template@npm:^7.18.10, @babel/template@npm:^7.3.3": 365 | version: 7.18.10 366 | resolution: "@babel/template@npm:7.18.10" 367 | dependencies: 368 | "@babel/code-frame": ^7.18.6 369 | "@babel/parser": ^7.18.10 370 | "@babel/types": ^7.18.10 371 | checksum: 93a6aa094af5f355a72bd55f67fa1828a046c70e46f01b1606e6118fa1802b6df535ca06be83cc5a5e834022be95c7b714f0a268b5f20af984465a71e28f1473 372 | languageName: node 373 | linkType: hard 374 | 375 | "@babel/traverse@npm:^7.20.1, @babel/traverse@npm:^7.7.2": 376 | version: 7.20.1 377 | resolution: "@babel/traverse@npm:7.20.1" 378 | dependencies: 379 | "@babel/code-frame": ^7.18.6 380 | "@babel/generator": ^7.20.1 381 | "@babel/helper-environment-visitor": ^7.18.9 382 | "@babel/helper-function-name": ^7.19.0 383 | "@babel/helper-hoist-variables": ^7.18.6 384 | "@babel/helper-split-export-declaration": ^7.18.6 385 | "@babel/parser": ^7.20.1 386 | "@babel/types": ^7.20.0 387 | debug: ^4.1.0 388 | globals: ^11.1.0 389 | checksum: 6696176d574b7ff93466848010bc7e94b250169379ec2a84f1b10da46a7cc2018ea5e3a520c3078487db51e3a4afab9ecff48f25d1dbad8c1319362f4148fb4b 390 | languageName: node 391 | linkType: hard 392 | 393 | "@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.8.3": 394 | version: 7.20.2 395 | resolution: "@babel/types@npm:7.20.2" 396 | dependencies: 397 | "@babel/helper-string-parser": ^7.19.4 398 | "@babel/helper-validator-identifier": ^7.19.1 399 | to-fast-properties: ^2.0.0 400 | checksum: 57e76e5f21876135f481bfd4010c87f2d38196bb0a2bc60a28d6e55e3afa90cdd9accf164e4cb71bdfb620517fa0a0cb5600cdce36c21d59fdaccfbb899c024c 401 | languageName: node 402 | linkType: hard 403 | 404 | "@bcoe/v8-coverage@npm:^0.2.3": 405 | version: 0.2.3 406 | resolution: "@bcoe/v8-coverage@npm:0.2.3" 407 | checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 408 | languageName: node 409 | linkType: hard 410 | 411 | "@gar/promisify@npm:^1.1.3": 412 | version: 1.1.3 413 | resolution: "@gar/promisify@npm:1.1.3" 414 | checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 415 | languageName: node 416 | linkType: hard 417 | 418 | "@istanbuljs/load-nyc-config@npm:^1.0.0": 419 | version: 1.1.0 420 | resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" 421 | dependencies: 422 | camelcase: ^5.3.1 423 | find-up: ^4.1.0 424 | get-package-type: ^0.1.0 425 | js-yaml: ^3.13.1 426 | resolve-from: ^5.0.0 427 | checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 428 | languageName: node 429 | linkType: hard 430 | 431 | "@istanbuljs/schema@npm:^0.1.2": 432 | version: 0.1.3 433 | resolution: "@istanbuljs/schema@npm:0.1.3" 434 | checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 435 | languageName: node 436 | linkType: hard 437 | 438 | "@jest/console@npm:^29.3.1": 439 | version: 29.3.1 440 | resolution: "@jest/console@npm:29.3.1" 441 | dependencies: 442 | "@jest/types": ^29.3.1 443 | "@types/node": "*" 444 | chalk: ^4.0.0 445 | jest-message-util: ^29.3.1 446 | jest-util: ^29.3.1 447 | slash: ^3.0.0 448 | checksum: 9eecbfb6df4f5b810374849b7566d321255e6fd6e804546236650384966be532ff75a3e445a3277eadefe67ddf4dc56cd38332abd72d6a450f1bea9866efc6d7 449 | languageName: node 450 | linkType: hard 451 | 452 | "@jest/core@npm:^29.3.1": 453 | version: 29.3.1 454 | resolution: "@jest/core@npm:29.3.1" 455 | dependencies: 456 | "@jest/console": ^29.3.1 457 | "@jest/reporters": ^29.3.1 458 | "@jest/test-result": ^29.3.1 459 | "@jest/transform": ^29.3.1 460 | "@jest/types": ^29.3.1 461 | "@types/node": "*" 462 | ansi-escapes: ^4.2.1 463 | chalk: ^4.0.0 464 | ci-info: ^3.2.0 465 | exit: ^0.1.2 466 | graceful-fs: ^4.2.9 467 | jest-changed-files: ^29.2.0 468 | jest-config: ^29.3.1 469 | jest-haste-map: ^29.3.1 470 | jest-message-util: ^29.3.1 471 | jest-regex-util: ^29.2.0 472 | jest-resolve: ^29.3.1 473 | jest-resolve-dependencies: ^29.3.1 474 | jest-runner: ^29.3.1 475 | jest-runtime: ^29.3.1 476 | jest-snapshot: ^29.3.1 477 | jest-util: ^29.3.1 478 | jest-validate: ^29.3.1 479 | jest-watcher: ^29.3.1 480 | micromatch: ^4.0.4 481 | pretty-format: ^29.3.1 482 | slash: ^3.0.0 483 | strip-ansi: ^6.0.0 484 | peerDependencies: 485 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 486 | peerDependenciesMeta: 487 | node-notifier: 488 | optional: true 489 | checksum: e3ac9201e8a084ccd832b17877b56490402b919f227622bb24f9372931e77b869e60959d34144222ce20fb619d0a6a6be20b257adb077a6b0f430a4584a45b0f 490 | languageName: node 491 | linkType: hard 492 | 493 | "@jest/environment@npm:^29.3.1": 494 | version: 29.3.1 495 | resolution: "@jest/environment@npm:29.3.1" 496 | dependencies: 497 | "@jest/fake-timers": ^29.3.1 498 | "@jest/types": ^29.3.1 499 | "@types/node": "*" 500 | jest-mock: ^29.3.1 501 | checksum: 974102aba7cc80508f787bb5504dcc96e5392e0a7776a63dffbf54ddc2c77d52ef4a3c08ed2eedec91965befff873f70cd7c9ed56f62bb132dcdb821730e6076 502 | languageName: node 503 | linkType: hard 504 | 505 | "@jest/expect-utils@npm:^29.3.1": 506 | version: 29.3.1 507 | resolution: "@jest/expect-utils@npm:29.3.1" 508 | dependencies: 509 | jest-get-type: ^29.2.0 510 | checksum: 7f3b853eb1e4299988f66b9aa49c1aacb7b8da1cf5518dca4ccd966e865947eed8f1bde6c8f5207d8400e9af870112a44b57aa83515ad6ea5e4a04a971863adb 511 | languageName: node 512 | linkType: hard 513 | 514 | "@jest/expect@npm:^29.3.1": 515 | version: 29.3.1 516 | resolution: "@jest/expect@npm:29.3.1" 517 | dependencies: 518 | expect: ^29.3.1 519 | jest-snapshot: ^29.3.1 520 | checksum: 1d7b5cc735c8a99bfbed884d80fdb43b23b3456f4ec88c50fd86404b097bb77fba84f44e707fc9b49f106ca1154ae03f7c54dc34754b03f8a54eeb420196e5bf 521 | languageName: node 522 | linkType: hard 523 | 524 | "@jest/fake-timers@npm:^29.3.1": 525 | version: 29.3.1 526 | resolution: "@jest/fake-timers@npm:29.3.1" 527 | dependencies: 528 | "@jest/types": ^29.3.1 529 | "@sinonjs/fake-timers": ^9.1.2 530 | "@types/node": "*" 531 | jest-message-util: ^29.3.1 532 | jest-mock: ^29.3.1 533 | jest-util: ^29.3.1 534 | checksum: b1dafa8cdc439ef428cd772c775f0b22703677f52615513eda11a104bbfc352d7ec69b1225db95d4ef2e1b4ef0f23e1a7d96de5313aeb0950f672e6548ae069d 535 | languageName: node 536 | linkType: hard 537 | 538 | "@jest/globals@npm:^29.3.1": 539 | version: 29.3.1 540 | resolution: "@jest/globals@npm:29.3.1" 541 | dependencies: 542 | "@jest/environment": ^29.3.1 543 | "@jest/expect": ^29.3.1 544 | "@jest/types": ^29.3.1 545 | jest-mock: ^29.3.1 546 | checksum: 4d2b9458aabf7c28fd167e53984477498c897b64eec67a7f84b8fff465235cae1456ee0721cb0e7943f0cda443c7656adb9801f9f34e27495b8ebbd9f3033100 547 | languageName: node 548 | linkType: hard 549 | 550 | "@jest/reporters@npm:^29.3.1": 551 | version: 29.3.1 552 | resolution: "@jest/reporters@npm:29.3.1" 553 | dependencies: 554 | "@bcoe/v8-coverage": ^0.2.3 555 | "@jest/console": ^29.3.1 556 | "@jest/test-result": ^29.3.1 557 | "@jest/transform": ^29.3.1 558 | "@jest/types": ^29.3.1 559 | "@jridgewell/trace-mapping": ^0.3.15 560 | "@types/node": "*" 561 | chalk: ^4.0.0 562 | collect-v8-coverage: ^1.0.0 563 | exit: ^0.1.2 564 | glob: ^7.1.3 565 | graceful-fs: ^4.2.9 566 | istanbul-lib-coverage: ^3.0.0 567 | istanbul-lib-instrument: ^5.1.0 568 | istanbul-lib-report: ^3.0.0 569 | istanbul-lib-source-maps: ^4.0.0 570 | istanbul-reports: ^3.1.3 571 | jest-message-util: ^29.3.1 572 | jest-util: ^29.3.1 573 | jest-worker: ^29.3.1 574 | slash: ^3.0.0 575 | string-length: ^4.0.1 576 | strip-ansi: ^6.0.0 577 | v8-to-istanbul: ^9.0.1 578 | peerDependencies: 579 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 580 | peerDependenciesMeta: 581 | node-notifier: 582 | optional: true 583 | checksum: 273e0c6953285f01151e9d84ac1e55744802a1ec79fb62dafeea16a49adfe7b24e7f35bef47a0214e5e057272dbfdacf594208286b7766046fd0f3cfa2043840 584 | languageName: node 585 | linkType: hard 586 | 587 | "@jest/schemas@npm:^29.0.0": 588 | version: 29.0.0 589 | resolution: "@jest/schemas@npm:29.0.0" 590 | dependencies: 591 | "@sinclair/typebox": ^0.24.1 592 | checksum: 41355c78f09eb1097e57a3c5d0ca11c9099e235e01ea5fa4e3953562a79a6a9296c1d300f1ba50ca75236048829e056b00685cd2f1ff8285e56fd2ce01249acb 593 | languageName: node 594 | linkType: hard 595 | 596 | "@jest/source-map@npm:^29.2.0": 597 | version: 29.2.0 598 | resolution: "@jest/source-map@npm:29.2.0" 599 | dependencies: 600 | "@jridgewell/trace-mapping": ^0.3.15 601 | callsites: ^3.0.0 602 | graceful-fs: ^4.2.9 603 | checksum: 09f76ab63d15dcf44b3035a79412164f43be34ec189575930f1a00c87e36ea0211ebd6a4fbe2253c2516e19b49b131f348ddbb86223ca7b6bbac9a6bc76ec96e 604 | languageName: node 605 | linkType: hard 606 | 607 | "@jest/test-result@npm:^29.3.1": 608 | version: 29.3.1 609 | resolution: "@jest/test-result@npm:29.3.1" 610 | dependencies: 611 | "@jest/console": ^29.3.1 612 | "@jest/types": ^29.3.1 613 | "@types/istanbul-lib-coverage": ^2.0.0 614 | collect-v8-coverage: ^1.0.0 615 | checksum: b24ac283321189b624c372a6369c0674b0ee6d9e3902c213452c6334d037113718156b315364bee8cee0f03419c2bdff5e2c63967193fb422830e79cbb26866a 616 | languageName: node 617 | linkType: hard 618 | 619 | "@jest/test-sequencer@npm:^29.3.1": 620 | version: 29.3.1 621 | resolution: "@jest/test-sequencer@npm:29.3.1" 622 | dependencies: 623 | "@jest/test-result": ^29.3.1 624 | graceful-fs: ^4.2.9 625 | jest-haste-map: ^29.3.1 626 | slash: ^3.0.0 627 | checksum: a8325b1ea0ce644486fb63bb67cedd3524d04e3d7b1e6c1e3562bf12ef477ecd0cf34044391b2a07d925e1c0c8b4e0f3285035ceca3a474a2c55980f1708caf3 628 | languageName: node 629 | linkType: hard 630 | 631 | "@jest/transform@npm:^29.3.1": 632 | version: 29.3.1 633 | resolution: "@jest/transform@npm:29.3.1" 634 | dependencies: 635 | "@babel/core": ^7.11.6 636 | "@jest/types": ^29.3.1 637 | "@jridgewell/trace-mapping": ^0.3.15 638 | babel-plugin-istanbul: ^6.1.1 639 | chalk: ^4.0.0 640 | convert-source-map: ^2.0.0 641 | fast-json-stable-stringify: ^2.1.0 642 | graceful-fs: ^4.2.9 643 | jest-haste-map: ^29.3.1 644 | jest-regex-util: ^29.2.0 645 | jest-util: ^29.3.1 646 | micromatch: ^4.0.4 647 | pirates: ^4.0.4 648 | slash: ^3.0.0 649 | write-file-atomic: ^4.0.1 650 | checksum: 673df5900ffc95bc811084e09d6e47948034dea6ab6cc4f81f80977e3a52468a6c2284d0ba9796daf25a62ae50d12f7e97fc9a3a0c587f11f2a479ff5493ca53 651 | languageName: node 652 | linkType: hard 653 | 654 | "@jest/types@npm:^29.3.1": 655 | version: 29.3.1 656 | resolution: "@jest/types@npm:29.3.1" 657 | dependencies: 658 | "@jest/schemas": ^29.0.0 659 | "@types/istanbul-lib-coverage": ^2.0.0 660 | "@types/istanbul-reports": ^3.0.0 661 | "@types/node": "*" 662 | "@types/yargs": ^17.0.8 663 | chalk: ^4.0.0 664 | checksum: 6f9faf27507b845ff3839c1adc6dbd038d7046d03d37e84c9fc956f60718711a801a5094c7eeee6b39ccf42c0ab61347fdc0fa49ab493ae5a8efd2fd41228ee8 665 | languageName: node 666 | linkType: hard 667 | 668 | "@jridgewell/gen-mapping@npm:^0.1.0": 669 | version: 0.1.1 670 | resolution: "@jridgewell/gen-mapping@npm:0.1.1" 671 | dependencies: 672 | "@jridgewell/set-array": ^1.0.0 673 | "@jridgewell/sourcemap-codec": ^1.4.10 674 | checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc 675 | languageName: node 676 | linkType: hard 677 | 678 | "@jridgewell/gen-mapping@npm:^0.3.2": 679 | version: 0.3.2 680 | resolution: "@jridgewell/gen-mapping@npm:0.3.2" 681 | dependencies: 682 | "@jridgewell/set-array": ^1.0.1 683 | "@jridgewell/sourcemap-codec": ^1.4.10 684 | "@jridgewell/trace-mapping": ^0.3.9 685 | checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 686 | languageName: node 687 | linkType: hard 688 | 689 | "@jridgewell/resolve-uri@npm:3.1.0": 690 | version: 3.1.0 691 | resolution: "@jridgewell/resolve-uri@npm:3.1.0" 692 | checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 693 | languageName: node 694 | linkType: hard 695 | 696 | "@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": 697 | version: 1.1.2 698 | resolution: "@jridgewell/set-array@npm:1.1.2" 699 | checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e 700 | languageName: node 701 | linkType: hard 702 | 703 | "@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": 704 | version: 1.4.14 705 | resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" 706 | checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 707 | languageName: node 708 | linkType: hard 709 | 710 | "@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.9": 711 | version: 0.3.17 712 | resolution: "@jridgewell/trace-mapping@npm:0.3.17" 713 | dependencies: 714 | "@jridgewell/resolve-uri": 3.1.0 715 | "@jridgewell/sourcemap-codec": 1.4.14 716 | checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 717 | languageName: node 718 | linkType: hard 719 | 720 | "@npmcli/fs@npm:^2.1.0": 721 | version: 2.1.2 722 | resolution: "@npmcli/fs@npm:2.1.2" 723 | dependencies: 724 | "@gar/promisify": ^1.1.3 725 | semver: ^7.3.5 726 | checksum: 405074965e72d4c9d728931b64d2d38e6ea12066d4fad651ac253d175e413c06fe4350970c783db0d749181da8fe49c42d3880bd1cbc12cd68e3a7964d820225 727 | languageName: node 728 | linkType: hard 729 | 730 | "@npmcli/move-file@npm:^2.0.0": 731 | version: 2.0.1 732 | resolution: "@npmcli/move-file@npm:2.0.1" 733 | dependencies: 734 | mkdirp: ^1.0.4 735 | rimraf: ^3.0.2 736 | checksum: 52dc02259d98da517fae4cb3a0a3850227bdae4939dda1980b788a7670636ca2b4a01b58df03dd5f65c1e3cb70c50fa8ce5762b582b3f499ec30ee5ce1fd9380 737 | languageName: node 738 | linkType: hard 739 | 740 | "@sinclair/typebox@npm:^0.24.1": 741 | version: 0.24.51 742 | resolution: "@sinclair/typebox@npm:0.24.51" 743 | checksum: fd0d855e748ef767eb19da1a60ed0ab928e91e0f358c1dd198d600762c0015440b15755e96d1176e2a0db7e09c6a64ed487828ee10dd0c3e22f61eb09c478cd0 744 | languageName: node 745 | linkType: hard 746 | 747 | "@sinonjs/commons@npm:^1.7.0": 748 | version: 1.8.5 749 | resolution: "@sinonjs/commons@npm:1.8.5" 750 | dependencies: 751 | type-detect: 4.0.8 752 | checksum: 74cb49e2f245dc0bfac990553dad0583884321f249522b3f73a6474ee9d7abe251814ebaab8094de7e94489d8efe415902fa67c47f637b751c121591b3cf5c39 753 | languageName: node 754 | linkType: hard 755 | 756 | "@sinonjs/fake-timers@npm:^9.1.2": 757 | version: 9.1.2 758 | resolution: "@sinonjs/fake-timers@npm:9.1.2" 759 | dependencies: 760 | "@sinonjs/commons": ^1.7.0 761 | checksum: 7d3aef54e17c1073101cb64d953157c19d62a40e261a30923fa1ee337b049c5f29cc47b1f0c477880f42b5659848ba9ab897607ac8ea4acd5c30ddcfac57fca6 762 | languageName: node 763 | linkType: hard 764 | 765 | "@svgo/jsx@workspace:packages/svgo-jsx": 766 | version: 0.0.0-use.local 767 | resolution: "@svgo/jsx@workspace:packages/svgo-jsx" 768 | dependencies: 769 | css-tree: ^2.2.1 770 | prettier: ^2.7.1 771 | svgo: ^3.0.1 772 | bin: 773 | svgo-jsx: ./svgo-jsx-bin.js 774 | languageName: unknown 775 | linkType: soft 776 | 777 | "@tootallnate/once@npm:2": 778 | version: 2.0.0 779 | resolution: "@tootallnate/once@npm:2.0.0" 780 | checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 781 | languageName: node 782 | linkType: hard 783 | 784 | "@trysound/sax@npm:0.2.0": 785 | version: 0.2.0 786 | resolution: "@trysound/sax@npm:0.2.0" 787 | checksum: 11226c39b52b391719a2a92e10183e4260d9651f86edced166da1d95f39a0a1eaa470e44d14ac685ccd6d3df7e2002433782872c0feeb260d61e80f21250e65c 788 | languageName: node 789 | linkType: hard 790 | 791 | "@types/babel__core@npm:^7.1.14": 792 | version: 7.1.20 793 | resolution: "@types/babel__core@npm:7.1.20" 794 | dependencies: 795 | "@babel/parser": ^7.1.0 796 | "@babel/types": ^7.0.0 797 | "@types/babel__generator": "*" 798 | "@types/babel__template": "*" 799 | "@types/babel__traverse": "*" 800 | checksum: a09c4f0456552547a5b8a5a009a3daec4d362f622168f8e08bda0ded2da0a65ab0b1642e23c433b3616721f5701dc34a996c5bde5baeaea53eda98f438043f2c 801 | languageName: node 802 | linkType: hard 803 | 804 | "@types/babel__generator@npm:*": 805 | version: 7.6.4 806 | resolution: "@types/babel__generator@npm:7.6.4" 807 | dependencies: 808 | "@babel/types": ^7.0.0 809 | checksum: 20effbbb5f8a3a0211e95959d06ae70c097fb6191011b73b38fe86deebefad8e09ee014605e0fd3cdaedc73d158be555866810e9166e1f09e4cfd880b874dcb0 810 | languageName: node 811 | linkType: hard 812 | 813 | "@types/babel__template@npm:*": 814 | version: 7.4.1 815 | resolution: "@types/babel__template@npm:7.4.1" 816 | dependencies: 817 | "@babel/parser": ^7.1.0 818 | "@babel/types": ^7.0.0 819 | checksum: 649fe8b42c2876be1fd28c6ed9b276f78152d5904ec290b6c861d9ef324206e0a5c242e8305c421ac52ecf6358fa7e32ab7a692f55370484825c1df29b1596ee 820 | languageName: node 821 | linkType: hard 822 | 823 | "@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": 824 | version: 7.18.2 825 | resolution: "@types/babel__traverse@npm:7.18.2" 826 | dependencies: 827 | "@babel/types": ^7.3.0 828 | checksum: 05972775e21cf07753b3bec725bf76f5a9804f99f660d323040746e3c8a4fe1b4ef6df17d7a80c4e2e335382cc72c62fc5a7079af836871ff9cbf0c21804e6d9 829 | languageName: node 830 | linkType: hard 831 | 832 | "@types/graceful-fs@npm:^4.1.3": 833 | version: 4.1.5 834 | resolution: "@types/graceful-fs@npm:4.1.5" 835 | dependencies: 836 | "@types/node": "*" 837 | checksum: d076bb61f45d0fc42dee496ef8b1c2f8742e15d5e47e90e20d0243386e426c04d4efd408a48875ab432f7960b4ce3414db20ed0fbbfc7bcc89d84e574f6e045a 838 | languageName: node 839 | linkType: hard 840 | 841 | "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": 842 | version: 2.0.4 843 | resolution: "@types/istanbul-lib-coverage@npm:2.0.4" 844 | checksum: a25d7589ee65c94d31464c16b72a9dc81dfa0bea9d3e105ae03882d616e2a0712a9c101a599ec482d297c3591e16336962878cb3eb1a0a62d5b76d277a890ce7 845 | languageName: node 846 | linkType: hard 847 | 848 | "@types/istanbul-lib-report@npm:*": 849 | version: 3.0.0 850 | resolution: "@types/istanbul-lib-report@npm:3.0.0" 851 | dependencies: 852 | "@types/istanbul-lib-coverage": "*" 853 | checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36 854 | languageName: node 855 | linkType: hard 856 | 857 | "@types/istanbul-reports@npm:^3.0.0": 858 | version: 3.0.1 859 | resolution: "@types/istanbul-reports@npm:3.0.1" 860 | dependencies: 861 | "@types/istanbul-lib-report": "*" 862 | checksum: f1ad54bc68f37f60b30c7915886b92f86b847033e597f9b34f2415acdbe5ed742fa559a0a40050d74cdba3b6a63c342cac1f3a64dba5b68b66a6941f4abd7903 863 | languageName: node 864 | linkType: hard 865 | 866 | "@types/node@npm:*": 867 | version: 18.11.9 868 | resolution: "@types/node@npm:18.11.9" 869 | checksum: cc0aae109e9b7adefc32eecb838d6fad931663bb06484b5e9cbbbf74865c721b03d16fd8d74ad90e31dbe093d956a7c2c306ba5429ba0c00f3f7505103d7a496 870 | languageName: node 871 | linkType: hard 872 | 873 | "@types/prettier@npm:^2.1.5": 874 | version: 2.7.1 875 | resolution: "@types/prettier@npm:2.7.1" 876 | checksum: 5e3f58e229d6c73b5f5cae2e8f96c1c4a5b5805f83459e17a045ba8e96152b1d38e86b63e3172fb159dac923388699660862b75b2d37e54220805f0e691e26f1 877 | languageName: node 878 | linkType: hard 879 | 880 | "@types/stack-utils@npm:^2.0.0": 881 | version: 2.0.1 882 | resolution: "@types/stack-utils@npm:2.0.1" 883 | checksum: 205fdbe3326b7046d7eaf5e494d8084f2659086a266f3f9cf00bccc549c8e36e407f88168ad4383c8b07099957ad669f75f2532ed4bc70be2b037330f7bae019 884 | languageName: node 885 | linkType: hard 886 | 887 | "@types/yargs-parser@npm:*": 888 | version: 21.0.0 889 | resolution: "@types/yargs-parser@npm:21.0.0" 890 | checksum: b2f4c8d12ac18a567440379909127cf2cec393daffb73f246d0a25df36ea983b93b7e9e824251f959e9f928cbc7c1aab6728d0a0ff15d6145f66cec2be67d9a2 891 | languageName: node 892 | linkType: hard 893 | 894 | "@types/yargs@npm:^17.0.8": 895 | version: 17.0.13 896 | resolution: "@types/yargs@npm:17.0.13" 897 | dependencies: 898 | "@types/yargs-parser": "*" 899 | checksum: 0ab269abc2da2223cf0a8c16d578850fbe327d40fb85724b5c3f9f6cf38d03656ef699518c05d4df3bc337339ec6d0aad7df01682a9dca4783ad1ccc7336cf12 900 | languageName: node 901 | linkType: hard 902 | 903 | "abbrev@npm:^1.0.0": 904 | version: 1.1.1 905 | resolution: "abbrev@npm:1.1.1" 906 | checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 907 | languageName: node 908 | linkType: hard 909 | 910 | "agent-base@npm:6, agent-base@npm:^6.0.2": 911 | version: 6.0.2 912 | resolution: "agent-base@npm:6.0.2" 913 | dependencies: 914 | debug: 4 915 | checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d 916 | languageName: node 917 | linkType: hard 918 | 919 | "agentkeepalive@npm:^4.2.1": 920 | version: 4.2.1 921 | resolution: "agentkeepalive@npm:4.2.1" 922 | dependencies: 923 | debug: ^4.1.0 924 | depd: ^1.1.2 925 | humanize-ms: ^1.2.1 926 | checksum: 39cb49ed8cf217fd6da058a92828a0a84e0b74c35550f82ee0a10e1ee403c4b78ade7948be2279b188b7a7303f5d396ea2738b134731e464bf28de00a4f72a18 927 | languageName: node 928 | linkType: hard 929 | 930 | "aggregate-error@npm:^3.0.0": 931 | version: 3.1.0 932 | resolution: "aggregate-error@npm:3.1.0" 933 | dependencies: 934 | clean-stack: ^2.0.0 935 | indent-string: ^4.0.0 936 | checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 937 | languageName: node 938 | linkType: hard 939 | 940 | "ansi-escapes@npm:^4.2.1": 941 | version: 4.3.2 942 | resolution: "ansi-escapes@npm:4.3.2" 943 | dependencies: 944 | type-fest: ^0.21.3 945 | checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 946 | languageName: node 947 | linkType: hard 948 | 949 | "ansi-regex@npm:^5.0.1": 950 | version: 5.0.1 951 | resolution: "ansi-regex@npm:5.0.1" 952 | checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b 953 | languageName: node 954 | linkType: hard 955 | 956 | "ansi-styles@npm:^3.2.1": 957 | version: 3.2.1 958 | resolution: "ansi-styles@npm:3.2.1" 959 | dependencies: 960 | color-convert: ^1.9.0 961 | checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 962 | languageName: node 963 | linkType: hard 964 | 965 | "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": 966 | version: 4.3.0 967 | resolution: "ansi-styles@npm:4.3.0" 968 | dependencies: 969 | color-convert: ^2.0.1 970 | checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 971 | languageName: node 972 | linkType: hard 973 | 974 | "ansi-styles@npm:^5.0.0": 975 | version: 5.2.0 976 | resolution: "ansi-styles@npm:5.2.0" 977 | checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 978 | languageName: node 979 | linkType: hard 980 | 981 | "anymatch@npm:^3.0.3": 982 | version: 3.1.2 983 | resolution: "anymatch@npm:3.1.2" 984 | dependencies: 985 | normalize-path: ^3.0.0 986 | picomatch: ^2.0.4 987 | checksum: 985163db2292fac9e5a1e072bf99f1b5baccf196e4de25a0b0b81865ebddeb3b3eb4480734ef0a2ac8c002845396b91aa89121f5b84f93981a4658164a9ec6e9 988 | languageName: node 989 | linkType: hard 990 | 991 | "aproba@npm:^1.0.3 || ^2.0.0": 992 | version: 2.0.0 993 | resolution: "aproba@npm:2.0.0" 994 | checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 995 | languageName: node 996 | linkType: hard 997 | 998 | "are-we-there-yet@npm:^3.0.0": 999 | version: 3.0.1 1000 | resolution: "are-we-there-yet@npm:3.0.1" 1001 | dependencies: 1002 | delegates: ^1.0.0 1003 | readable-stream: ^3.6.0 1004 | checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 1005 | languageName: node 1006 | linkType: hard 1007 | 1008 | "argparse@npm:^1.0.7": 1009 | version: 1.0.10 1010 | resolution: "argparse@npm:1.0.10" 1011 | dependencies: 1012 | sprintf-js: ~1.0.2 1013 | checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 1014 | languageName: node 1015 | linkType: hard 1016 | 1017 | "babel-jest@npm:^29.3.1": 1018 | version: 29.3.1 1019 | resolution: "babel-jest@npm:29.3.1" 1020 | dependencies: 1021 | "@jest/transform": ^29.3.1 1022 | "@types/babel__core": ^7.1.14 1023 | babel-plugin-istanbul: ^6.1.1 1024 | babel-preset-jest: ^29.2.0 1025 | chalk: ^4.0.0 1026 | graceful-fs: ^4.2.9 1027 | slash: ^3.0.0 1028 | peerDependencies: 1029 | "@babel/core": ^7.8.0 1030 | checksum: 793848238a771a931ddeb5930b9ec8ab800522ac8d64933665698f4a39603d157e572e20b57d79610277e1df88d3ee82b180d59a21f3570388f602beeb38a595 1031 | languageName: node 1032 | linkType: hard 1033 | 1034 | "babel-plugin-istanbul@npm:^6.1.1": 1035 | version: 6.1.1 1036 | resolution: "babel-plugin-istanbul@npm:6.1.1" 1037 | dependencies: 1038 | "@babel/helper-plugin-utils": ^7.0.0 1039 | "@istanbuljs/load-nyc-config": ^1.0.0 1040 | "@istanbuljs/schema": ^0.1.2 1041 | istanbul-lib-instrument: ^5.0.4 1042 | test-exclude: ^6.0.0 1043 | checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a 1044 | languageName: node 1045 | linkType: hard 1046 | 1047 | "babel-plugin-jest-hoist@npm:^29.2.0": 1048 | version: 29.2.0 1049 | resolution: "babel-plugin-jest-hoist@npm:29.2.0" 1050 | dependencies: 1051 | "@babel/template": ^7.3.3 1052 | "@babel/types": ^7.3.3 1053 | "@types/babel__core": ^7.1.14 1054 | "@types/babel__traverse": ^7.0.6 1055 | checksum: 368d271ceae491ae6b96cd691434859ea589fbe5fd5aead7660df75d02394077273c6442f61f390e9347adffab57a32b564d0fabcf1c53c4b83cd426cb644072 1056 | languageName: node 1057 | linkType: hard 1058 | 1059 | "babel-preset-current-node-syntax@npm:^1.0.0": 1060 | version: 1.0.1 1061 | resolution: "babel-preset-current-node-syntax@npm:1.0.1" 1062 | dependencies: 1063 | "@babel/plugin-syntax-async-generators": ^7.8.4 1064 | "@babel/plugin-syntax-bigint": ^7.8.3 1065 | "@babel/plugin-syntax-class-properties": ^7.8.3 1066 | "@babel/plugin-syntax-import-meta": ^7.8.3 1067 | "@babel/plugin-syntax-json-strings": ^7.8.3 1068 | "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 1069 | "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 1070 | "@babel/plugin-syntax-numeric-separator": ^7.8.3 1071 | "@babel/plugin-syntax-object-rest-spread": ^7.8.3 1072 | "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 1073 | "@babel/plugin-syntax-optional-chaining": ^7.8.3 1074 | "@babel/plugin-syntax-top-level-await": ^7.8.3 1075 | peerDependencies: 1076 | "@babel/core": ^7.0.0 1077 | checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 1078 | languageName: node 1079 | linkType: hard 1080 | 1081 | "babel-preset-jest@npm:^29.2.0": 1082 | version: 29.2.0 1083 | resolution: "babel-preset-jest@npm:29.2.0" 1084 | dependencies: 1085 | babel-plugin-jest-hoist: ^29.2.0 1086 | babel-preset-current-node-syntax: ^1.0.0 1087 | peerDependencies: 1088 | "@babel/core": ^7.0.0 1089 | checksum: 1b09a2db968c36e064daf98082cfffa39c849b63055112ddc56fc2551fd0d4783897265775b1d2f8a257960a3339745de92e74feb01bad86d41c4cecbfa854fc 1090 | languageName: node 1091 | linkType: hard 1092 | 1093 | "balanced-match@npm:^1.0.0": 1094 | version: 1.0.2 1095 | resolution: "balanced-match@npm:1.0.2" 1096 | checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 1097 | languageName: node 1098 | linkType: hard 1099 | 1100 | "boolbase@npm:^1.0.0": 1101 | version: 1.0.0 1102 | resolution: "boolbase@npm:1.0.0" 1103 | checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 1104 | languageName: node 1105 | linkType: hard 1106 | 1107 | "brace-expansion@npm:^1.1.7": 1108 | version: 1.1.11 1109 | resolution: "brace-expansion@npm:1.1.11" 1110 | dependencies: 1111 | balanced-match: ^1.0.0 1112 | concat-map: 0.0.1 1113 | checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 1114 | languageName: node 1115 | linkType: hard 1116 | 1117 | "brace-expansion@npm:^2.0.1": 1118 | version: 2.0.1 1119 | resolution: "brace-expansion@npm:2.0.1" 1120 | dependencies: 1121 | balanced-match: ^1.0.0 1122 | checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 1123 | languageName: node 1124 | linkType: hard 1125 | 1126 | "braces@npm:^3.0.2": 1127 | version: 3.0.2 1128 | resolution: "braces@npm:3.0.2" 1129 | dependencies: 1130 | fill-range: ^7.0.1 1131 | checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 1132 | languageName: node 1133 | linkType: hard 1134 | 1135 | "browserslist@npm:^4.21.3": 1136 | version: 4.21.4 1137 | resolution: "browserslist@npm:4.21.4" 1138 | dependencies: 1139 | caniuse-lite: ^1.0.30001400 1140 | electron-to-chromium: ^1.4.251 1141 | node-releases: ^2.0.6 1142 | update-browserslist-db: ^1.0.9 1143 | bin: 1144 | browserslist: cli.js 1145 | checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 1146 | languageName: node 1147 | linkType: hard 1148 | 1149 | "bser@npm:2.1.1": 1150 | version: 2.1.1 1151 | resolution: "bser@npm:2.1.1" 1152 | dependencies: 1153 | node-int64: ^0.4.0 1154 | checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 1155 | languageName: node 1156 | linkType: hard 1157 | 1158 | "buffer-from@npm:^1.0.0": 1159 | version: 1.1.2 1160 | resolution: "buffer-from@npm:1.1.2" 1161 | checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb 1162 | languageName: node 1163 | linkType: hard 1164 | 1165 | "cacache@npm:^16.1.0": 1166 | version: 16.1.3 1167 | resolution: "cacache@npm:16.1.3" 1168 | dependencies: 1169 | "@npmcli/fs": ^2.1.0 1170 | "@npmcli/move-file": ^2.0.0 1171 | chownr: ^2.0.0 1172 | fs-minipass: ^2.1.0 1173 | glob: ^8.0.1 1174 | infer-owner: ^1.0.4 1175 | lru-cache: ^7.7.1 1176 | minipass: ^3.1.6 1177 | minipass-collect: ^1.0.2 1178 | minipass-flush: ^1.0.5 1179 | minipass-pipeline: ^1.2.4 1180 | mkdirp: ^1.0.4 1181 | p-map: ^4.0.0 1182 | promise-inflight: ^1.0.1 1183 | rimraf: ^3.0.2 1184 | ssri: ^9.0.0 1185 | tar: ^6.1.11 1186 | unique-filename: ^2.0.0 1187 | checksum: d91409e6e57d7d9a3a25e5dcc589c84e75b178ae8ea7de05cbf6b783f77a5fae938f6e8fda6f5257ed70000be27a681e1e44829251bfffe4c10216002f8f14e6 1188 | languageName: node 1189 | linkType: hard 1190 | 1191 | "callsites@npm:^3.0.0": 1192 | version: 3.1.0 1193 | resolution: "callsites@npm:3.1.0" 1194 | checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 1195 | languageName: node 1196 | linkType: hard 1197 | 1198 | "camelcase@npm:^5.3.1": 1199 | version: 5.3.1 1200 | resolution: "camelcase@npm:5.3.1" 1201 | checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b 1202 | languageName: node 1203 | linkType: hard 1204 | 1205 | "camelcase@npm:^6.2.0": 1206 | version: 6.3.0 1207 | resolution: "camelcase@npm:6.3.0" 1208 | checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d 1209 | languageName: node 1210 | linkType: hard 1211 | 1212 | "caniuse-lite@npm:^1.0.30001400": 1213 | version: 1.0.30001431 1214 | resolution: "caniuse-lite@npm:1.0.30001431" 1215 | checksum: bc8ab55cd194e240152946b54bfaff7456180cc018674fc7ed134f4f502192405f6643f422feaa0a5e7cc02b5bac564cfac7771ac6d29f5d129482fcfe335ba1 1216 | languageName: node 1217 | linkType: hard 1218 | 1219 | "chalk@npm:^2.0.0": 1220 | version: 2.4.2 1221 | resolution: "chalk@npm:2.4.2" 1222 | dependencies: 1223 | ansi-styles: ^3.2.1 1224 | escape-string-regexp: ^1.0.5 1225 | supports-color: ^5.3.0 1226 | checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 1227 | languageName: node 1228 | linkType: hard 1229 | 1230 | "chalk@npm:^4.0.0": 1231 | version: 4.1.2 1232 | resolution: "chalk@npm:4.1.2" 1233 | dependencies: 1234 | ansi-styles: ^4.1.0 1235 | supports-color: ^7.1.0 1236 | checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc 1237 | languageName: node 1238 | linkType: hard 1239 | 1240 | "char-regex@npm:^1.0.2": 1241 | version: 1.0.2 1242 | resolution: "char-regex@npm:1.0.2" 1243 | checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 1244 | languageName: node 1245 | linkType: hard 1246 | 1247 | "chownr@npm:^2.0.0": 1248 | version: 2.0.0 1249 | resolution: "chownr@npm:2.0.0" 1250 | checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f 1251 | languageName: node 1252 | linkType: hard 1253 | 1254 | "ci-info@npm:^3.2.0": 1255 | version: 3.5.0 1256 | resolution: "ci-info@npm:3.5.0" 1257 | checksum: 7def3789706ec18db3dc371dc699bd0df12057d54b796201f50ba87200e0849d3d83c68da00ab2ab8cdd738d91b25ab9e31620588f8d7e64ffaa1f760fd121cf 1258 | languageName: node 1259 | linkType: hard 1260 | 1261 | "cjs-module-lexer@npm:^1.0.0": 1262 | version: 1.2.2 1263 | resolution: "cjs-module-lexer@npm:1.2.2" 1264 | checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5 1265 | languageName: node 1266 | linkType: hard 1267 | 1268 | "clean-stack@npm:^2.0.0": 1269 | version: 2.2.0 1270 | resolution: "clean-stack@npm:2.2.0" 1271 | checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 1272 | languageName: node 1273 | linkType: hard 1274 | 1275 | "cliui@npm:^8.0.1": 1276 | version: 8.0.1 1277 | resolution: "cliui@npm:8.0.1" 1278 | dependencies: 1279 | string-width: ^4.2.0 1280 | strip-ansi: ^6.0.1 1281 | wrap-ansi: ^7.0.0 1282 | checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 1283 | languageName: node 1284 | linkType: hard 1285 | 1286 | "co@npm:^4.6.0": 1287 | version: 4.6.0 1288 | resolution: "co@npm:4.6.0" 1289 | checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 1290 | languageName: node 1291 | linkType: hard 1292 | 1293 | "collect-v8-coverage@npm:^1.0.0": 1294 | version: 1.0.1 1295 | resolution: "collect-v8-coverage@npm:1.0.1" 1296 | checksum: 4efe0a1fccd517b65478a2364b33dadd0a43fc92a56f59aaece9b6186fe5177b2de471253587de7c91516f07c7268c2f6770b6cbcffc0e0ece353b766ec87e55 1297 | languageName: node 1298 | linkType: hard 1299 | 1300 | "color-convert@npm:^1.9.0": 1301 | version: 1.9.3 1302 | resolution: "color-convert@npm:1.9.3" 1303 | dependencies: 1304 | color-name: 1.1.3 1305 | checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 1306 | languageName: node 1307 | linkType: hard 1308 | 1309 | "color-convert@npm:^2.0.1": 1310 | version: 2.0.1 1311 | resolution: "color-convert@npm:2.0.1" 1312 | dependencies: 1313 | color-name: ~1.1.4 1314 | checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 1315 | languageName: node 1316 | linkType: hard 1317 | 1318 | "color-name@npm:1.1.3": 1319 | version: 1.1.3 1320 | resolution: "color-name@npm:1.1.3" 1321 | checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d 1322 | languageName: node 1323 | linkType: hard 1324 | 1325 | "color-name@npm:~1.1.4": 1326 | version: 1.1.4 1327 | resolution: "color-name@npm:1.1.4" 1328 | checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 1329 | languageName: node 1330 | linkType: hard 1331 | 1332 | "color-support@npm:^1.1.3": 1333 | version: 1.1.3 1334 | resolution: "color-support@npm:1.1.3" 1335 | bin: 1336 | color-support: bin.js 1337 | checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b 1338 | languageName: node 1339 | linkType: hard 1340 | 1341 | "commander@npm:^7.2.0": 1342 | version: 7.2.0 1343 | resolution: "commander@npm:7.2.0" 1344 | checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc 1345 | languageName: node 1346 | linkType: hard 1347 | 1348 | "concat-map@npm:0.0.1": 1349 | version: 0.0.1 1350 | resolution: "concat-map@npm:0.0.1" 1351 | checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af 1352 | languageName: node 1353 | linkType: hard 1354 | 1355 | "console-control-strings@npm:^1.1.0": 1356 | version: 1.1.0 1357 | resolution: "console-control-strings@npm:1.1.0" 1358 | checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed 1359 | languageName: node 1360 | linkType: hard 1361 | 1362 | "convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": 1363 | version: 1.9.0 1364 | resolution: "convert-source-map@npm:1.9.0" 1365 | checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 1366 | languageName: node 1367 | linkType: hard 1368 | 1369 | "convert-source-map@npm:^2.0.0": 1370 | version: 2.0.0 1371 | resolution: "convert-source-map@npm:2.0.0" 1372 | checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 1373 | languageName: node 1374 | linkType: hard 1375 | 1376 | "cross-spawn@npm:^7.0.3": 1377 | version: 7.0.3 1378 | resolution: "cross-spawn@npm:7.0.3" 1379 | dependencies: 1380 | path-key: ^3.1.0 1381 | shebang-command: ^2.0.0 1382 | which: ^2.0.1 1383 | checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 1384 | languageName: node 1385 | linkType: hard 1386 | 1387 | "css-select@npm:^5.1.0": 1388 | version: 5.1.0 1389 | resolution: "css-select@npm:5.1.0" 1390 | dependencies: 1391 | boolbase: ^1.0.0 1392 | css-what: ^6.1.0 1393 | domhandler: ^5.0.2 1394 | domutils: ^3.0.1 1395 | nth-check: ^2.0.1 1396 | checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda 1397 | languageName: node 1398 | linkType: hard 1399 | 1400 | "css-tree@npm:^2.2.1, css-tree@npm:~2.2.0": 1401 | version: 2.2.1 1402 | resolution: "css-tree@npm:2.2.1" 1403 | dependencies: 1404 | mdn-data: 2.0.28 1405 | source-map-js: ^1.0.1 1406 | checksum: b94aa8cc2f09e6f66c91548411fcf74badcbad3e150345074715012d16333ce573596ff5dfca03c2a87edf1924716db765120f94247e919d72753628ba3aba27 1407 | languageName: node 1408 | linkType: hard 1409 | 1410 | "css-what@npm:^6.1.0": 1411 | version: 6.1.0 1412 | resolution: "css-what@npm:6.1.0" 1413 | checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe 1414 | languageName: node 1415 | linkType: hard 1416 | 1417 | "csso@npm:^5.0.5": 1418 | version: 5.0.5 1419 | resolution: "csso@npm:5.0.5" 1420 | dependencies: 1421 | css-tree: ~2.2.0 1422 | checksum: 0ad858d36bf5012ed243e9ec69962a867509061986d2ee07cc040a4b26e4d062c00d4c07e5ba8d430706ceb02dd87edd30a52b5937fd45b1b6f2119c4993d59a 1423 | languageName: node 1424 | linkType: hard 1425 | 1426 | "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.3": 1427 | version: 4.3.4 1428 | resolution: "debug@npm:4.3.4" 1429 | dependencies: 1430 | ms: 2.1.2 1431 | peerDependenciesMeta: 1432 | supports-color: 1433 | optional: true 1434 | checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 1435 | languageName: node 1436 | linkType: hard 1437 | 1438 | "dedent@npm:^0.7.0": 1439 | version: 0.7.0 1440 | resolution: "dedent@npm:0.7.0" 1441 | checksum: 87de191050d9a40dd70cad01159a0bcf05ecb59750951242070b6abf9569088684880d00ba92a955b4058804f16eeaf91d604f283929b4f614d181cd7ae633d2 1442 | languageName: node 1443 | linkType: hard 1444 | 1445 | "deepmerge@npm:^4.2.2": 1446 | version: 4.2.2 1447 | resolution: "deepmerge@npm:4.2.2" 1448 | checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b 1449 | languageName: node 1450 | linkType: hard 1451 | 1452 | "delegates@npm:^1.0.0": 1453 | version: 1.0.0 1454 | resolution: "delegates@npm:1.0.0" 1455 | checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd 1456 | languageName: node 1457 | linkType: hard 1458 | 1459 | "depd@npm:^1.1.2": 1460 | version: 1.1.2 1461 | resolution: "depd@npm:1.1.2" 1462 | checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 1463 | languageName: node 1464 | linkType: hard 1465 | 1466 | "detect-newline@npm:^3.0.0": 1467 | version: 3.1.0 1468 | resolution: "detect-newline@npm:3.1.0" 1469 | checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 1470 | languageName: node 1471 | linkType: hard 1472 | 1473 | "diff-sequences@npm:^29.3.1": 1474 | version: 29.3.1 1475 | resolution: "diff-sequences@npm:29.3.1" 1476 | checksum: 8edab8c383355022e470779a099852d595dd856f9f5bd7af24f177e74138a668932268b4c4fd54096eed643861575c3652d4ecbbb1a9d710488286aed3ffa443 1477 | languageName: node 1478 | linkType: hard 1479 | 1480 | "dom-serializer@npm:^2.0.0": 1481 | version: 2.0.0 1482 | resolution: "dom-serializer@npm:2.0.0" 1483 | dependencies: 1484 | domelementtype: ^2.3.0 1485 | domhandler: ^5.0.2 1486 | entities: ^4.2.0 1487 | checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 1488 | languageName: node 1489 | linkType: hard 1490 | 1491 | "domelementtype@npm:^2.3.0": 1492 | version: 2.3.0 1493 | resolution: "domelementtype@npm:2.3.0" 1494 | checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 1495 | languageName: node 1496 | linkType: hard 1497 | 1498 | "domhandler@npm:^5.0.1, domhandler@npm:^5.0.2": 1499 | version: 5.0.3 1500 | resolution: "domhandler@npm:5.0.3" 1501 | dependencies: 1502 | domelementtype: ^2.3.0 1503 | checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c 1504 | languageName: node 1505 | linkType: hard 1506 | 1507 | "domutils@npm:^3.0.1": 1508 | version: 3.0.1 1509 | resolution: "domutils@npm:3.0.1" 1510 | dependencies: 1511 | dom-serializer: ^2.0.0 1512 | domelementtype: ^2.3.0 1513 | domhandler: ^5.0.1 1514 | checksum: 23aa7a840572d395220e173cb6263b0d028596e3950100520870a125af33ff819e6f609e1606d6f7d73bd9e7feb03bb404286e57a39063b5384c62b724d987b3 1515 | languageName: node 1516 | linkType: hard 1517 | 1518 | "electron-to-chromium@npm:^1.4.251": 1519 | version: 1.4.284 1520 | resolution: "electron-to-chromium@npm:1.4.284" 1521 | checksum: be496e9dca6509dbdbb54dc32146fc99f8eb716d28a7ee8ccd3eba0066561df36fc51418d8bd7cf5a5891810bf56c0def3418e74248f51ea4a843d423603d10a 1522 | languageName: node 1523 | linkType: hard 1524 | 1525 | "emittery@npm:^0.13.1": 1526 | version: 0.13.1 1527 | resolution: "emittery@npm:0.13.1" 1528 | checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 1529 | languageName: node 1530 | linkType: hard 1531 | 1532 | "emoji-regex@npm:^8.0.0": 1533 | version: 8.0.0 1534 | resolution: "emoji-regex@npm:8.0.0" 1535 | checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 1536 | languageName: node 1537 | linkType: hard 1538 | 1539 | "encoding@npm:^0.1.13": 1540 | version: 0.1.13 1541 | resolution: "encoding@npm:0.1.13" 1542 | dependencies: 1543 | iconv-lite: ^0.6.2 1544 | checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f 1545 | languageName: node 1546 | linkType: hard 1547 | 1548 | "entities@npm:^4.2.0": 1549 | version: 4.4.0 1550 | resolution: "entities@npm:4.4.0" 1551 | checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2 1552 | languageName: node 1553 | linkType: hard 1554 | 1555 | "env-paths@npm:^2.2.0": 1556 | version: 2.2.1 1557 | resolution: "env-paths@npm:2.2.1" 1558 | checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e 1559 | languageName: node 1560 | linkType: hard 1561 | 1562 | "err-code@npm:^2.0.2": 1563 | version: 2.0.3 1564 | resolution: "err-code@npm:2.0.3" 1565 | checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 1566 | languageName: node 1567 | linkType: hard 1568 | 1569 | "error-ex@npm:^1.3.1": 1570 | version: 1.3.2 1571 | resolution: "error-ex@npm:1.3.2" 1572 | dependencies: 1573 | is-arrayish: ^0.2.1 1574 | checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 1575 | languageName: node 1576 | linkType: hard 1577 | 1578 | "escalade@npm:^3.1.1": 1579 | version: 3.1.1 1580 | resolution: "escalade@npm:3.1.1" 1581 | checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 1582 | languageName: node 1583 | linkType: hard 1584 | 1585 | "escape-string-regexp@npm:^1.0.5": 1586 | version: 1.0.5 1587 | resolution: "escape-string-regexp@npm:1.0.5" 1588 | checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 1589 | languageName: node 1590 | linkType: hard 1591 | 1592 | "escape-string-regexp@npm:^2.0.0": 1593 | version: 2.0.0 1594 | resolution: "escape-string-regexp@npm:2.0.0" 1595 | checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 1596 | languageName: node 1597 | linkType: hard 1598 | 1599 | "esprima@npm:^4.0.0": 1600 | version: 4.0.1 1601 | resolution: "esprima@npm:4.0.1" 1602 | bin: 1603 | esparse: ./bin/esparse.js 1604 | esvalidate: ./bin/esvalidate.js 1605 | checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 1606 | languageName: node 1607 | linkType: hard 1608 | 1609 | "execa@npm:^5.0.0": 1610 | version: 5.1.1 1611 | resolution: "execa@npm:5.1.1" 1612 | dependencies: 1613 | cross-spawn: ^7.0.3 1614 | get-stream: ^6.0.0 1615 | human-signals: ^2.1.0 1616 | is-stream: ^2.0.0 1617 | merge-stream: ^2.0.0 1618 | npm-run-path: ^4.0.1 1619 | onetime: ^5.1.2 1620 | signal-exit: ^3.0.3 1621 | strip-final-newline: ^2.0.0 1622 | checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 1623 | languageName: node 1624 | linkType: hard 1625 | 1626 | "exit@npm:^0.1.2": 1627 | version: 0.1.2 1628 | resolution: "exit@npm:0.1.2" 1629 | checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 1630 | languageName: node 1631 | linkType: hard 1632 | 1633 | "expect@npm:^29.3.1": 1634 | version: 29.3.1 1635 | resolution: "expect@npm:29.3.1" 1636 | dependencies: 1637 | "@jest/expect-utils": ^29.3.1 1638 | jest-get-type: ^29.2.0 1639 | jest-matcher-utils: ^29.3.1 1640 | jest-message-util: ^29.3.1 1641 | jest-util: ^29.3.1 1642 | checksum: e9588c2a430b558b9a3dc72d4ad05f36b047cb477bc6a7bb9cfeef7614fe7e5edbab424c2c0ce82739ee21ecbbbd24596259528209f84cd72500cc612d910d30 1643 | languageName: node 1644 | linkType: hard 1645 | 1646 | "fast-json-stable-stringify@npm:^2.1.0": 1647 | version: 2.1.0 1648 | resolution: "fast-json-stable-stringify@npm:2.1.0" 1649 | checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb 1650 | languageName: node 1651 | linkType: hard 1652 | 1653 | "fb-watchman@npm:^2.0.0": 1654 | version: 2.0.2 1655 | resolution: "fb-watchman@npm:2.0.2" 1656 | dependencies: 1657 | bser: 2.1.1 1658 | checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 1659 | languageName: node 1660 | linkType: hard 1661 | 1662 | "fill-range@npm:^7.0.1": 1663 | version: 7.0.1 1664 | resolution: "fill-range@npm:7.0.1" 1665 | dependencies: 1666 | to-regex-range: ^5.0.1 1667 | checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 1668 | languageName: node 1669 | linkType: hard 1670 | 1671 | "find-up@npm:^4.0.0, find-up@npm:^4.1.0": 1672 | version: 4.1.0 1673 | resolution: "find-up@npm:4.1.0" 1674 | dependencies: 1675 | locate-path: ^5.0.0 1676 | path-exists: ^4.0.0 1677 | checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 1678 | languageName: node 1679 | linkType: hard 1680 | 1681 | "fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": 1682 | version: 2.1.0 1683 | resolution: "fs-minipass@npm:2.1.0" 1684 | dependencies: 1685 | minipass: ^3.0.0 1686 | checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 1687 | languageName: node 1688 | linkType: hard 1689 | 1690 | "fs.realpath@npm:^1.0.0": 1691 | version: 1.0.0 1692 | resolution: "fs.realpath@npm:1.0.0" 1693 | checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 1694 | languageName: node 1695 | linkType: hard 1696 | 1697 | "fsevents@npm:^2.3.2": 1698 | version: 2.3.2 1699 | resolution: "fsevents@npm:2.3.2" 1700 | dependencies: 1701 | node-gyp: latest 1702 | checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f 1703 | conditions: os=darwin 1704 | languageName: node 1705 | linkType: hard 1706 | 1707 | "fsevents@patch:fsevents@^2.3.2#~builtin": 1708 | version: 2.3.2 1709 | resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" 1710 | dependencies: 1711 | node-gyp: latest 1712 | conditions: os=darwin 1713 | languageName: node 1714 | linkType: hard 1715 | 1716 | "function-bind@npm:^1.1.1": 1717 | version: 1.1.1 1718 | resolution: "function-bind@npm:1.1.1" 1719 | checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a 1720 | languageName: node 1721 | linkType: hard 1722 | 1723 | "gauge@npm:^4.0.3": 1724 | version: 4.0.4 1725 | resolution: "gauge@npm:4.0.4" 1726 | dependencies: 1727 | aproba: ^1.0.3 || ^2.0.0 1728 | color-support: ^1.1.3 1729 | console-control-strings: ^1.1.0 1730 | has-unicode: ^2.0.1 1731 | signal-exit: ^3.0.7 1732 | string-width: ^4.2.3 1733 | strip-ansi: ^6.0.1 1734 | wide-align: ^1.1.5 1735 | checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d 1736 | languageName: node 1737 | linkType: hard 1738 | 1739 | "gensync@npm:^1.0.0-beta.2": 1740 | version: 1.0.0-beta.2 1741 | resolution: "gensync@npm:1.0.0-beta.2" 1742 | checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec 1743 | languageName: node 1744 | linkType: hard 1745 | 1746 | "get-caller-file@npm:^2.0.5": 1747 | version: 2.0.5 1748 | resolution: "get-caller-file@npm:2.0.5" 1749 | checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 1750 | languageName: node 1751 | linkType: hard 1752 | 1753 | "get-package-type@npm:^0.1.0": 1754 | version: 0.1.0 1755 | resolution: "get-package-type@npm:0.1.0" 1756 | checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 1757 | languageName: node 1758 | linkType: hard 1759 | 1760 | "get-stream@npm:^6.0.0": 1761 | version: 6.0.1 1762 | resolution: "get-stream@npm:6.0.1" 1763 | checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad 1764 | languageName: node 1765 | linkType: hard 1766 | 1767 | "glob@npm:^7.1.3, glob@npm:^7.1.4": 1768 | version: 7.2.3 1769 | resolution: "glob@npm:7.2.3" 1770 | dependencies: 1771 | fs.realpath: ^1.0.0 1772 | inflight: ^1.0.4 1773 | inherits: 2 1774 | minimatch: ^3.1.1 1775 | once: ^1.3.0 1776 | path-is-absolute: ^1.0.0 1777 | checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 1778 | languageName: node 1779 | linkType: hard 1780 | 1781 | "glob@npm:^8.0.1": 1782 | version: 8.0.3 1783 | resolution: "glob@npm:8.0.3" 1784 | dependencies: 1785 | fs.realpath: ^1.0.0 1786 | inflight: ^1.0.4 1787 | inherits: 2 1788 | minimatch: ^5.0.1 1789 | once: ^1.3.0 1790 | checksum: 50bcdea19d8e79d8de5f460b1939ffc2b3299eac28deb502093fdca22a78efebc03e66bf54f0abc3d3d07d8134d19a32850288b7440d77e072aa55f9d33b18c5 1791 | languageName: node 1792 | linkType: hard 1793 | 1794 | "globals@npm:^11.1.0": 1795 | version: 11.12.0 1796 | resolution: "globals@npm:11.12.0" 1797 | checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e 1798 | languageName: node 1799 | linkType: hard 1800 | 1801 | "graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": 1802 | version: 4.2.10 1803 | resolution: "graceful-fs@npm:4.2.10" 1804 | checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da 1805 | languageName: node 1806 | linkType: hard 1807 | 1808 | "has-flag@npm:^3.0.0": 1809 | version: 3.0.0 1810 | resolution: "has-flag@npm:3.0.0" 1811 | checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b 1812 | languageName: node 1813 | linkType: hard 1814 | 1815 | "has-flag@npm:^4.0.0": 1816 | version: 4.0.0 1817 | resolution: "has-flag@npm:4.0.0" 1818 | checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad 1819 | languageName: node 1820 | linkType: hard 1821 | 1822 | "has-unicode@npm:^2.0.1": 1823 | version: 2.0.1 1824 | resolution: "has-unicode@npm:2.0.1" 1825 | checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 1826 | languageName: node 1827 | linkType: hard 1828 | 1829 | "has@npm:^1.0.3": 1830 | version: 1.0.3 1831 | resolution: "has@npm:1.0.3" 1832 | dependencies: 1833 | function-bind: ^1.1.1 1834 | checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 1835 | languageName: node 1836 | linkType: hard 1837 | 1838 | "html-escaper@npm:^2.0.0": 1839 | version: 2.0.2 1840 | resolution: "html-escaper@npm:2.0.2" 1841 | checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 1842 | languageName: node 1843 | linkType: hard 1844 | 1845 | "http-cache-semantics@npm:^4.1.0": 1846 | version: 4.1.0 1847 | resolution: "http-cache-semantics@npm:4.1.0" 1848 | checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42 1849 | languageName: node 1850 | linkType: hard 1851 | 1852 | "http-proxy-agent@npm:^5.0.0": 1853 | version: 5.0.0 1854 | resolution: "http-proxy-agent@npm:5.0.0" 1855 | dependencies: 1856 | "@tootallnate/once": 2 1857 | agent-base: 6 1858 | debug: 4 1859 | checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 1860 | languageName: node 1861 | linkType: hard 1862 | 1863 | "https-proxy-agent@npm:^5.0.0": 1864 | version: 5.0.1 1865 | resolution: "https-proxy-agent@npm:5.0.1" 1866 | dependencies: 1867 | agent-base: 6 1868 | debug: 4 1869 | checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 1870 | languageName: node 1871 | linkType: hard 1872 | 1873 | "human-signals@npm:^2.1.0": 1874 | version: 2.1.0 1875 | resolution: "human-signals@npm:2.1.0" 1876 | checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 1877 | languageName: node 1878 | linkType: hard 1879 | 1880 | "humanize-ms@npm:^1.2.1": 1881 | version: 1.2.1 1882 | resolution: "humanize-ms@npm:1.2.1" 1883 | dependencies: 1884 | ms: ^2.0.0 1885 | checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 1886 | languageName: node 1887 | linkType: hard 1888 | 1889 | "iconv-lite@npm:^0.6.2": 1890 | version: 0.6.3 1891 | resolution: "iconv-lite@npm:0.6.3" 1892 | dependencies: 1893 | safer-buffer: ">= 2.1.2 < 3.0.0" 1894 | checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf 1895 | languageName: node 1896 | linkType: hard 1897 | 1898 | "import-local@npm:^3.0.2": 1899 | version: 3.1.0 1900 | resolution: "import-local@npm:3.1.0" 1901 | dependencies: 1902 | pkg-dir: ^4.2.0 1903 | resolve-cwd: ^3.0.0 1904 | bin: 1905 | import-local-fixture: fixtures/cli.js 1906 | checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd 1907 | languageName: node 1908 | linkType: hard 1909 | 1910 | "imurmurhash@npm:^0.1.4": 1911 | version: 0.1.4 1912 | resolution: "imurmurhash@npm:0.1.4" 1913 | checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 1914 | languageName: node 1915 | linkType: hard 1916 | 1917 | "indent-string@npm:^4.0.0": 1918 | version: 4.0.0 1919 | resolution: "indent-string@npm:4.0.0" 1920 | checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 1921 | languageName: node 1922 | linkType: hard 1923 | 1924 | "infer-owner@npm:^1.0.4": 1925 | version: 1.0.4 1926 | resolution: "infer-owner@npm:1.0.4" 1927 | checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 1928 | languageName: node 1929 | linkType: hard 1930 | 1931 | "inflight@npm:^1.0.4": 1932 | version: 1.0.6 1933 | resolution: "inflight@npm:1.0.6" 1934 | dependencies: 1935 | once: ^1.3.0 1936 | wrappy: 1 1937 | checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd 1938 | languageName: node 1939 | linkType: hard 1940 | 1941 | "inherits@npm:2, inherits@npm:^2.0.3": 1942 | version: 2.0.4 1943 | resolution: "inherits@npm:2.0.4" 1944 | checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 1945 | languageName: node 1946 | linkType: hard 1947 | 1948 | "ip@npm:^2.0.0": 1949 | version: 2.0.0 1950 | resolution: "ip@npm:2.0.0" 1951 | checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 1952 | languageName: node 1953 | linkType: hard 1954 | 1955 | "is-arrayish@npm:^0.2.1": 1956 | version: 0.2.1 1957 | resolution: "is-arrayish@npm:0.2.1" 1958 | checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f 1959 | languageName: node 1960 | linkType: hard 1961 | 1962 | "is-core-module@npm:^2.9.0": 1963 | version: 2.11.0 1964 | resolution: "is-core-module@npm:2.11.0" 1965 | dependencies: 1966 | has: ^1.0.3 1967 | checksum: f96fd490c6b48eb4f6d10ba815c6ef13f410b0ba6f7eb8577af51697de523e5f2cd9de1c441b51d27251bf0e4aebc936545e33a5d26d5d51f28d25698d4a8bab 1968 | languageName: node 1969 | linkType: hard 1970 | 1971 | "is-fullwidth-code-point@npm:^3.0.0": 1972 | version: 3.0.0 1973 | resolution: "is-fullwidth-code-point@npm:3.0.0" 1974 | checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 1975 | languageName: node 1976 | linkType: hard 1977 | 1978 | "is-generator-fn@npm:^2.0.0": 1979 | version: 2.1.0 1980 | resolution: "is-generator-fn@npm:2.1.0" 1981 | checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 1982 | languageName: node 1983 | linkType: hard 1984 | 1985 | "is-lambda@npm:^1.0.1": 1986 | version: 1.0.1 1987 | resolution: "is-lambda@npm:1.0.1" 1988 | checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 1989 | languageName: node 1990 | linkType: hard 1991 | 1992 | "is-number@npm:^7.0.0": 1993 | version: 7.0.0 1994 | resolution: "is-number@npm:7.0.0" 1995 | checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a 1996 | languageName: node 1997 | linkType: hard 1998 | 1999 | "is-stream@npm:^2.0.0": 2000 | version: 2.0.1 2001 | resolution: "is-stream@npm:2.0.1" 2002 | checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 2003 | languageName: node 2004 | linkType: hard 2005 | 2006 | "isexe@npm:^2.0.0": 2007 | version: 2.0.0 2008 | resolution: "isexe@npm:2.0.0" 2009 | checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 2010 | languageName: node 2011 | linkType: hard 2012 | 2013 | "istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": 2014 | version: 3.2.0 2015 | resolution: "istanbul-lib-coverage@npm:3.2.0" 2016 | checksum: a2a545033b9d56da04a8571ed05c8120bf10e9bce01cf8633a3a2b0d1d83dff4ac4fe78d6d5673c27fc29b7f21a41d75f83a36be09f82a61c367b56aa73c1ff9 2017 | languageName: node 2018 | linkType: hard 2019 | 2020 | "istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": 2021 | version: 5.2.1 2022 | resolution: "istanbul-lib-instrument@npm:5.2.1" 2023 | dependencies: 2024 | "@babel/core": ^7.12.3 2025 | "@babel/parser": ^7.14.7 2026 | "@istanbuljs/schema": ^0.1.2 2027 | istanbul-lib-coverage: ^3.2.0 2028 | semver: ^6.3.0 2029 | checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 2030 | languageName: node 2031 | linkType: hard 2032 | 2033 | "istanbul-lib-report@npm:^3.0.0": 2034 | version: 3.0.0 2035 | resolution: "istanbul-lib-report@npm:3.0.0" 2036 | dependencies: 2037 | istanbul-lib-coverage: ^3.0.0 2038 | make-dir: ^3.0.0 2039 | supports-color: ^7.1.0 2040 | checksum: 3f29eb3f53c59b987386e07fe772d24c7f58c6897f34c9d7a296f4000de7ae3de9eb95c3de3df91dc65b134c84dee35c54eee572a56243e8907c48064e34ff1b 2041 | languageName: node 2042 | linkType: hard 2043 | 2044 | "istanbul-lib-source-maps@npm:^4.0.0": 2045 | version: 4.0.1 2046 | resolution: "istanbul-lib-source-maps@npm:4.0.1" 2047 | dependencies: 2048 | debug: ^4.1.1 2049 | istanbul-lib-coverage: ^3.0.0 2050 | source-map: ^0.6.1 2051 | checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 2052 | languageName: node 2053 | linkType: hard 2054 | 2055 | "istanbul-reports@npm:^3.1.3": 2056 | version: 3.1.5 2057 | resolution: "istanbul-reports@npm:3.1.5" 2058 | dependencies: 2059 | html-escaper: ^2.0.0 2060 | istanbul-lib-report: ^3.0.0 2061 | checksum: 7867228f83ed39477b188ea07e7ccb9b4f5320b6f73d1db93a0981b7414fa4ef72d3f80c4692c442f90fc250d9406e71d8d7ab65bb615cb334e6292b73192b89 2062 | languageName: node 2063 | linkType: hard 2064 | 2065 | "jest-changed-files@npm:^29.2.0": 2066 | version: 29.2.0 2067 | resolution: "jest-changed-files@npm:29.2.0" 2068 | dependencies: 2069 | execa: ^5.0.0 2070 | p-limit: ^3.1.0 2071 | checksum: 8ad8290324db1de2ee3c9443d3e3fbfdcb6d72ec7054c5796be2854b2bc239dea38a7c797c8c9c2bd959f539d44305790f2f75b18f3046b04317ed77c7480cb1 2072 | languageName: node 2073 | linkType: hard 2074 | 2075 | "jest-circus@npm:^29.3.1": 2076 | version: 29.3.1 2077 | resolution: "jest-circus@npm:29.3.1" 2078 | dependencies: 2079 | "@jest/environment": ^29.3.1 2080 | "@jest/expect": ^29.3.1 2081 | "@jest/test-result": ^29.3.1 2082 | "@jest/types": ^29.3.1 2083 | "@types/node": "*" 2084 | chalk: ^4.0.0 2085 | co: ^4.6.0 2086 | dedent: ^0.7.0 2087 | is-generator-fn: ^2.0.0 2088 | jest-each: ^29.3.1 2089 | jest-matcher-utils: ^29.3.1 2090 | jest-message-util: ^29.3.1 2091 | jest-runtime: ^29.3.1 2092 | jest-snapshot: ^29.3.1 2093 | jest-util: ^29.3.1 2094 | p-limit: ^3.1.0 2095 | pretty-format: ^29.3.1 2096 | slash: ^3.0.0 2097 | stack-utils: ^2.0.3 2098 | checksum: 125710debd998ad9693893e7c1235e271b79f104033b8169d82afe0bc0d883f8f5245feef87adcbb22ad27ff749fd001aa998d11a132774b03b4e2b8af77d5d8 2099 | languageName: node 2100 | linkType: hard 2101 | 2102 | "jest-cli@npm:^29.3.1": 2103 | version: 29.3.1 2104 | resolution: "jest-cli@npm:29.3.1" 2105 | dependencies: 2106 | "@jest/core": ^29.3.1 2107 | "@jest/test-result": ^29.3.1 2108 | "@jest/types": ^29.3.1 2109 | chalk: ^4.0.0 2110 | exit: ^0.1.2 2111 | graceful-fs: ^4.2.9 2112 | import-local: ^3.0.2 2113 | jest-config: ^29.3.1 2114 | jest-util: ^29.3.1 2115 | jest-validate: ^29.3.1 2116 | prompts: ^2.0.1 2117 | yargs: ^17.3.1 2118 | peerDependencies: 2119 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 2120 | peerDependenciesMeta: 2121 | node-notifier: 2122 | optional: true 2123 | bin: 2124 | jest: bin/jest.js 2125 | checksum: 829895d33060042443bd1e9e87eb68993773d74f2c8a9b863acf53cece39d227ae0e7d76df2e9c5934c414bdf70ce398a34b3122cfe22164acb2499a74d7288d 2126 | languageName: node 2127 | linkType: hard 2128 | 2129 | "jest-config@npm:^29.3.1": 2130 | version: 29.3.1 2131 | resolution: "jest-config@npm:29.3.1" 2132 | dependencies: 2133 | "@babel/core": ^7.11.6 2134 | "@jest/test-sequencer": ^29.3.1 2135 | "@jest/types": ^29.3.1 2136 | babel-jest: ^29.3.1 2137 | chalk: ^4.0.0 2138 | ci-info: ^3.2.0 2139 | deepmerge: ^4.2.2 2140 | glob: ^7.1.3 2141 | graceful-fs: ^4.2.9 2142 | jest-circus: ^29.3.1 2143 | jest-environment-node: ^29.3.1 2144 | jest-get-type: ^29.2.0 2145 | jest-regex-util: ^29.2.0 2146 | jest-resolve: ^29.3.1 2147 | jest-runner: ^29.3.1 2148 | jest-util: ^29.3.1 2149 | jest-validate: ^29.3.1 2150 | micromatch: ^4.0.4 2151 | parse-json: ^5.2.0 2152 | pretty-format: ^29.3.1 2153 | slash: ^3.0.0 2154 | strip-json-comments: ^3.1.1 2155 | peerDependencies: 2156 | "@types/node": "*" 2157 | ts-node: ">=9.0.0" 2158 | peerDependenciesMeta: 2159 | "@types/node": 2160 | optional: true 2161 | ts-node: 2162 | optional: true 2163 | checksum: 6e663f04ae1024a53a4c2c744499b4408ca9a8b74381dd5e31b11bb3c7393311ecff0fb61b06287768709eb2c9e5a2fd166d258f5a9123abbb4c5812f99c12fe 2164 | languageName: node 2165 | linkType: hard 2166 | 2167 | "jest-diff@npm:^29.3.1": 2168 | version: 29.3.1 2169 | resolution: "jest-diff@npm:29.3.1" 2170 | dependencies: 2171 | chalk: ^4.0.0 2172 | diff-sequences: ^29.3.1 2173 | jest-get-type: ^29.2.0 2174 | pretty-format: ^29.3.1 2175 | checksum: ac5c09745f2b1897e6f53216acaf6ed44fc4faed8e8df053ff4ac3db5d2a1d06a17b876e49faaa15c8a7a26f5671bcbed0a93781dcc2835f781c79a716a591a9 2176 | languageName: node 2177 | linkType: hard 2178 | 2179 | "jest-docblock@npm:^29.2.0": 2180 | version: 29.2.0 2181 | resolution: "jest-docblock@npm:29.2.0" 2182 | dependencies: 2183 | detect-newline: ^3.0.0 2184 | checksum: b3f1227b7d73fc9e4952180303475cf337b36fa65c7f730ac92f0580f1c08439983262fee21cf3dba11429aa251b4eee1e3bc74796c5777116b400d78f9d2bbe 2185 | languageName: node 2186 | linkType: hard 2187 | 2188 | "jest-each@npm:^29.3.1": 2189 | version: 29.3.1 2190 | resolution: "jest-each@npm:29.3.1" 2191 | dependencies: 2192 | "@jest/types": ^29.3.1 2193 | chalk: ^4.0.0 2194 | jest-get-type: ^29.2.0 2195 | jest-util: ^29.3.1 2196 | pretty-format: ^29.3.1 2197 | checksum: 16d51ef8f96fba44a3479f1c6f7672027e3b39236dc4e41217c38fe60a3b66b022ffcee72f8835a442f7a8a0a65980a93fb8e73a9782d192452526e442ad049a 2198 | languageName: node 2199 | linkType: hard 2200 | 2201 | "jest-environment-node@npm:^29.3.1": 2202 | version: 29.3.1 2203 | resolution: "jest-environment-node@npm:29.3.1" 2204 | dependencies: 2205 | "@jest/environment": ^29.3.1 2206 | "@jest/fake-timers": ^29.3.1 2207 | "@jest/types": ^29.3.1 2208 | "@types/node": "*" 2209 | jest-mock: ^29.3.1 2210 | jest-util: ^29.3.1 2211 | checksum: 16d4854bd2d35501bd4862ca069baf27ce9f5fd7642fdcab9d2dab49acd28c082d0c8882bf2bb28ed7bbaada486da577c814c9688ddc62d1d9f74a954fde996a 2212 | languageName: node 2213 | linkType: hard 2214 | 2215 | "jest-get-type@npm:^29.2.0": 2216 | version: 29.2.0 2217 | resolution: "jest-get-type@npm:29.2.0" 2218 | checksum: e396fd880a30d08940ed8a8e43cd4595db1b8ff09649018eb358ca701811137556bae82626af73459e3c0f8c5e972ed1e57fd3b1537b13a260893dac60a90942 2219 | languageName: node 2220 | linkType: hard 2221 | 2222 | "jest-haste-map@npm:^29.3.1": 2223 | version: 29.3.1 2224 | resolution: "jest-haste-map@npm:29.3.1" 2225 | dependencies: 2226 | "@jest/types": ^29.3.1 2227 | "@types/graceful-fs": ^4.1.3 2228 | "@types/node": "*" 2229 | anymatch: ^3.0.3 2230 | fb-watchman: ^2.0.0 2231 | fsevents: ^2.3.2 2232 | graceful-fs: ^4.2.9 2233 | jest-regex-util: ^29.2.0 2234 | jest-util: ^29.3.1 2235 | jest-worker: ^29.3.1 2236 | micromatch: ^4.0.4 2237 | walker: ^1.0.8 2238 | dependenciesMeta: 2239 | fsevents: 2240 | optional: true 2241 | checksum: 97ea26af0c28a2ba568c9c65d06211487bbcd501cb4944f9d55e07fd2b00ad96653ea2cc9033f3d5b7dc1feda33e47ae9cc56b400191ea4533be213c9f82e67c 2242 | languageName: node 2243 | linkType: hard 2244 | 2245 | "jest-leak-detector@npm:^29.3.1": 2246 | version: 29.3.1 2247 | resolution: "jest-leak-detector@npm:29.3.1" 2248 | dependencies: 2249 | jest-get-type: ^29.2.0 2250 | pretty-format: ^29.3.1 2251 | checksum: 0dd8ed31ae0b5a3d14f13f567ca8567f2663dd2d540d1e55511d3b3fd7f80a1d075392179674ebe9fab9be0b73678bf4d2f8bbbc0f4bdd52b9815259194da559 2252 | languageName: node 2253 | linkType: hard 2254 | 2255 | "jest-matcher-utils@npm:^29.3.1": 2256 | version: 29.3.1 2257 | resolution: "jest-matcher-utils@npm:29.3.1" 2258 | dependencies: 2259 | chalk: ^4.0.0 2260 | jest-diff: ^29.3.1 2261 | jest-get-type: ^29.2.0 2262 | pretty-format: ^29.3.1 2263 | checksum: 311e8d9f1e935216afc7dd8c6acf1fbda67a7415e1afb1bf72757213dfb025c1f2dc5e2c185c08064a35cdc1f2d8e40c57616666774ed1b03e57eb311c20ec77 2264 | languageName: node 2265 | linkType: hard 2266 | 2267 | "jest-message-util@npm:^29.3.1": 2268 | version: 29.3.1 2269 | resolution: "jest-message-util@npm:29.3.1" 2270 | dependencies: 2271 | "@babel/code-frame": ^7.12.13 2272 | "@jest/types": ^29.3.1 2273 | "@types/stack-utils": ^2.0.0 2274 | chalk: ^4.0.0 2275 | graceful-fs: ^4.2.9 2276 | micromatch: ^4.0.4 2277 | pretty-format: ^29.3.1 2278 | slash: ^3.0.0 2279 | stack-utils: ^2.0.3 2280 | checksum: 15d0a2fca3919eb4570bbf575734780c4b9e22de6aae903c4531b346699f7deba834c6c86fe6e9a83ad17fac0f7935511cf16dce4d71a93a71ebb25f18a6e07b 2281 | languageName: node 2282 | linkType: hard 2283 | 2284 | "jest-mock@npm:^29.3.1": 2285 | version: 29.3.1 2286 | resolution: "jest-mock@npm:29.3.1" 2287 | dependencies: 2288 | "@jest/types": ^29.3.1 2289 | "@types/node": "*" 2290 | jest-util: ^29.3.1 2291 | checksum: 9098852cb2866db4a1a59f9f7581741dfc572f648e9e574a1b187fd69f5f2f6190ad387ede21e139a8b80a6a1343ecc3d6751cd2ae1ae11d7ea9fa1950390fb2 2292 | languageName: node 2293 | linkType: hard 2294 | 2295 | "jest-pnp-resolver@npm:^1.2.2": 2296 | version: 1.2.2 2297 | resolution: "jest-pnp-resolver@npm:1.2.2" 2298 | peerDependencies: 2299 | jest-resolve: "*" 2300 | peerDependenciesMeta: 2301 | jest-resolve: 2302 | optional: true 2303 | checksum: bd85dcc0e76e0eb0c3d56382ec140f08d25ff4068cda9d0e360bb78fb176cb726d0beab82dc0e8694cafd09f55fee7622b8bcb240afa5fad301f4ed3eebb4f47 2304 | languageName: node 2305 | linkType: hard 2306 | 2307 | "jest-regex-util@npm:^29.2.0": 2308 | version: 29.2.0 2309 | resolution: "jest-regex-util@npm:29.2.0" 2310 | checksum: 7c533e51c51230dac20c0d7395b19b8366cb022f7c6e08e6bcf2921626840ff90424af4c9b4689f02f0addfc9b071c4cd5f8f7a989298a4c8e0f9c94418ca1c3 2311 | languageName: node 2312 | linkType: hard 2313 | 2314 | "jest-resolve-dependencies@npm:^29.3.1": 2315 | version: 29.3.1 2316 | resolution: "jest-resolve-dependencies@npm:29.3.1" 2317 | dependencies: 2318 | jest-regex-util: ^29.2.0 2319 | jest-snapshot: ^29.3.1 2320 | checksum: 6ec4727a87c6e7954e93de9949ab9967b340ee2f07626144c273355f05a2b65fa47eb8dece2d6e5f4fd99cdb893510a3540aa5e14ba443f70b3feb63f6f98982 2321 | languageName: node 2322 | linkType: hard 2323 | 2324 | "jest-resolve@npm:^29.3.1": 2325 | version: 29.3.1 2326 | resolution: "jest-resolve@npm:29.3.1" 2327 | dependencies: 2328 | chalk: ^4.0.0 2329 | graceful-fs: ^4.2.9 2330 | jest-haste-map: ^29.3.1 2331 | jest-pnp-resolver: ^1.2.2 2332 | jest-util: ^29.3.1 2333 | jest-validate: ^29.3.1 2334 | resolve: ^1.20.0 2335 | resolve.exports: ^1.1.0 2336 | slash: ^3.0.0 2337 | checksum: 0dea22ed625e07b8bfee52dea1391d3a4b453c1a0c627a0fa7c22e44bb48e1c289afe6f3c316def70753773f099c4e8f436c7a2cc12fcc6c7dd6da38cba2cd5f 2338 | languageName: node 2339 | linkType: hard 2340 | 2341 | "jest-runner@npm:^29.3.1": 2342 | version: 29.3.1 2343 | resolution: "jest-runner@npm:29.3.1" 2344 | dependencies: 2345 | "@jest/console": ^29.3.1 2346 | "@jest/environment": ^29.3.1 2347 | "@jest/test-result": ^29.3.1 2348 | "@jest/transform": ^29.3.1 2349 | "@jest/types": ^29.3.1 2350 | "@types/node": "*" 2351 | chalk: ^4.0.0 2352 | emittery: ^0.13.1 2353 | graceful-fs: ^4.2.9 2354 | jest-docblock: ^29.2.0 2355 | jest-environment-node: ^29.3.1 2356 | jest-haste-map: ^29.3.1 2357 | jest-leak-detector: ^29.3.1 2358 | jest-message-util: ^29.3.1 2359 | jest-resolve: ^29.3.1 2360 | jest-runtime: ^29.3.1 2361 | jest-util: ^29.3.1 2362 | jest-watcher: ^29.3.1 2363 | jest-worker: ^29.3.1 2364 | p-limit: ^3.1.0 2365 | source-map-support: 0.5.13 2366 | checksum: 61ad445d8a5f29573332f27a21fc942fb0d2a82bf901a0ea1035bf3bd7f349d1e425f71f54c3a3f89b292a54872c3248d395a2829d987f26b6025b15530ea5d2 2367 | languageName: node 2368 | linkType: hard 2369 | 2370 | "jest-runtime@npm:^29.3.1": 2371 | version: 29.3.1 2372 | resolution: "jest-runtime@npm:29.3.1" 2373 | dependencies: 2374 | "@jest/environment": ^29.3.1 2375 | "@jest/fake-timers": ^29.3.1 2376 | "@jest/globals": ^29.3.1 2377 | "@jest/source-map": ^29.2.0 2378 | "@jest/test-result": ^29.3.1 2379 | "@jest/transform": ^29.3.1 2380 | "@jest/types": ^29.3.1 2381 | "@types/node": "*" 2382 | chalk: ^4.0.0 2383 | cjs-module-lexer: ^1.0.0 2384 | collect-v8-coverage: ^1.0.0 2385 | glob: ^7.1.3 2386 | graceful-fs: ^4.2.9 2387 | jest-haste-map: ^29.3.1 2388 | jest-message-util: ^29.3.1 2389 | jest-mock: ^29.3.1 2390 | jest-regex-util: ^29.2.0 2391 | jest-resolve: ^29.3.1 2392 | jest-snapshot: ^29.3.1 2393 | jest-util: ^29.3.1 2394 | slash: ^3.0.0 2395 | strip-bom: ^4.0.0 2396 | checksum: 82f27b48f000be074064a854e16e768f9453e9b791d8c5f9316606c37f871b5b10f70544c1b218ab9784f00bd972bb77f868c5ab6752c275be2cd219c351f5a7 2397 | languageName: node 2398 | linkType: hard 2399 | 2400 | "jest-snapshot@npm:^29.3.1": 2401 | version: 29.3.1 2402 | resolution: "jest-snapshot@npm:29.3.1" 2403 | dependencies: 2404 | "@babel/core": ^7.11.6 2405 | "@babel/generator": ^7.7.2 2406 | "@babel/plugin-syntax-jsx": ^7.7.2 2407 | "@babel/plugin-syntax-typescript": ^7.7.2 2408 | "@babel/traverse": ^7.7.2 2409 | "@babel/types": ^7.3.3 2410 | "@jest/expect-utils": ^29.3.1 2411 | "@jest/transform": ^29.3.1 2412 | "@jest/types": ^29.3.1 2413 | "@types/babel__traverse": ^7.0.6 2414 | "@types/prettier": ^2.1.5 2415 | babel-preset-current-node-syntax: ^1.0.0 2416 | chalk: ^4.0.0 2417 | expect: ^29.3.1 2418 | graceful-fs: ^4.2.9 2419 | jest-diff: ^29.3.1 2420 | jest-get-type: ^29.2.0 2421 | jest-haste-map: ^29.3.1 2422 | jest-matcher-utils: ^29.3.1 2423 | jest-message-util: ^29.3.1 2424 | jest-util: ^29.3.1 2425 | natural-compare: ^1.4.0 2426 | pretty-format: ^29.3.1 2427 | semver: ^7.3.5 2428 | checksum: d7d0077935e78c353c828be78ccb092e12ba7622cb0577f21641fadd728ae63a7c1f4a0d8113bfb38db3453a64bfa232fb1cdeefe0e2b48c52ef4065b0ab75ae 2429 | languageName: node 2430 | linkType: hard 2431 | 2432 | "jest-util@npm:^29.3.1": 2433 | version: 29.3.1 2434 | resolution: "jest-util@npm:29.3.1" 2435 | dependencies: 2436 | "@jest/types": ^29.3.1 2437 | "@types/node": "*" 2438 | chalk: ^4.0.0 2439 | ci-info: ^3.2.0 2440 | graceful-fs: ^4.2.9 2441 | picomatch: ^2.2.3 2442 | checksum: f67c60f062b94d21cb60e84b3b812d64b7bfa81fe980151de5c17a74eb666042d0134e2e756d099b7606a1fcf1d633824d2e58197d01d76dde1e2dc00dfcd413 2443 | languageName: node 2444 | linkType: hard 2445 | 2446 | "jest-validate@npm:^29.3.1": 2447 | version: 29.3.1 2448 | resolution: "jest-validate@npm:29.3.1" 2449 | dependencies: 2450 | "@jest/types": ^29.3.1 2451 | camelcase: ^6.2.0 2452 | chalk: ^4.0.0 2453 | jest-get-type: ^29.2.0 2454 | leven: ^3.1.0 2455 | pretty-format: ^29.3.1 2456 | checksum: 92584f0b8ac284235f12b3b812ccbc43ef6dea080a3b98b1aa81adbe009e962d0aa6131f21c8157b30ac3d58f335961694238a93d553d1d1e02ab264c923778c 2457 | languageName: node 2458 | linkType: hard 2459 | 2460 | "jest-watcher@npm:^29.3.1": 2461 | version: 29.3.1 2462 | resolution: "jest-watcher@npm:29.3.1" 2463 | dependencies: 2464 | "@jest/test-result": ^29.3.1 2465 | "@jest/types": ^29.3.1 2466 | "@types/node": "*" 2467 | ansi-escapes: ^4.2.1 2468 | chalk: ^4.0.0 2469 | emittery: ^0.13.1 2470 | jest-util: ^29.3.1 2471 | string-length: ^4.0.1 2472 | checksum: 60d189473486c73e9d540406a30189da5a3c67bfb0fb4ad4a83991c189135ef76d929ec99284ca5a505fe4ee9349ae3c99b54d2e00363e72837b46e77dec9642 2473 | languageName: node 2474 | linkType: hard 2475 | 2476 | "jest-worker@npm:^29.3.1": 2477 | version: 29.3.1 2478 | resolution: "jest-worker@npm:29.3.1" 2479 | dependencies: 2480 | "@types/node": "*" 2481 | jest-util: ^29.3.1 2482 | merge-stream: ^2.0.0 2483 | supports-color: ^8.0.0 2484 | checksum: 38687fcbdc2b7ddc70bbb5dfc703ae095b46b3c7f206d62ecdf5f4d16e336178e217302138f3b906125576bb1cfe4cfe8d43681276fa5899d138ed9422099fb3 2485 | languageName: node 2486 | linkType: hard 2487 | 2488 | "jest@npm:^29.3.1": 2489 | version: 29.3.1 2490 | resolution: "jest@npm:29.3.1" 2491 | dependencies: 2492 | "@jest/core": ^29.3.1 2493 | "@jest/types": ^29.3.1 2494 | import-local: ^3.0.2 2495 | jest-cli: ^29.3.1 2496 | peerDependencies: 2497 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 2498 | peerDependenciesMeta: 2499 | node-notifier: 2500 | optional: true 2501 | bin: 2502 | jest: bin/jest.js 2503 | checksum: 613f4ec657b14dd84c0056b2fef1468502927fd551bef0b19d4a91576a609678fb316c6a5b5fc6120dd30dd4ff4569070ffef3cb507db9bb0260b28ddaa18d7a 2504 | languageName: node 2505 | linkType: hard 2506 | 2507 | "js-tokens@npm:^4.0.0": 2508 | version: 4.0.0 2509 | resolution: "js-tokens@npm:4.0.0" 2510 | checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 2511 | languageName: node 2512 | linkType: hard 2513 | 2514 | "js-yaml@npm:^3.13.1": 2515 | version: 3.14.1 2516 | resolution: "js-yaml@npm:3.14.1" 2517 | dependencies: 2518 | argparse: ^1.0.7 2519 | esprima: ^4.0.0 2520 | bin: 2521 | js-yaml: bin/js-yaml.js 2522 | checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c 2523 | languageName: node 2524 | linkType: hard 2525 | 2526 | "jsesc@npm:^2.5.1": 2527 | version: 2.5.2 2528 | resolution: "jsesc@npm:2.5.2" 2529 | bin: 2530 | jsesc: bin/jsesc 2531 | checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d 2532 | languageName: node 2533 | linkType: hard 2534 | 2535 | "json-parse-even-better-errors@npm:^2.3.0": 2536 | version: 2.3.1 2537 | resolution: "json-parse-even-better-errors@npm:2.3.1" 2538 | checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f 2539 | languageName: node 2540 | linkType: hard 2541 | 2542 | "json5@npm:^2.2.1": 2543 | version: 2.2.1 2544 | resolution: "json5@npm:2.2.1" 2545 | bin: 2546 | json5: lib/cli.js 2547 | checksum: 74b8a23b102a6f2bf2d224797ae553a75488b5adbaee9c9b6e5ab8b510a2fc6e38f876d4c77dea672d4014a44b2399e15f2051ac2b37b87f74c0c7602003543b 2548 | languageName: node 2549 | linkType: hard 2550 | 2551 | "kleur@npm:^3.0.3": 2552 | version: 3.0.3 2553 | resolution: "kleur@npm:3.0.3" 2554 | checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 2555 | languageName: node 2556 | linkType: hard 2557 | 2558 | "leven@npm:^3.1.0": 2559 | version: 3.1.0 2560 | resolution: "leven@npm:3.1.0" 2561 | checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 2562 | languageName: node 2563 | linkType: hard 2564 | 2565 | "lines-and-columns@npm:^1.1.6": 2566 | version: 1.2.4 2567 | resolution: "lines-and-columns@npm:1.2.4" 2568 | checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 2569 | languageName: node 2570 | linkType: hard 2571 | 2572 | "locate-path@npm:^5.0.0": 2573 | version: 5.0.0 2574 | resolution: "locate-path@npm:5.0.0" 2575 | dependencies: 2576 | p-locate: ^4.1.0 2577 | checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 2578 | languageName: node 2579 | linkType: hard 2580 | 2581 | "lru-cache@npm:^6.0.0": 2582 | version: 6.0.0 2583 | resolution: "lru-cache@npm:6.0.0" 2584 | dependencies: 2585 | yallist: ^4.0.0 2586 | checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 2587 | languageName: node 2588 | linkType: hard 2589 | 2590 | "lru-cache@npm:^7.7.1": 2591 | version: 7.14.1 2592 | resolution: "lru-cache@npm:7.14.1" 2593 | checksum: d72c6713c6a6d86836a7a6523b3f1ac6764768cca47ec99341c3e76db06aacd4764620e5e2cda719a36848785a52a70e531822dc2b33fb071fa709683746c104 2594 | languageName: node 2595 | linkType: hard 2596 | 2597 | "make-dir@npm:^3.0.0": 2598 | version: 3.1.0 2599 | resolution: "make-dir@npm:3.1.0" 2600 | dependencies: 2601 | semver: ^6.0.0 2602 | checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 2603 | languageName: node 2604 | linkType: hard 2605 | 2606 | "make-fetch-happen@npm:^10.0.3": 2607 | version: 10.2.1 2608 | resolution: "make-fetch-happen@npm:10.2.1" 2609 | dependencies: 2610 | agentkeepalive: ^4.2.1 2611 | cacache: ^16.1.0 2612 | http-cache-semantics: ^4.1.0 2613 | http-proxy-agent: ^5.0.0 2614 | https-proxy-agent: ^5.0.0 2615 | is-lambda: ^1.0.1 2616 | lru-cache: ^7.7.1 2617 | minipass: ^3.1.6 2618 | minipass-collect: ^1.0.2 2619 | minipass-fetch: ^2.0.3 2620 | minipass-flush: ^1.0.5 2621 | minipass-pipeline: ^1.2.4 2622 | negotiator: ^0.6.3 2623 | promise-retry: ^2.0.1 2624 | socks-proxy-agent: ^7.0.0 2625 | ssri: ^9.0.0 2626 | checksum: 2332eb9a8ec96f1ffeeea56ccefabcb4193693597b132cd110734d50f2928842e22b84cfa1508e921b8385cdfd06dda9ad68645fed62b50fff629a580f5fb72c 2627 | languageName: node 2628 | linkType: hard 2629 | 2630 | "makeerror@npm:1.0.12": 2631 | version: 1.0.12 2632 | resolution: "makeerror@npm:1.0.12" 2633 | dependencies: 2634 | tmpl: 1.0.5 2635 | checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 2636 | languageName: node 2637 | linkType: hard 2638 | 2639 | "mdn-data@npm:2.0.28": 2640 | version: 2.0.28 2641 | resolution: "mdn-data@npm:2.0.28" 2642 | checksum: f51d587a6ebe8e426c3376c74ea6df3e19ec8241ed8e2466c9c8a3904d5d04397199ea4f15b8d34d14524b5de926d8724ae85207984be47e165817c26e49e0aa 2643 | languageName: node 2644 | linkType: hard 2645 | 2646 | "merge-stream@npm:^2.0.0": 2647 | version: 2.0.0 2648 | resolution: "merge-stream@npm:2.0.0" 2649 | checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 2650 | languageName: node 2651 | linkType: hard 2652 | 2653 | "micromatch@npm:^4.0.4": 2654 | version: 4.0.5 2655 | resolution: "micromatch@npm:4.0.5" 2656 | dependencies: 2657 | braces: ^3.0.2 2658 | picomatch: ^2.3.1 2659 | checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc 2660 | languageName: node 2661 | linkType: hard 2662 | 2663 | "mimic-fn@npm:^2.1.0": 2664 | version: 2.1.0 2665 | resolution: "mimic-fn@npm:2.1.0" 2666 | checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a 2667 | languageName: node 2668 | linkType: hard 2669 | 2670 | "minimatch@npm:^3.0.4, minimatch@npm:^3.1.1": 2671 | version: 3.1.2 2672 | resolution: "minimatch@npm:3.1.2" 2673 | dependencies: 2674 | brace-expansion: ^1.1.7 2675 | checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a 2676 | languageName: node 2677 | linkType: hard 2678 | 2679 | "minimatch@npm:^5.0.1": 2680 | version: 5.1.0 2681 | resolution: "minimatch@npm:5.1.0" 2682 | dependencies: 2683 | brace-expansion: ^2.0.1 2684 | checksum: 15ce53d31a06361e8b7a629501b5c75491bc2b59712d53e802b1987121d91b433d73fcc5be92974fde66b2b51d8fb28d75a9ae900d249feb792bb1ba2a4f0a90 2685 | languageName: node 2686 | linkType: hard 2687 | 2688 | "minipass-collect@npm:^1.0.2": 2689 | version: 1.0.2 2690 | resolution: "minipass-collect@npm:1.0.2" 2691 | dependencies: 2692 | minipass: ^3.0.0 2693 | checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 2694 | languageName: node 2695 | linkType: hard 2696 | 2697 | "minipass-fetch@npm:^2.0.3": 2698 | version: 2.1.2 2699 | resolution: "minipass-fetch@npm:2.1.2" 2700 | dependencies: 2701 | encoding: ^0.1.13 2702 | minipass: ^3.1.6 2703 | minipass-sized: ^1.0.3 2704 | minizlib: ^2.1.2 2705 | dependenciesMeta: 2706 | encoding: 2707 | optional: true 2708 | checksum: 3f216be79164e915fc91210cea1850e488793c740534985da017a4cbc7a5ff50506956d0f73bb0cb60e4fe91be08b6b61ef35101706d3ef5da2c8709b5f08f91 2709 | languageName: node 2710 | linkType: hard 2711 | 2712 | "minipass-flush@npm:^1.0.5": 2713 | version: 1.0.5 2714 | resolution: "minipass-flush@npm:1.0.5" 2715 | dependencies: 2716 | minipass: ^3.0.0 2717 | checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf 2718 | languageName: node 2719 | linkType: hard 2720 | 2721 | "minipass-pipeline@npm:^1.2.4": 2722 | version: 1.2.4 2723 | resolution: "minipass-pipeline@npm:1.2.4" 2724 | dependencies: 2725 | minipass: ^3.0.0 2726 | checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b 2727 | languageName: node 2728 | linkType: hard 2729 | 2730 | "minipass-sized@npm:^1.0.3": 2731 | version: 1.0.3 2732 | resolution: "minipass-sized@npm:1.0.3" 2733 | dependencies: 2734 | minipass: ^3.0.0 2735 | checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 2736 | languageName: node 2737 | linkType: hard 2738 | 2739 | "minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": 2740 | version: 3.3.5 2741 | resolution: "minipass@npm:3.3.5" 2742 | dependencies: 2743 | yallist: ^4.0.0 2744 | checksum: f89f02bcaa0e0e4bb4c44ec796008e69fbca62db0aba6ead1bc57d25bdaefdf42102130f4f9ecb7d9c6b6cd35ff7b0c7b97d001d3435da8e629fb68af3aea57e 2745 | languageName: node 2746 | linkType: hard 2747 | 2748 | "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": 2749 | version: 2.1.2 2750 | resolution: "minizlib@npm:2.1.2" 2751 | dependencies: 2752 | minipass: ^3.0.0 2753 | yallist: ^4.0.0 2754 | checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 2755 | languageName: node 2756 | linkType: hard 2757 | 2758 | "mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": 2759 | version: 1.0.4 2760 | resolution: "mkdirp@npm:1.0.4" 2761 | bin: 2762 | mkdirp: bin/cmd.js 2763 | checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f 2764 | languageName: node 2765 | linkType: hard 2766 | 2767 | "ms@npm:2.1.2": 2768 | version: 2.1.2 2769 | resolution: "ms@npm:2.1.2" 2770 | checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f 2771 | languageName: node 2772 | linkType: hard 2773 | 2774 | "ms@npm:^2.0.0": 2775 | version: 2.1.3 2776 | resolution: "ms@npm:2.1.3" 2777 | checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d 2778 | languageName: node 2779 | linkType: hard 2780 | 2781 | "natural-compare@npm:^1.4.0": 2782 | version: 1.4.0 2783 | resolution: "natural-compare@npm:1.4.0" 2784 | checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d 2785 | languageName: node 2786 | linkType: hard 2787 | 2788 | "negotiator@npm:^0.6.3": 2789 | version: 0.6.3 2790 | resolution: "negotiator@npm:0.6.3" 2791 | checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 2792 | languageName: node 2793 | linkType: hard 2794 | 2795 | "node-gyp@npm:latest": 2796 | version: 9.3.0 2797 | resolution: "node-gyp@npm:9.3.0" 2798 | dependencies: 2799 | env-paths: ^2.2.0 2800 | glob: ^7.1.4 2801 | graceful-fs: ^4.2.6 2802 | make-fetch-happen: ^10.0.3 2803 | nopt: ^6.0.0 2804 | npmlog: ^6.0.0 2805 | rimraf: ^3.0.2 2806 | semver: ^7.3.5 2807 | tar: ^6.1.2 2808 | which: ^2.0.2 2809 | bin: 2810 | node-gyp: bin/node-gyp.js 2811 | checksum: 589ddd3ed967724ef425f9624bfa47cf73022640ab3eba6d556e92cdc4ddef33b63fce3a467c93b995a3f61df92eafd3c3d1e8dbe4a2c00c383334487dea99c3 2812 | languageName: node 2813 | linkType: hard 2814 | 2815 | "node-int64@npm:^0.4.0": 2816 | version: 0.4.0 2817 | resolution: "node-int64@npm:0.4.0" 2818 | checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e 2819 | languageName: node 2820 | linkType: hard 2821 | 2822 | "node-releases@npm:^2.0.6": 2823 | version: 2.0.6 2824 | resolution: "node-releases@npm:2.0.6" 2825 | checksum: e86a926dc9fbb3b41b4c4a89d998afdf140e20a4e8dbe6c0a807f7b2948b42ea97d7fd3ad4868041487b6e9ee98409829c6e4d84a734a4215dff060a7fbeb4bf 2826 | languageName: node 2827 | linkType: hard 2828 | 2829 | "nopt@npm:^6.0.0": 2830 | version: 6.0.0 2831 | resolution: "nopt@npm:6.0.0" 2832 | dependencies: 2833 | abbrev: ^1.0.0 2834 | bin: 2835 | nopt: bin/nopt.js 2836 | checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac 2837 | languageName: node 2838 | linkType: hard 2839 | 2840 | "normalize-path@npm:^3.0.0": 2841 | version: 3.0.0 2842 | resolution: "normalize-path@npm:3.0.0" 2843 | checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 2844 | languageName: node 2845 | linkType: hard 2846 | 2847 | "npm-run-path@npm:^4.0.1": 2848 | version: 4.0.1 2849 | resolution: "npm-run-path@npm:4.0.1" 2850 | dependencies: 2851 | path-key: ^3.0.0 2852 | checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 2853 | languageName: node 2854 | linkType: hard 2855 | 2856 | "npmlog@npm:^6.0.0": 2857 | version: 6.0.2 2858 | resolution: "npmlog@npm:6.0.2" 2859 | dependencies: 2860 | are-we-there-yet: ^3.0.0 2861 | console-control-strings: ^1.1.0 2862 | gauge: ^4.0.3 2863 | set-blocking: ^2.0.0 2864 | checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a 2865 | languageName: node 2866 | linkType: hard 2867 | 2868 | "nth-check@npm:^2.0.1": 2869 | version: 2.1.1 2870 | resolution: "nth-check@npm:2.1.1" 2871 | dependencies: 2872 | boolbase: ^1.0.0 2873 | checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 2874 | languageName: node 2875 | linkType: hard 2876 | 2877 | "once@npm:^1.3.0": 2878 | version: 1.4.0 2879 | resolution: "once@npm:1.4.0" 2880 | dependencies: 2881 | wrappy: 1 2882 | checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 2883 | languageName: node 2884 | linkType: hard 2885 | 2886 | "onetime@npm:^5.1.2": 2887 | version: 5.1.2 2888 | resolution: "onetime@npm:5.1.2" 2889 | dependencies: 2890 | mimic-fn: ^2.1.0 2891 | checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 2892 | languageName: node 2893 | linkType: hard 2894 | 2895 | "p-limit@npm:^2.2.0": 2896 | version: 2.3.0 2897 | resolution: "p-limit@npm:2.3.0" 2898 | dependencies: 2899 | p-try: ^2.0.0 2900 | checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 2901 | languageName: node 2902 | linkType: hard 2903 | 2904 | "p-limit@npm:^3.1.0": 2905 | version: 3.1.0 2906 | resolution: "p-limit@npm:3.1.0" 2907 | dependencies: 2908 | yocto-queue: ^0.1.0 2909 | checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 2910 | languageName: node 2911 | linkType: hard 2912 | 2913 | "p-locate@npm:^4.1.0": 2914 | version: 4.1.0 2915 | resolution: "p-locate@npm:4.1.0" 2916 | dependencies: 2917 | p-limit: ^2.2.0 2918 | checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 2919 | languageName: node 2920 | linkType: hard 2921 | 2922 | "p-map@npm:^4.0.0": 2923 | version: 4.0.0 2924 | resolution: "p-map@npm:4.0.0" 2925 | dependencies: 2926 | aggregate-error: ^3.0.0 2927 | checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c 2928 | languageName: node 2929 | linkType: hard 2930 | 2931 | "p-try@npm:^2.0.0": 2932 | version: 2.2.0 2933 | resolution: "p-try@npm:2.2.0" 2934 | checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae 2935 | languageName: node 2936 | linkType: hard 2937 | 2938 | "parse-json@npm:^5.2.0": 2939 | version: 5.2.0 2940 | resolution: "parse-json@npm:5.2.0" 2941 | dependencies: 2942 | "@babel/code-frame": ^7.0.0 2943 | error-ex: ^1.3.1 2944 | json-parse-even-better-errors: ^2.3.0 2945 | lines-and-columns: ^1.1.6 2946 | checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 2947 | languageName: node 2948 | linkType: hard 2949 | 2950 | "path-exists@npm:^4.0.0": 2951 | version: 4.0.0 2952 | resolution: "path-exists@npm:4.0.0" 2953 | checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 2954 | languageName: node 2955 | linkType: hard 2956 | 2957 | "path-is-absolute@npm:^1.0.0": 2958 | version: 1.0.1 2959 | resolution: "path-is-absolute@npm:1.0.1" 2960 | checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 2961 | languageName: node 2962 | linkType: hard 2963 | 2964 | "path-key@npm:^3.0.0, path-key@npm:^3.1.0": 2965 | version: 3.1.1 2966 | resolution: "path-key@npm:3.1.1" 2967 | checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 2968 | languageName: node 2969 | linkType: hard 2970 | 2971 | "path-parse@npm:^1.0.7": 2972 | version: 1.0.7 2973 | resolution: "path-parse@npm:1.0.7" 2974 | checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a 2975 | languageName: node 2976 | linkType: hard 2977 | 2978 | "picocolors@npm:^1.0.0": 2979 | version: 1.0.0 2980 | resolution: "picocolors@npm:1.0.0" 2981 | checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 2982 | languageName: node 2983 | linkType: hard 2984 | 2985 | "picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": 2986 | version: 2.3.1 2987 | resolution: "picomatch@npm:2.3.1" 2988 | checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf 2989 | languageName: node 2990 | linkType: hard 2991 | 2992 | "pirates@npm:^4.0.4": 2993 | version: 4.0.5 2994 | resolution: "pirates@npm:4.0.5" 2995 | checksum: c9994e61b85260bec6c4fc0307016340d9b0c4f4b6550a957afaaff0c9b1ad58fbbea5cfcf083860a25cb27a375442e2b0edf52e2e1e40e69934e08dcc52d227 2996 | languageName: node 2997 | linkType: hard 2998 | 2999 | "pkg-dir@npm:^4.2.0": 3000 | version: 4.2.0 3001 | resolution: "pkg-dir@npm:4.2.0" 3002 | dependencies: 3003 | find-up: ^4.0.0 3004 | checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 3005 | languageName: node 3006 | linkType: hard 3007 | 3008 | "prettier@npm:^2.7.1": 3009 | version: 2.7.1 3010 | resolution: "prettier@npm:2.7.1" 3011 | bin: 3012 | prettier: bin-prettier.js 3013 | checksum: 55a4409182260866ab31284d929b3cb961e5fdb91fe0d2e099dac92eaecec890f36e524b4c19e6ceae839c99c6d7195817579cdffc8e2c80da0cb794463a748b 3014 | languageName: node 3015 | linkType: hard 3016 | 3017 | "pretty-format@npm:^29.3.1": 3018 | version: 29.3.1 3019 | resolution: "pretty-format@npm:29.3.1" 3020 | dependencies: 3021 | "@jest/schemas": ^29.0.0 3022 | ansi-styles: ^5.0.0 3023 | react-is: ^18.0.0 3024 | checksum: 9917a0bb859cd7a24a343363f70d5222402c86d10eb45bcc2f77b23a4e67586257390e959061aec22762a782fe6bafb59bf34eb94527bc2e5d211afdb287eb4e 3025 | languageName: node 3026 | linkType: hard 3027 | 3028 | "promise-inflight@npm:^1.0.1": 3029 | version: 1.0.1 3030 | resolution: "promise-inflight@npm:1.0.1" 3031 | checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 3032 | languageName: node 3033 | linkType: hard 3034 | 3035 | "promise-retry@npm:^2.0.1": 3036 | version: 2.0.1 3037 | resolution: "promise-retry@npm:2.0.1" 3038 | dependencies: 3039 | err-code: ^2.0.2 3040 | retry: ^0.12.0 3041 | checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 3042 | languageName: node 3043 | linkType: hard 3044 | 3045 | "prompts@npm:^2.0.1": 3046 | version: 2.4.2 3047 | resolution: "prompts@npm:2.4.2" 3048 | dependencies: 3049 | kleur: ^3.0.3 3050 | sisteransi: ^1.0.5 3051 | checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d 3052 | languageName: node 3053 | linkType: hard 3054 | 3055 | "react-is@npm:^18.0.0": 3056 | version: 18.2.0 3057 | resolution: "react-is@npm:18.2.0" 3058 | checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e 3059 | languageName: node 3060 | linkType: hard 3061 | 3062 | "readable-stream@npm:^3.6.0": 3063 | version: 3.6.0 3064 | resolution: "readable-stream@npm:3.6.0" 3065 | dependencies: 3066 | inherits: ^2.0.3 3067 | string_decoder: ^1.1.1 3068 | util-deprecate: ^1.0.1 3069 | checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8 3070 | languageName: node 3071 | linkType: hard 3072 | 3073 | "require-directory@npm:^2.1.1": 3074 | version: 2.1.1 3075 | resolution: "require-directory@npm:2.1.1" 3076 | checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 3077 | languageName: node 3078 | linkType: hard 3079 | 3080 | "resolve-cwd@npm:^3.0.0": 3081 | version: 3.0.0 3082 | resolution: "resolve-cwd@npm:3.0.0" 3083 | dependencies: 3084 | resolve-from: ^5.0.0 3085 | checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 3086 | languageName: node 3087 | linkType: hard 3088 | 3089 | "resolve-from@npm:^5.0.0": 3090 | version: 5.0.0 3091 | resolution: "resolve-from@npm:5.0.0" 3092 | checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf 3093 | languageName: node 3094 | linkType: hard 3095 | 3096 | "resolve.exports@npm:^1.1.0": 3097 | version: 1.1.0 3098 | resolution: "resolve.exports@npm:1.1.0" 3099 | checksum: 52865af8edb088f6c7759a328584a5de6b226754f004b742523adcfe398cfbc4559515104bc2ae87b8e78b1e4de46c9baec400b3fb1f7d517b86d2d48a098a2d 3100 | languageName: node 3101 | linkType: hard 3102 | 3103 | "resolve@npm:^1.20.0": 3104 | version: 1.22.1 3105 | resolution: "resolve@npm:1.22.1" 3106 | dependencies: 3107 | is-core-module: ^2.9.0 3108 | path-parse: ^1.0.7 3109 | supports-preserve-symlinks-flag: ^1.0.0 3110 | bin: 3111 | resolve: bin/resolve 3112 | checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e 3113 | languageName: node 3114 | linkType: hard 3115 | 3116 | "resolve@patch:resolve@^1.20.0#~builtin": 3117 | version: 1.22.1 3118 | resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" 3119 | dependencies: 3120 | is-core-module: ^2.9.0 3121 | path-parse: ^1.0.7 3122 | supports-preserve-symlinks-flag: ^1.0.0 3123 | bin: 3124 | resolve: bin/resolve 3125 | checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b 3126 | languageName: node 3127 | linkType: hard 3128 | 3129 | "retry@npm:^0.12.0": 3130 | version: 0.12.0 3131 | resolution: "retry@npm:0.12.0" 3132 | checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c 3133 | languageName: node 3134 | linkType: hard 3135 | 3136 | "rimraf@npm:^3.0.2": 3137 | version: 3.0.2 3138 | resolution: "rimraf@npm:3.0.2" 3139 | dependencies: 3140 | glob: ^7.1.3 3141 | bin: 3142 | rimraf: bin.js 3143 | checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 3144 | languageName: node 3145 | linkType: hard 3146 | 3147 | "root-workspace-0b6124@workspace:.": 3148 | version: 0.0.0-use.local 3149 | resolution: "root-workspace-0b6124@workspace:." 3150 | dependencies: 3151 | jest: ^29.3.1 3152 | prettier: ^2.7.1 3153 | languageName: unknown 3154 | linkType: soft 3155 | 3156 | "safe-buffer@npm:~5.2.0": 3157 | version: 5.2.1 3158 | resolution: "safe-buffer@npm:5.2.1" 3159 | checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 3160 | languageName: node 3161 | linkType: hard 3162 | 3163 | "safer-buffer@npm:>= 2.1.2 < 3.0.0": 3164 | version: 2.1.2 3165 | resolution: "safer-buffer@npm:2.1.2" 3166 | checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 3167 | languageName: node 3168 | linkType: hard 3169 | 3170 | "semver@npm:^6.0.0, semver@npm:^6.3.0": 3171 | version: 6.3.0 3172 | resolution: "semver@npm:6.3.0" 3173 | bin: 3174 | semver: ./bin/semver.js 3175 | checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9 3176 | languageName: node 3177 | linkType: hard 3178 | 3179 | "semver@npm:^7.3.5": 3180 | version: 7.3.8 3181 | resolution: "semver@npm:7.3.8" 3182 | dependencies: 3183 | lru-cache: ^6.0.0 3184 | bin: 3185 | semver: bin/semver.js 3186 | checksum: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 3187 | languageName: node 3188 | linkType: hard 3189 | 3190 | "set-blocking@npm:^2.0.0": 3191 | version: 2.0.0 3192 | resolution: "set-blocking@npm:2.0.0" 3193 | checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 3194 | languageName: node 3195 | linkType: hard 3196 | 3197 | "shebang-command@npm:^2.0.0": 3198 | version: 2.0.0 3199 | resolution: "shebang-command@npm:2.0.0" 3200 | dependencies: 3201 | shebang-regex: ^3.0.0 3202 | checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa 3203 | languageName: node 3204 | linkType: hard 3205 | 3206 | "shebang-regex@npm:^3.0.0": 3207 | version: 3.0.0 3208 | resolution: "shebang-regex@npm:3.0.0" 3209 | checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 3210 | languageName: node 3211 | linkType: hard 3212 | 3213 | "signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": 3214 | version: 3.0.7 3215 | resolution: "signal-exit@npm:3.0.7" 3216 | checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 3217 | languageName: node 3218 | linkType: hard 3219 | 3220 | "sisteransi@npm:^1.0.5": 3221 | version: 1.0.5 3222 | resolution: "sisteransi@npm:1.0.5" 3223 | checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 3224 | languageName: node 3225 | linkType: hard 3226 | 3227 | "slash@npm:^3.0.0": 3228 | version: 3.0.0 3229 | resolution: "slash@npm:3.0.0" 3230 | checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c 3231 | languageName: node 3232 | linkType: hard 3233 | 3234 | "smart-buffer@npm:^4.2.0": 3235 | version: 4.2.0 3236 | resolution: "smart-buffer@npm:4.2.0" 3237 | checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b 3238 | languageName: node 3239 | linkType: hard 3240 | 3241 | "socks-proxy-agent@npm:^7.0.0": 3242 | version: 7.0.0 3243 | resolution: "socks-proxy-agent@npm:7.0.0" 3244 | dependencies: 3245 | agent-base: ^6.0.2 3246 | debug: ^4.3.3 3247 | socks: ^2.6.2 3248 | checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 3249 | languageName: node 3250 | linkType: hard 3251 | 3252 | "socks@npm:^2.6.2": 3253 | version: 2.7.1 3254 | resolution: "socks@npm:2.7.1" 3255 | dependencies: 3256 | ip: ^2.0.0 3257 | smart-buffer: ^4.2.0 3258 | checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 3259 | languageName: node 3260 | linkType: hard 3261 | 3262 | "source-map-js@npm:^1.0.1": 3263 | version: 1.0.2 3264 | resolution: "source-map-js@npm:1.0.2" 3265 | checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c 3266 | languageName: node 3267 | linkType: hard 3268 | 3269 | "source-map-support@npm:0.5.13": 3270 | version: 0.5.13 3271 | resolution: "source-map-support@npm:0.5.13" 3272 | dependencies: 3273 | buffer-from: ^1.0.0 3274 | source-map: ^0.6.0 3275 | checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 3276 | languageName: node 3277 | linkType: hard 3278 | 3279 | "source-map@npm:^0.6.0, source-map@npm:^0.6.1": 3280 | version: 0.6.1 3281 | resolution: "source-map@npm:0.6.1" 3282 | checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 3283 | languageName: node 3284 | linkType: hard 3285 | 3286 | "sprintf-js@npm:~1.0.2": 3287 | version: 1.0.3 3288 | resolution: "sprintf-js@npm:1.0.3" 3289 | checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 3290 | languageName: node 3291 | linkType: hard 3292 | 3293 | "ssri@npm:^9.0.0": 3294 | version: 9.0.1 3295 | resolution: "ssri@npm:9.0.1" 3296 | dependencies: 3297 | minipass: ^3.1.1 3298 | checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb 3299 | languageName: node 3300 | linkType: hard 3301 | 3302 | "stack-utils@npm:^2.0.3": 3303 | version: 2.0.6 3304 | resolution: "stack-utils@npm:2.0.6" 3305 | dependencies: 3306 | escape-string-regexp: ^2.0.0 3307 | checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 3308 | languageName: node 3309 | linkType: hard 3310 | 3311 | "string-length@npm:^4.0.1": 3312 | version: 4.0.2 3313 | resolution: "string-length@npm:4.0.2" 3314 | dependencies: 3315 | char-regex: ^1.0.2 3316 | strip-ansi: ^6.0.0 3317 | checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 3318 | languageName: node 3319 | linkType: hard 3320 | 3321 | "string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": 3322 | version: 4.2.3 3323 | resolution: "string-width@npm:4.2.3" 3324 | dependencies: 3325 | emoji-regex: ^8.0.0 3326 | is-fullwidth-code-point: ^3.0.0 3327 | strip-ansi: ^6.0.1 3328 | checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb 3329 | languageName: node 3330 | linkType: hard 3331 | 3332 | "string_decoder@npm:^1.1.1": 3333 | version: 1.3.0 3334 | resolution: "string_decoder@npm:1.3.0" 3335 | dependencies: 3336 | safe-buffer: ~5.2.0 3337 | checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 3338 | languageName: node 3339 | linkType: hard 3340 | 3341 | "strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": 3342 | version: 6.0.1 3343 | resolution: "strip-ansi@npm:6.0.1" 3344 | dependencies: 3345 | ansi-regex: ^5.0.1 3346 | checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c 3347 | languageName: node 3348 | linkType: hard 3349 | 3350 | "strip-bom@npm:^4.0.0": 3351 | version: 4.0.0 3352 | resolution: "strip-bom@npm:4.0.0" 3353 | checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 3354 | languageName: node 3355 | linkType: hard 3356 | 3357 | "strip-final-newline@npm:^2.0.0": 3358 | version: 2.0.0 3359 | resolution: "strip-final-newline@npm:2.0.0" 3360 | checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 3361 | languageName: node 3362 | linkType: hard 3363 | 3364 | "strip-json-comments@npm:^3.1.1": 3365 | version: 3.1.1 3366 | resolution: "strip-json-comments@npm:3.1.1" 3367 | checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 3368 | languageName: node 3369 | linkType: hard 3370 | 3371 | "supports-color@npm:^5.3.0": 3372 | version: 5.5.0 3373 | resolution: "supports-color@npm:5.5.0" 3374 | dependencies: 3375 | has-flag: ^3.0.0 3376 | checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac 3377 | languageName: node 3378 | linkType: hard 3379 | 3380 | "supports-color@npm:^7.1.0": 3381 | version: 7.2.0 3382 | resolution: "supports-color@npm:7.2.0" 3383 | dependencies: 3384 | has-flag: ^4.0.0 3385 | checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a 3386 | languageName: node 3387 | linkType: hard 3388 | 3389 | "supports-color@npm:^8.0.0": 3390 | version: 8.1.1 3391 | resolution: "supports-color@npm:8.1.1" 3392 | dependencies: 3393 | has-flag: ^4.0.0 3394 | checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 3395 | languageName: node 3396 | linkType: hard 3397 | 3398 | "supports-preserve-symlinks-flag@npm:^1.0.0": 3399 | version: 1.0.0 3400 | resolution: "supports-preserve-symlinks-flag@npm:1.0.0" 3401 | checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae 3402 | languageName: node 3403 | linkType: hard 3404 | 3405 | "svgo@npm:^3.0.1": 3406 | version: 3.0.1 3407 | resolution: "svgo@npm:3.0.1" 3408 | dependencies: 3409 | "@trysound/sax": 0.2.0 3410 | commander: ^7.2.0 3411 | css-select: ^5.1.0 3412 | css-tree: ^2.2.1 3413 | csso: ^5.0.5 3414 | picocolors: ^1.0.0 3415 | bin: 3416 | svgo: ./bin/svgo 3417 | checksum: cccc99c3fcc56ba21808ae9427a2905f182cdde0b59d417489c50377e1e3eb3aa1328d080e077e9d831e4122a886a71b8cf547e65817cbb115619af76d23d565 3418 | languageName: node 3419 | linkType: hard 3420 | 3421 | "tar@npm:^6.1.11, tar@npm:^6.1.2": 3422 | version: 6.1.12 3423 | resolution: "tar@npm:6.1.12" 3424 | dependencies: 3425 | chownr: ^2.0.0 3426 | fs-minipass: ^2.0.0 3427 | minipass: ^3.0.0 3428 | minizlib: ^2.1.1 3429 | mkdirp: ^1.0.3 3430 | yallist: ^4.0.0 3431 | checksum: 49d72e4420944e7ede2782d6b0826a6ede6cdab23c7de63470917e7a78166bc4d5b1a96279d3d79a85f1ba5a17cd37c0acbb3cbff19a07447691445b8b051c55 3432 | languageName: node 3433 | linkType: hard 3434 | 3435 | "test-exclude@npm:^6.0.0": 3436 | version: 6.0.0 3437 | resolution: "test-exclude@npm:6.0.0" 3438 | dependencies: 3439 | "@istanbuljs/schema": ^0.1.2 3440 | glob: ^7.1.4 3441 | minimatch: ^3.0.4 3442 | checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 3443 | languageName: node 3444 | linkType: hard 3445 | 3446 | "tmpl@npm:1.0.5": 3447 | version: 1.0.5 3448 | resolution: "tmpl@npm:1.0.5" 3449 | checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 3450 | languageName: node 3451 | linkType: hard 3452 | 3453 | "to-fast-properties@npm:^2.0.0": 3454 | version: 2.0.0 3455 | resolution: "to-fast-properties@npm:2.0.0" 3456 | checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 3457 | languageName: node 3458 | linkType: hard 3459 | 3460 | "to-regex-range@npm:^5.0.1": 3461 | version: 5.0.1 3462 | resolution: "to-regex-range@npm:5.0.1" 3463 | dependencies: 3464 | is-number: ^7.0.0 3465 | checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed 3466 | languageName: node 3467 | linkType: hard 3468 | 3469 | "type-detect@npm:4.0.8": 3470 | version: 4.0.8 3471 | resolution: "type-detect@npm:4.0.8" 3472 | checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 3473 | languageName: node 3474 | linkType: hard 3475 | 3476 | "type-fest@npm:^0.21.3": 3477 | version: 0.21.3 3478 | resolution: "type-fest@npm:0.21.3" 3479 | checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 3480 | languageName: node 3481 | linkType: hard 3482 | 3483 | "unique-filename@npm:^2.0.0": 3484 | version: 2.0.1 3485 | resolution: "unique-filename@npm:2.0.1" 3486 | dependencies: 3487 | unique-slug: ^3.0.0 3488 | checksum: 807acf3381aff319086b64dc7125a9a37c09c44af7620bd4f7f3247fcd5565660ac12d8b80534dcbfd067e6fe88a67e621386dd796a8af828d1337a8420a255f 3489 | languageName: node 3490 | linkType: hard 3491 | 3492 | "unique-slug@npm:^3.0.0": 3493 | version: 3.0.0 3494 | resolution: "unique-slug@npm:3.0.0" 3495 | dependencies: 3496 | imurmurhash: ^0.1.4 3497 | checksum: 49f8d915ba7f0101801b922062ee46b7953256c93ceca74303bd8e6413ae10aa7e8216556b54dc5382895e8221d04f1efaf75f945c2e4a515b4139f77aa6640c 3498 | languageName: node 3499 | linkType: hard 3500 | 3501 | "update-browserslist-db@npm:^1.0.9": 3502 | version: 1.0.10 3503 | resolution: "update-browserslist-db@npm:1.0.10" 3504 | dependencies: 3505 | escalade: ^3.1.1 3506 | picocolors: ^1.0.0 3507 | peerDependencies: 3508 | browserslist: ">= 4.21.0" 3509 | bin: 3510 | browserslist-lint: cli.js 3511 | checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 3512 | languageName: node 3513 | linkType: hard 3514 | 3515 | "util-deprecate@npm:^1.0.1": 3516 | version: 1.0.2 3517 | resolution: "util-deprecate@npm:1.0.2" 3518 | checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 3519 | languageName: node 3520 | linkType: hard 3521 | 3522 | "v8-to-istanbul@npm:^9.0.1": 3523 | version: 9.0.1 3524 | resolution: "v8-to-istanbul@npm:9.0.1" 3525 | dependencies: 3526 | "@jridgewell/trace-mapping": ^0.3.12 3527 | "@types/istanbul-lib-coverage": ^2.0.1 3528 | convert-source-map: ^1.6.0 3529 | checksum: a49c34bf0a3af0c11041a3952a2600913904a983bd1bc87148b5c033bc5c1d02d5a13620fcdbfa2c60bc582a2e2970185780f0c844b4c3a220abf405f8af6311 3530 | languageName: node 3531 | linkType: hard 3532 | 3533 | "walker@npm:^1.0.8": 3534 | version: 1.0.8 3535 | resolution: "walker@npm:1.0.8" 3536 | dependencies: 3537 | makeerror: 1.0.12 3538 | checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c 3539 | languageName: node 3540 | linkType: hard 3541 | 3542 | "which@npm:^2.0.1, which@npm:^2.0.2": 3543 | version: 2.0.2 3544 | resolution: "which@npm:2.0.2" 3545 | dependencies: 3546 | isexe: ^2.0.0 3547 | bin: 3548 | node-which: ./bin/node-which 3549 | checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 3550 | languageName: node 3551 | linkType: hard 3552 | 3553 | "wide-align@npm:^1.1.5": 3554 | version: 1.1.5 3555 | resolution: "wide-align@npm:1.1.5" 3556 | dependencies: 3557 | string-width: ^1.0.2 || 2 || 3 || 4 3558 | checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 3559 | languageName: node 3560 | linkType: hard 3561 | 3562 | "wrap-ansi@npm:^7.0.0": 3563 | version: 7.0.0 3564 | resolution: "wrap-ansi@npm:7.0.0" 3565 | dependencies: 3566 | ansi-styles: ^4.0.0 3567 | string-width: ^4.1.0 3568 | strip-ansi: ^6.0.0 3569 | checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b 3570 | languageName: node 3571 | linkType: hard 3572 | 3573 | "wrappy@npm:1": 3574 | version: 1.0.2 3575 | resolution: "wrappy@npm:1.0.2" 3576 | checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 3577 | languageName: node 3578 | linkType: hard 3579 | 3580 | "write-file-atomic@npm:^4.0.1": 3581 | version: 4.0.2 3582 | resolution: "write-file-atomic@npm:4.0.2" 3583 | dependencies: 3584 | imurmurhash: ^0.1.4 3585 | signal-exit: ^3.0.7 3586 | checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c 3587 | languageName: node 3588 | linkType: hard 3589 | 3590 | "y18n@npm:^5.0.5": 3591 | version: 5.0.8 3592 | resolution: "y18n@npm:5.0.8" 3593 | checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 3594 | languageName: node 3595 | linkType: hard 3596 | 3597 | "yallist@npm:^4.0.0": 3598 | version: 4.0.0 3599 | resolution: "yallist@npm:4.0.0" 3600 | checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 3601 | languageName: node 3602 | linkType: hard 3603 | 3604 | "yargs-parser@npm:^21.1.1": 3605 | version: 21.1.1 3606 | resolution: "yargs-parser@npm:21.1.1" 3607 | checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c 3608 | languageName: node 3609 | linkType: hard 3610 | 3611 | "yargs@npm:^17.3.1": 3612 | version: 17.6.2 3613 | resolution: "yargs@npm:17.6.2" 3614 | dependencies: 3615 | cliui: ^8.0.1 3616 | escalade: ^3.1.1 3617 | get-caller-file: ^2.0.5 3618 | require-directory: ^2.1.1 3619 | string-width: ^4.2.3 3620 | y18n: ^5.0.5 3621 | yargs-parser: ^21.1.1 3622 | checksum: 47da1b0d854fa16d45a3ded57b716b013b2179022352a5f7467409da5a04a1eef5b3b3d97a2dfc13e8bbe5f2ffc0afe3bc6a4a72f8254e60f5a4bd7947138643 3623 | languageName: node 3624 | linkType: hard 3625 | 3626 | "yocto-queue@npm:^0.1.0": 3627 | version: 0.1.0 3628 | resolution: "yocto-queue@npm:0.1.0" 3629 | checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 3630 | languageName: node 3631 | linkType: hard 3632 | --------------------------------------------------------------------------------