├── .c8rc ├── .github └── workflows │ ├── cd.yml │ └── ci.yml ├── .gitignore ├── .husky ├── commit-msg └── pre-commit ├── .npmignore ├── .prettierignore ├── .prettierrc ├── README.md ├── bench └── hypostyle.js ├── commitlint.config.js ├── lib ├── __tests__ │ └── index.ts ├── index.test-d.ts ├── index.ts ├── presets.ts └── properties.ts ├── package.json ├── pnpm-lock.yaml ├── release.config.js ├── scripts └── build.js └── tsconfig.json /.c8rc: -------------------------------------------------------------------------------- 1 | { 2 | "reporter": ["text", "lcov"] 3 | } 4 | -------------------------------------------------------------------------------- /.github/workflows/cd.yml: -------------------------------------------------------------------------------- 1 | name: CD 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | - beta 8 | 9 | env: 10 | PNPM_CACHE_FOLDER: .pnpm-store 11 | 12 | jobs: 13 | build: 14 | name: Release 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@v1 19 | - name: Setup Node.js 20 | uses: actions/setup-node@v1 21 | with: 22 | node-version: 14 23 | 24 | # pnpm stuff 25 | - name: pnpm — install 26 | run: npm i pnpm@latest -g 27 | - name: pnpm - config 28 | run: pnpm config set store-dir $PNPM_CACHE_FOLDER 29 | - name: pnpm - install 30 | run: pnpm install 31 | 32 | # build 33 | - name: lint 34 | run: pnpm lint 35 | - name: build 36 | run: pnpm build # bae — before everything else 37 | - name: test 38 | run: pnpm t 39 | 40 | - name: coveralls 41 | uses: coverallsapp/github-action@master 42 | with: 43 | github-token: ${{ secrets.GITHUB_TOKEN }} 44 | 45 | # release 46 | - name: release 47 | env: 48 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 49 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 50 | run: pnpm exec semantic-release 51 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - '**' 7 | 8 | env: 9 | PNPM_CACHE_FOLDER: .pnpm-store 10 | 11 | jobs: 12 | build: 13 | name: Test 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v1 18 | - name: Setup Node.js 19 | uses: actions/setup-node@v1 20 | with: 21 | node-version: 14 22 | 23 | # pnpm stuff 24 | - name: pnpm — install 25 | run: npm i pnpm@latest -g 26 | - name: pnpm - config 27 | run: pnpm config set store-dir $PNPM_CACHE_FOLDER 28 | - name: pnpm - install 29 | run: pnpm install 30 | 31 | # build 32 | - name: lint 33 | run: pnpm lint 34 | - name: build 35 | run: pnpm build # bae — before everything else 36 | - name: test 37 | run: pnpm t 38 | 39 | - name: coveralls 40 | uses: coverallsapp/github-action@master 41 | with: 42 | github-token: ${{ secrets.GITHUB_TOKEN }} 43 | 44 | # release 45 | - name: release 46 | env: 47 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 48 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 49 | run: pnpm exec semantic-release -d 50 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.map 3 | node_modules/ 4 | dist 5 | .nyc_output 6 | .pnpm* 7 | coverage 8 | 9 | # built files 10 | index.js 11 | presets.js 12 | index.d.ts 13 | presets.d.ts 14 | properties.d.ts 15 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | pnpm exec commitlint --edit 5 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | pnpm t && pnpm run format 5 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /bench 2 | /lib 3 | .c8rc 4 | .gitignore 5 | .prettierignore 6 | .prettierrc 7 | commitlint.config.js 8 | release.config.js 9 | tsconfig.json 10 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | demo 3 | fixtures 4 | test/fixtures 5 | dist 6 | build 7 | .nyc_output 8 | coverage 9 | pnpm-lock.yaml 10 | .pnpm* 11 | .changeset 12 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true, 4 | "printWidth": 120, 5 | "tabWidth": 2 6 | } 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # hypostyle 2 | 3 | [![npm version](https://img.shields.io/npm/v/hypostyle?style=flat&colorA=4488FF&colorB=4488FF)](https://www.npmjs.com/package/hypostyle) [![test coverage](https://img.shields.io/coveralls/github/sure-thing/hypostyle?style=flat&colorA=223355&colorB=223355)](https://coveralls.io/github/sure-thing/hypostyle?branch=main) [![npm bundle size](https://badgen.net/bundlephobia/minzip/hypostyle?color=223355&labelColor=223355)](https://bundlephobia.com/result?p=hypostyle) 4 | 5 | Minimalist [5th 6 | Generation](https://github.com/streamich/freestyler/blob/master/docs/en/generations.md#5th-generation) 7 | CSS-in-JS built for concision and extension. Fast af, powered 8 | by [nano-css](https://github.com/streamich/nano-css). 9 | 10 | ``` 11 | npm i hypostyle 12 | ``` 13 | 14 | #### Why 15 | 16 | Typical [4th 17 | gen](https://github.com/streamich/freestyler/blob/master/docs/en/generations.md#4th-generation) 18 | CSS-in-JS can be very verbose. `hypostyle` provides a way of authoring CSS in 19 | Javascript using shortcuts and abbreviations — like atomic CSS and frameworks 20 | like [Tailwind](https://tailwindcss.com/) — at a fraction of the bundle size. 21 | `hypostyle` is also framework-agnostic, meaning it can be adapted into any UI 22 | framework and _any CSS-in-JS library_ that supports style objects. 23 | 24 |
25 | Full Example 26 | 27 | ```javascript 28 | import { hypostyle } from 'hypostyle' 29 | 30 | const { css } = hypostyle({ 31 | breakpoints: ['400px', '800px', '1200px'], 32 | tokens: { 33 | color: { 34 | primary: '#ff4567', 35 | }, 36 | space: [0, 4, 8, 12, 16, 20, 24, 28, 32], 37 | }, 38 | shorthands: { 39 | c: ['color'], 40 | px: ['paddingLeft', 'paddingRight'], 41 | }, 42 | }) 43 | ``` 44 | 45 | ➕ 46 | 47 | ```javascript 48 | const classname = css({ 49 | c: 'primary', 50 | px: [4, 8], 51 | }) 52 | 53 | function Component() { 54 | return
55 | } 56 | ``` 57 | 58 | 👇 59 | 60 | ```css 61 | color: #ff4567; 62 | padding-left: 16px; 63 | padding-right: 16px; 64 | @media (min-width: 400px) { 65 | padding-left: 32px; 66 | padding-right: 32px; 67 | } 68 | ``` 69 | 70 |
71 | 72 | #### Contents 73 | 74 | - [Presets](#presets) 75 | - [Responsive Values](#responsive-values) 76 | - [Tokens & Shorthands](#tokens--shorthands) 77 | - [Macros](#macros) 78 | - [Variants](#variants) 79 | - [Writing CSS](#writing-css) 80 | 81 | # Getting Started 82 | 83 | The `hypostyle()` function is used to configure a theme and return an instance. 84 | Your theme can contain the following properties: 85 | 86 | - `tokens` - design system tokens, like colors, spacing, etc 87 | - `breakpoints` - array of breakpoint widths (optional) 88 | - `shorthands` - abbreviated properties that map to one or more CSS properties 89 | and (optionally) design tokens 90 | - `macros` - boolean properties mapped to pre-defined style objects 91 | - `variants` - named groups of pre-defined style objects 92 | - `properties` - config supported CSS properties 93 | 94 | #### Presets 95 | 96 | Hypostyle includes optional preset objects with a starter set of tokens, 97 | shorthands, and macros. [Source 98 | code](https://github.com/sure-thing/hypostyle/blob/master/presets/index.js). 99 | 100 | ```javascript 101 | import * as presets from 'hypostyle/presets' 102 | 103 | const { css } = hypostyle(presets) 104 | ``` 105 | 106 | ## Responsive Values 107 | 108 | _All values can be responsive_ by passing an array of values. This array maps to 109 | the `breakpoints` array on your theme. The first value is mobile, and the 110 | remaining values are convered into `@media` breakpoints. 111 | 112 | ```javascript 113 | css({ 114 | d: ['block', 'none'], 115 | }) 116 | ``` 117 | 118 | Will generate: 119 | 120 | ```css 121 | .__3sxrbm { 122 | display: block; 123 | } 124 | @media (min-width: 400px) { 125 | .__3sxrbm { 126 | display: none; 127 | } 128 | } 129 | ``` 130 | 131 | Alternatively — and useful if you want to only specify a single breakpoint — you 132 | can use object syntax. Just use the indices as object keys: 133 | 134 | ```javascript 135 | css({ 136 | d: { 1: 'none' }, 137 | }) 138 | ``` 139 | 140 | ```css 141 | @media (min-width: 400px) { 142 | .__3sxrbm { 143 | display: none; 144 | } 145 | } 146 | ``` 147 | 148 | ## Tokens & Shorthands 149 | 150 | Tokens are either objects of named values, or arrays (scales) of values. 151 | 152 | ```javascript 153 | const { css } = hypostyle({ 154 | tokens: { 155 | color: { 156 | primary: '#ff4557', 157 | }, 158 | space: [0, 4, 8, 12, 16], 159 | }, 160 | }) 161 | ``` 162 | 163 | Tokens are associated with configurable CSS properties so that you can use 164 | token values in your styles. By default, _most_ CSS properties are supported and 165 | are self referencing. 166 | 167 | Shorthands are like shortcuts that allow you to abbreviate 168 | CSS these properties. The rest of the above example could look like this: 169 | 170 | ```javascript 171 | const { css } = hypostyle({ 172 | tokens: { 173 | color: { 174 | primary: '#ff4557', 175 | }, 176 | space: [0, 4, 8, 12, 16], 177 | }, 178 | shorthands: { 179 | bg: 'background', 180 | }, 181 | }) 182 | ``` 183 | 184 | Which can be used like this, because `background` is associated with the `color` 185 | tokens by default: 186 | 187 | ```javascript 188 | css({ bg: 'primary' }) // => { background: '#ff4567' } 189 | ``` 190 | 191 | ## Macros 192 | 193 | `macros` are simple boolean values that expand to be full style objects. The 194 | style objects can use any shorthands or tokens you have configured. 195 | 196 | ```javascript 197 | const { css } = hypostyle({ 198 | macros: { 199 | cover: { top: 0, bottom: 0, left: 0, right: 0 }, 200 | }, 201 | }) 202 | 203 | css({ cover: true }) // => { top: 0, bottom: 0, ... } 204 | ``` 205 | 206 | These are most helpful when used with JSX (via React, 207 | [hyposcript](https://github.com/sure-thing/hyposcript), or otherwise) i.e.: 208 | 209 | ```jsx 210 | 211 | ``` 212 | 213 | ## Variants 214 | 215 | Slightly higher-level than macros are variants, which allow you to define named 216 | style blocks based on property values. Again, your style blocks here can use any 217 | shorthands and tokens you've configured. 218 | 219 | ```javascript 220 | import * as presets from 'hypostyle/presets' 221 | 222 | const { css } = hypostyle({ 223 | ...presets, 224 | variants: { 225 | appearance: { 226 | link: { 227 | c: 'blue', 228 | textDecoration: 'underline', 229 | }, 230 | }, 231 | }, 232 | }) 233 | ``` 234 | 235 | Which look like this when used: 236 | 237 | ```javascript 238 | css({ appearance: 'link' }) // => { color: 'blue', textDecoration: 'underline' } 239 | ``` 240 | 241 | ## Writing CSS 242 | 243 | #### Pseudos & Nested Selectors 244 | 245 | ```javascript 246 | const link = css({ 247 | color: 'black', 248 | '&:hover': { 249 | color: 'blue', 250 | }, 251 | '.icon': { 252 | transform: 'translateX(5px)', 253 | }, 254 | }) 255 | ``` 256 | 257 | #### Global Styles 258 | 259 | Also included alongside `css` is `injectGlobal`. 260 | 261 | ```javascript 262 | import { hypostyle } from 'hypostyle' 263 | import * as presets from 'hypostyle/presets' 264 | 265 | const { injectGlobal } = hypostyle(presets) 266 | 267 | injectGlobal({ 268 | 'html, body': { 269 | c: '#333', 270 | boxSizing: 'border-box', 271 | }, 272 | }) 273 | ``` 274 | 275 | #### Keyframes 276 | 277 | Also also included alongside `css` is `keyframes`. 278 | 279 | ```javascript 280 | const { keyframes } = hypostyle(presets) 281 | 282 | const animation = keyframes({ 283 | '0%': { 284 | opacity: 0, 285 | }, 286 | '100%': { 287 | opacity: 1, 288 | }, 289 | }) 290 | 291 | css({ 292 | animation: `${animation} 1s linear infinite`, 293 | }) 294 | ``` 295 | 296 | ## Configuring CSS Properties 297 | 298 | Hypostyle comes with built-in support for _most_ CSS properties. To add 299 | additional support, have a look at the `properties.js` file for API, and pass 300 | your additional props to the constructor. Example: 301 | 302 | ```javascript 303 | const hypo = hypostyle({ 304 | ..., 305 | tokens: { 306 | ..., 307 | radii: ['4px', '8px'] 308 | }, 309 | shorthands: { 310 | ..., 311 | bTLR: 'borderTopLeftRadius' 312 | }, 313 | properties: { 314 | borderTopLeftRadius: { 315 | token: 'radii' 316 | } 317 | } 318 | }) 319 | ``` 320 | 321 | Usage: 322 | 323 | ```javascript 324 | hypo.style({ bTLR: 1 }) // => { borderTopLeftRadius: '8px' } 325 | ``` 326 | 327 | ## Server Usage 328 | 329 | `hypostyle` is isomorphic! 330 | 331 | ```javascript 332 | const { css, flush, injectGlobal } = hypostyle(presets) 333 | 334 | injectGlobal({ '*': { boxSizing: 'border-box' } }) 335 | 336 | const classname = css({ c: 'primary' }) 337 | const stylesheet = flush() 338 | 339 | const html = ` 340 | 341 | 342 | 343 | 344 | 345 | 346 |
Hello world
347 | 348 | 349 | ` 350 | ``` 351 | 352 | ### Related 353 | 354 | - [hyposcript](https://github.com/sure-thing/hyposcript) 355 | - [hypobox](https://github.com/sure-thing/hypobox) 356 | - [styled-system](https://github.com/styled-system/styled-system) 357 | - [nano-css](https://github.com/streamich/nano-css) 358 | 359 | ### License 360 | 361 | MIT License © [Sure Thing](https://github.com/sure-thing) 362 | -------------------------------------------------------------------------------- /bench/hypostyle.js: -------------------------------------------------------------------------------- 1 | const presets = require('../presets') 2 | const { hypostyle } = require('../') 3 | 4 | const hypo = hypostyle(presets) 5 | 6 | let pick = 0 7 | let explode = 0 8 | let css = 0 9 | let total = 0 10 | 11 | function process({ cx, ...rest }) { 12 | const t1 = Date.now() 13 | const cleaned = hypo.pick(rest) 14 | pick += Date.now() - t1 15 | 16 | const t2 = Date.now() 17 | const c = hypo.explode(cx) 18 | explode += Date.now() - t2 19 | 20 | const t3 = Date.now() 21 | hypo.style({ 22 | ...cleaned.styles, 23 | ...c, 24 | }) 25 | css += Date.now() - t3 26 | } 27 | 28 | const t4 = Date.now() 29 | for (let i = 0; i < 100000; i++) { 30 | process({ 31 | cx: { 32 | p: i + 'px', 33 | border: `${i}px solid blue`, 34 | d: 'block', 35 | f: true, 36 | aic: true, 37 | bg: 'tomato', 38 | }, 39 | className: 'foo', 40 | m: [i + 'px', 2], 41 | d: { 0: 'block', 1: 'flex' }, 42 | px: [1, 2, 3, 4, 5], 43 | }) 44 | } 45 | total += Date.now() - t4 46 | 47 | console.log({ pick, explode, css, total }) 48 | -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { extends: ['@commitlint/config-conventional'] } 2 | -------------------------------------------------------------------------------- /lib/__tests__/index.ts: -------------------------------------------------------------------------------- 1 | import { CssLikeObject } from 'nano-css' 2 | import { test } from 'uvu' 3 | import * as assert from 'uvu/assert' 4 | 5 | import { hypostyle } from '../' 6 | import { properties as defaultCssProps } from '../properties' 7 | import * as defaults from '../presets' 8 | 9 | const { tokens, shorthands, macros } = defaults 10 | 11 | test('explode', () => { 12 | const { explode } = hypostyle({ 13 | shorthands: { 14 | c: 'color', 15 | m: ['marginTop', 'marginBottom', 'marginLeft', 'marginRight'], 16 | d: 'display', 17 | }, 18 | }) 19 | 20 | const styles: CssLikeObject = { 21 | ...explode({ c: 'blue' }), 22 | ...explode({ color: 'red' }), 23 | ...explode({ 24 | div: { 25 | a: { 26 | c: 'tomato', 27 | }, 28 | }, 29 | }), 30 | ...explode({ 31 | m: [0, 1, 2], 32 | d: { 0: 'none', 1: 'block' }, 33 | }), 34 | } 35 | 36 | assert.equal(styles.color, 'red') 37 | assert.equal(styles.marginTop[1], 1) 38 | assert.equal(typeof styles.display, 'object') 39 | assert.equal(styles.div.a.color, 'tomato') 40 | }) 41 | 42 | test('style', () => { 43 | const { style } = hypostyle({ 44 | breakpoints: ['400px', '800px', '1200px'], 45 | tokens: { 46 | space: [0, 4, 8, 12], 47 | }, 48 | shorthands: { 49 | c: 'color', 50 | m: ['marginTop', 'marginBottom', 'marginLeft', 'marginRight'], 51 | }, 52 | }) 53 | 54 | const styles = { 55 | ...style({ c: 'blue' }), 56 | ...style({ m: [0, 1, 2] }), 57 | } 58 | 59 | assert.equal(styles.color, 'blue') 60 | assert.equal(styles.marginTop, '0px') 61 | }) 62 | 63 | for (const key of Object.keys(defaultCssProps)) { 64 | test(`props - ${key}`, () => { 65 | const { style } = hypostyle(defaults) 66 | 67 | const { unit, token } = defaultCssProps[key] 68 | const rawValue = 0 69 | const themeScale = tokens[token] 70 | const themeValue = themeScale ? themeScale[rawValue] : rawValue 71 | const parsedValue = unit ? unit(themeValue) : themeValue 72 | 73 | const styles = style({ [key]: rawValue }) 74 | 75 | assert.equal(styles[key], parsedValue) 76 | }) 77 | } 78 | 79 | for (const key of Object.keys(shorthands)) { 80 | test(`shorthands - ${key}`, () => { 81 | const { style } = hypostyle(defaults) 82 | 83 | const properties = [].concat(shorthands[key]) 84 | 85 | for (const prop of properties) { 86 | const { unit, token } = defaultCssProps[prop] 87 | const rawValue = 0 88 | const themeScale = tokens[token] 89 | const themeValue = themeScale ? themeScale[rawValue] : rawValue 90 | const parsedValue = unit ? unit(themeValue) : themeValue 91 | 92 | const styles = style({ [prop]: rawValue }) 93 | 94 | assert.equal(styles[prop], parsedValue) 95 | } 96 | }) 97 | } 98 | 99 | for (const key of Object.keys(macros)) { 100 | test(`macro - ${key}`, () => { 101 | const { style } = hypostyle(defaults) 102 | 103 | const rawStyles = style(macros[key]) 104 | const styles = style({ [key]: true }) 105 | 106 | assert.equal(rawStyles, styles) 107 | }) 108 | } 109 | 110 | test('macro - falsy', () => { 111 | const { css, flush } = hypostyle({ 112 | macros: { 113 | b: { 114 | color: 'blue', 115 | }, 116 | }, 117 | }) 118 | 119 | css({ color: 'tomato', b: true }) 120 | assert.ok(/color:blue/.test(flush())) 121 | 122 | css({ color: 'tomato', b: false }) 123 | assert.ok(/color:tomato/.test(flush())) 124 | }) 125 | 126 | test('no styles, empty', () => { 127 | const { css } = hypostyle(defaults) 128 | 129 | const cn = css({}) 130 | 131 | assert.equal('', cn) 132 | }) 133 | 134 | test('works on arbitrary props', () => { 135 | const { style } = hypostyle(defaults) 136 | 137 | const styles = style({ 138 | borderBottomRightRadius: '4px', 139 | }) 140 | 141 | assert.equal(styles.borderBottomRightRadius, '4px') 142 | }) 143 | 144 | test('non-theme matched', () => { 145 | const { style } = hypostyle(defaults) 146 | 147 | const styles = style({ 148 | c: 'other', 149 | }) 150 | 151 | assert.equal(styles.color, 'other') 152 | }) 153 | 154 | test('prop with scale and provided value', () => { 155 | const { style } = hypostyle(defaults) 156 | 157 | const styles = style({ 158 | w: '50%', 159 | }) 160 | 161 | assert.equal(styles.width, '50%') 162 | }) 163 | 164 | test('percentOrPixel heuristic', () => { 165 | const { style } = hypostyle(defaults) 166 | 167 | const styles = style({ 168 | w: 5, 169 | h: 1 / 2, 170 | }) 171 | 172 | assert.equal(styles.width, '5px') 173 | assert.equal(styles.height, '50%') 174 | }) 175 | 176 | test('px heuristic', () => { 177 | const { style } = hypostyle(defaults) 178 | 179 | const styles = style({ 180 | pt: '4px', 181 | }) 182 | 183 | assert.equal(styles.paddingTop, '4px') 184 | }) 185 | 186 | test('style as a function', () => { 187 | const { style, theme } = hypostyle(defaults) 188 | 189 | const styles = style((theme) => ({ 190 | fs: theme.tokens.fontSize[1], 191 | })) 192 | 193 | assert.equal(styles.fontSize, theme.tokens.fontSize[1]) 194 | }) 195 | 196 | test('negative values', () => { 197 | const { css, flush } = hypostyle(defaults) 198 | 199 | css({ 200 | mt: -2, 201 | }) 202 | const sheet = flush() 203 | 204 | assert.equal(/-2px/.test(sheet), true) 205 | }) 206 | 207 | test('can merge theme', () => { 208 | const { style } = hypostyle({ 209 | tokens: { 210 | color: { 211 | primary: 'blue', 212 | }, 213 | }, 214 | shorthands, 215 | }) 216 | const styles = style({ 217 | c: 'primary', 218 | }) 219 | 220 | assert.equal(styles.color, 'blue') 221 | }) 222 | 223 | test('can merge macros', () => { 224 | const { style } = hypostyle({ 225 | shorthands, 226 | macros: { 227 | button: { 228 | borderRadius: '4px', 229 | bg: 'blue', 230 | }, 231 | }, 232 | }) 233 | const styles = style({ 234 | button: true, 235 | }) 236 | 237 | assert.equal(styles.background, 'blue') 238 | assert.equal(styles.borderRadius, '4px') 239 | }) 240 | 241 | test('variants', () => { 242 | const { style } = hypostyle({ 243 | shorthands, 244 | variants: { 245 | appearance: { 246 | primary: { 247 | c: 'blue', 248 | bg: 'whitesmoke', 249 | }, 250 | }, 251 | }, 252 | }) 253 | const styles = style({ 254 | appearance: 'primary', 255 | }) 256 | 257 | assert.equal(styles.color, 'blue') 258 | assert.equal(styles.background, 'whitesmoke') 259 | }) 260 | 261 | test('breakpoints', () => { 262 | const { style } = hypostyle({ 263 | breakpoints: ['400px', '800px'], 264 | shorthands, 265 | }) 266 | const styles = style({ 267 | c: ['blue', 'red', 'green'], 268 | }) 269 | 270 | assert.equal(styles.color, 'blue') 271 | assert.equal(styles['@media (min-width: 400px)'].color, 'red') 272 | assert.equal(styles['@media (min-width: 800px)'].color, 'green') 273 | }) 274 | 275 | test('breakpoints in correct cascading order', () => { 276 | const { css, flush } = hypostyle({ 277 | breakpoints: ['400px', '800px'], 278 | shorthands, 279 | }) 280 | 281 | css({ 282 | pt: { 2: 6 }, 283 | pb: [2, 4, 6], 284 | }) 285 | 286 | const sheet = flush() 287 | 288 | assert.equal( 289 | sheet, 290 | ` 291 | .__qxaokh { 292 | padding-bottom:2px; 293 | } 294 | @media (min-width: 400px){ 295 | .__qxaokh { 296 | padding-bottom:4px; 297 | } 298 | }@media (min-width: 800px){ 299 | .__qxaokh { 300 | padding-top:6px; 301 | padding-bottom:6px; 302 | } 303 | }` 304 | ) 305 | }) 306 | 307 | test('breakpoints in other units', () => { 308 | const { style } = hypostyle({ 309 | breakpoints: ['20em', '40em'], 310 | shorthands, 311 | }) 312 | const styles = style({ 313 | c: ['blue', 'red', 'green'], 314 | }) 315 | 316 | assert.equal(styles.color, 'blue') 317 | assert.equal(styles['@media (min-width: 20em)'].color, 'red') 318 | assert.equal(styles['@media (min-width: 40em)'].color, 'green') 319 | }) 320 | 321 | test('too many breakpoints', () => { 322 | const { style } = hypostyle({ 323 | breakpoints: ['400px', '800px'], 324 | shorthands, 325 | }) 326 | const styles = style({ 327 | c: ['blue', 'red', 'green', 'tomato'], 328 | }) 329 | 330 | assert.equal(styles.color, 'blue') // could otherwise be tomato 331 | }) 332 | 333 | test('named breakpoints', () => { 334 | const { style } = hypostyle({ 335 | breakpoints: ['400px', '800px', '1200px'], 336 | shorthands, 337 | }) 338 | const styles = style({ 339 | c: { 0: 'blue', 2: 'red' }, 340 | }) 341 | 342 | assert.equal(styles.color, 'blue') 343 | assert.equal(styles['@media (min-width: 800px)'].color, 'red') 344 | }) 345 | 346 | test('breakpoints to sheet', () => { 347 | const { css, flush } = hypostyle({ 348 | breakpoints: ['400px', '800px'], 349 | shorthands, 350 | }) 351 | css({ c: ['blue', 'red', 'green'] }) 352 | const sheet = flush() 353 | 354 | assert.ok(sheet.includes('blue')) 355 | assert.ok(sheet.includes('@media (min-width: 400px')) 356 | assert.ok(sheet.includes('@media (min-width: 800px)')) 357 | }) 358 | 359 | test('pseudo and other selectors', () => { 360 | const { style } = hypostyle(defaults) 361 | 362 | const styles = style({ 363 | ':hover': { 364 | c: 'blue', 365 | p: 2, 366 | }, 367 | div: { 368 | c: 'blue', 369 | }, 370 | 'div > foo': { 371 | c: 'blue', 372 | }, 373 | }) 374 | 375 | assert.equal(styles[':hover'].color, 'blue') 376 | assert.equal(styles[':hover'].paddingTop, '8px') 377 | assert.equal(styles.div.color, 'blue') 378 | assert.equal(styles['div > foo'].color, 'blue') 379 | }) 380 | 381 | test('pseudo elements', () => { 382 | const { css, flush } = hypostyle(defaults) 383 | 384 | css({ 385 | '&::after': { 386 | content: '"a"', 387 | }, 388 | '&::before': { 389 | content: '"b"', 390 | }, 391 | }) 392 | 393 | const sheet = flush() 394 | 395 | assert.ok(/content:"a"/.test(sheet)) 396 | assert.ok(/content:"b"/.test(sheet)) 397 | }) 398 | 399 | test('pick', () => { 400 | const { pick } = hypostyle({ 401 | tokens, 402 | shorthands, 403 | macros, 404 | variants: { 405 | appearance: { 406 | primary: { 407 | c: 'blue', 408 | }, 409 | }, 410 | }, 411 | }) 412 | const { props, styles } = pick({ 413 | c: 'blue', 414 | f: true, 415 | appearance: 'primary', 416 | className: 'cx', 417 | }) 418 | 419 | assert.ok(!!styles.c) 420 | assert.ok(!!styles.f) 421 | assert.ok(!!styles.appearance) 422 | assert.ok(!!props.className) 423 | }) 424 | 425 | test('css', () => { 426 | const { css } = hypostyle(defaults) 427 | 428 | const cx = css({ c: 'blue' }) 429 | const cx2 = css({ c: 'blue' }) 430 | assert.equal(typeof cx, 'string') 431 | assert.equal(cx, cx2) 432 | }) 433 | 434 | test('flush', () => { 435 | const { css, flush } = hypostyle(defaults) 436 | const cn = css({ c: 'blue' }).trim() // remove spaces 437 | const sheet = flush() 438 | assert.ok(new RegExp(cn).test(sheet)) 439 | }) 440 | 441 | test('injectGlobal', () => { 442 | const { injectGlobal, flush } = hypostyle({}) 443 | injectGlobal({ html: { color: 'blue' } }) 444 | const sheet = flush() 445 | assert.ok(sheet.includes('color:blue')) 446 | }) 447 | 448 | test('keyframes', () => { 449 | const { css, keyframes, flush } = hypostyle(defaults) 450 | const animation = keyframes({ 451 | '0%': { 452 | transform: 'rotate(0deg)', 453 | }, 454 | '100%': { 455 | transform: 'rotate(359deg)', 456 | }, 457 | }) 458 | css({ 459 | animation: `${animation} 1s`, 460 | }) 461 | const sheet = flush() 462 | 463 | assert.ok(sheet.includes(animation)) 464 | }) 465 | 466 | test('css as a function', () => { 467 | const { css, flush } = hypostyle(defaults) 468 | 469 | css((theme) => ({ fs: theme.tokens.fontSize[1] })) 470 | 471 | const sheet = flush() 472 | 473 | assert.ok(sheet.includes('font-size:3rem')) 474 | }) 475 | 476 | test('nested elements', () => { 477 | const { css, flush } = hypostyle(defaults) 478 | 479 | const cn = css({ 480 | div: { 481 | color: 'tomato', 482 | }, 483 | }) 484 | const sheet = flush() 485 | const selector = new RegExp(`.${cn.trim()} div`) 486 | 487 | assert.equal(selector.test(sheet), true) 488 | }) 489 | 490 | test('pseudo selectors', () => { 491 | const { css, flush } = hypostyle(defaults) 492 | 493 | const cn = css({ 494 | '&:hover': { 495 | color: 'tomato', 496 | }, 497 | }) 498 | const sheet = flush() 499 | const selector = new RegExp(`.${cn.trim()}:hover`) 500 | 501 | assert.equal(selector.test(sheet), true) 502 | }) 503 | 504 | test('pseudo selectors w/ nested elements', () => { 505 | const { css, flush } = hypostyle(defaults) 506 | 507 | const cn = css({ 508 | '&:hover div': { 509 | color: 'tomato', 510 | }, 511 | }) 512 | const sheet = flush() 513 | const selector = new RegExp(`.${cn.trim()}:hover div`) 514 | 515 | assert.equal(selector.test(sheet), true) 516 | }) 517 | 518 | test('media queries', () => { 519 | const { css, flush } = hypostyle(defaults) 520 | 521 | css({ 522 | '@media (min-width: 567px)': { 523 | color: 'tomato', 524 | }, 525 | }) 526 | const sheet = flush() 527 | 528 | assert.equal(/@media\s\(min-width: 567px\)/.test(sheet), true) 529 | }) 530 | 531 | test('prefix', () => { 532 | const { css, flush } = hypostyle(defaults, { prefix: 'hypo' }) 533 | 534 | css({ 535 | '@media (min-width: 567px)': { 536 | color: 'tomato', 537 | }, 538 | }) 539 | const sheet = flush() 540 | 541 | assert.equal(/hypo/.test(sheet), true) 542 | }) 543 | 544 | test('createGlobal', () => { 545 | const { createGlobal } = hypostyle(defaults) 546 | 547 | const sheet = createGlobal({ 548 | '@media (min-width: 567px)': { 549 | color: 'tomato', 550 | }, 551 | }) 552 | 553 | assert.ok(/color:tomato/.test(sheet)) 554 | }) 555 | 556 | test('no theme, defaults to presets', () => { 557 | const { createGlobal } = hypostyle() 558 | 559 | const sheet = createGlobal({ 560 | c: 'tomato', 561 | }) 562 | 563 | assert.ok(/color:tomato/.test(sheet)) 564 | }) 565 | 566 | /** 567 | * @see https://github.com/sure-thing/hypostyle/issues/7 568 | */ 569 | test('issue #7', async () => { 570 | const { style } = hypostyle(defaults) 571 | 572 | const styles = style({ 573 | color: ['blue', 'red'], 574 | [`@media (min-width: ${defaults.breakpoints[0]})`]: { 575 | background: 'tomato', 576 | }, 577 | }) 578 | 579 | assert.equal(styles, { 580 | color: 'blue', 581 | '@media (min-width: 400px)': { color: 'red', background: 'tomato' }, 582 | }) 583 | }) 584 | 585 | test.run() 586 | -------------------------------------------------------------------------------- /lib/index.test-d.ts: -------------------------------------------------------------------------------- 1 | import { hypostyle, HypostyleObject } from '.' 2 | import * as presets from './presets' 3 | 4 | // declare module '.' { 5 | // interface UserTheme { 6 | // tokens: { 7 | // color: { 8 | // primary: 'blue' 9 | // } 10 | // } 11 | // } 12 | // } 13 | 14 | const hypoObject: HypostyleObject = { 15 | color: { 0: 'blue' }, 16 | figcaption: { 17 | c: 'primary', 18 | }, 19 | } 20 | 21 | const hypo = hypostyle({ 22 | ...presets, 23 | tokens: { 24 | color: { 25 | primary: 'blue', 26 | }, 27 | }, 28 | properties: { 29 | borderTopLeftRadius: {}, 30 | }, 31 | }) 32 | 33 | const exploded = hypo.explode({ 34 | c: 'blue', 35 | }) 36 | const exploded2 = hypo.explode((theme) => ({ 37 | c: theme.tokens.color.primary, 38 | })) 39 | 40 | const styled = hypo.style({ 41 | c: 'blue', 42 | }) 43 | const styled2 = hypo.style((theme) => ({ 44 | c: theme.tokens.color.primary, 45 | })) 46 | 47 | const cn = hypo.css({ 48 | c: 'blue', 49 | }) 50 | const cn2 = hypo.css((theme) => ({ 51 | c: theme.tokens.color.primary, 52 | mx: [2, 4], 53 | })) 54 | const cn3 = hypo.css({ 55 | foobar: {}, 56 | d: { 2: 'none' }, 57 | }) 58 | 59 | hypo.injectGlobal({ 60 | html: { 61 | m: 0, 62 | }, 63 | }) 64 | -------------------------------------------------------------------------------- /lib/index.ts: -------------------------------------------------------------------------------- 1 | import merge from 'deepmerge' 2 | import { Properties as CSSProperties, Pseudos as CSSPsuedos } from 'csstype' 3 | import { create, CssLikeObject } from 'nano-css' 4 | import { addon as cache } from 'nano-css/addon/cache' 5 | import { addon as nesting } from 'nano-css/addon/nesting' 6 | import { addon as keyframes } from 'nano-css/addon/keyframes' 7 | import { addon as rule } from 'nano-css/addon/rule' 8 | import { addon as globalAddon } from 'nano-css/addon/global' 9 | import { addon as hydrate } from 'nano-css/addon/hydrate' 10 | 11 | import * as presets from './presets' 12 | import { properties as cssPropertyMapping } from './properties' 13 | 14 | type UnknownKeyValue = Record 15 | type Unitless = string | number 16 | type UnitlessKeyValue = { [name: string]: Unitless } 17 | type CSSPropertyNames = keyof CSSProperties 18 | 19 | export type HypostyleValue = { [k: number]: Unitless } | Unitless[] | Unitless | boolean | undefined 20 | 21 | export type HypostyleObject = 22 | | ({ 23 | // normal css 24 | [property in CSSPropertyNames]?: HypostyleValue 25 | } & { 26 | // psuedo selector blocks 27 | [pseudo in CSSPsuedos]?: HypostyleObject 28 | } & { 29 | // nested selector blocks 30 | [tag in keyof HTMLElementTagNameMap]?: HypostyleObject 31 | } & { 32 | // any other selector 33 | [selector: string]: HypostyleObject 34 | }) 35 | | { 36 | // any hypostyle properties 37 | [prop: string]: HypostyleObject | HypostyleValue | any 38 | } 39 | 40 | export type HypostyleObjectOrFunction = ((theme: Theme) => HypostyleObject) | HypostyleObject 41 | 42 | export type Tokens = { 43 | [property in CSSPropertyNames]?: Unitless | Unitless[] | UnitlessKeyValue 44 | } & { 45 | space?: Unitless | Unitless[] | UnitlessKeyValue 46 | } 47 | 48 | export type Shorthands = { 49 | [shorthand: string]: CSSPropertyNames | CSSPropertyNames[] 50 | } 51 | 52 | export type Macros = { 53 | [macro: string]: HypostyleObject 54 | } 55 | 56 | export type Variants = { 57 | [variation: string]: { 58 | [name: string]: HypostyleObject 59 | } 60 | } 61 | 62 | export type CSSPropertyMapping = { 63 | [property in CSSPropertyNames]?: { 64 | token?: keyof Tokens 65 | unit?(value: any): string 66 | } 67 | } 68 | 69 | export interface UserTheme {} 70 | 71 | export type Theme = { 72 | breakpoints?: Unitless[] 73 | tokens?: Tokens 74 | shorthands?: Shorthands 75 | macros?: Macros 76 | variants?: Variants 77 | properties?: CSSPropertyMapping 78 | } & UserTheme 79 | 80 | export type Hypostyle = ReturnType 81 | 82 | function obj(o: HypostyleObjectOrFunction, theme: Theme): HypostyleObject { 83 | return typeof o === 'function' ? o(theme) : o 84 | } 85 | 86 | /** 87 | * Expand macros and variants, then expand all shorthand props. 88 | * 89 | * Returns a hypostyle object 90 | */ 91 | function explode(props: HypostyleObject, theme: Theme) { 92 | var styles = {} 93 | 94 | // expand macros and variants, copy other props 95 | for (var prop in props) { 96 | /* c8 ignore next */ 97 | if (!props.hasOwnProperty(prop)) continue // skip proto 98 | 99 | // macro exists AND prop is true 100 | if (theme.macros[prop] && (props[prop] === true || props[prop] === false)) { 101 | if (props[prop] === true) styles = merge(styles, theme.macros[prop]) 102 | } else if (theme.variants[prop]) { 103 | styles = merge(styles, theme.variants[prop][props[prop] as string]) 104 | } else { 105 | styles[prop] = props[prop] 106 | } 107 | } 108 | 109 | // recursively expand all shorthands 110 | for (var prop in styles) { 111 | /* c8 ignore next */ 112 | if (!styles.hasOwnProperty(prop)) continue // skip proto 113 | 114 | var value = styles[prop] 115 | 116 | // Could be nested object, ignore responsive array/object syntax 117 | if (typeof value === 'object' && !Array.isArray(value) && !/^\d/.test(Object.keys(value)[0])) { 118 | styles[prop] = explode(value, theme) 119 | continue 120 | } 121 | 122 | if (theme.shorthands[prop]) { 123 | var shorthands = [].concat(theme.shorthands[prop]) 124 | 125 | for (var i = 0; i < shorthands.length; i++) { 126 | styles[shorthands[i]] = value 127 | } 128 | 129 | delete styles[prop] // remove shorthand key 130 | } else { 131 | styles[prop] = value 132 | } 133 | } 134 | 135 | return styles 136 | } 137 | 138 | /** 139 | * Accepts a hypostyle object and converts it to a CSS object intelligible by 140 | * any CSS-in-JS library that supports objects. 141 | */ 142 | function style(props: HypostyleObject, theme: Theme): CssLikeObject { 143 | var styles = {} 144 | var responsive = {} 145 | 146 | for (var prop in props) { 147 | /* c8 ignore next */ 148 | if (!props.hasOwnProperty(prop)) continue // skip proto 149 | 150 | var mixedObject: HypostyleObject | HypostyleValue = props[prop] 151 | 152 | // must have a style object or responsive object 153 | if (typeof mixedObject === 'object' && !Array.isArray(mixedObject)) { 154 | var keyIndicies = Object.keys(mixedObject) 155 | 156 | // convert responsive object to array syntax 157 | if (/^\d/.test(keyIndicies[0])) { 158 | var arr = [] 159 | 160 | keyIndicies.forEach((i) => { 161 | arr[i] = mixedObject[i] 162 | }) 163 | 164 | props[prop] = arr 165 | } else { 166 | /* 167 | * Safely merge in nested prop — there may be duplicate keys, like 168 | * after shorthand expansion or a custom media query block 169 | */ 170 | var nested = {} 171 | nested[prop] = style(mixedObject, theme) 172 | styles = merge(styles, nested) 173 | continue // continue, nested style object 174 | } 175 | } 176 | 177 | var config = theme.properties[prop] || {} 178 | var tokens = theme.tokens[config.token] 179 | var values = [].concat(props[prop]) 180 | 181 | for (var o = 0; o < values.length; o++) { 182 | var value = values[o] 183 | var token = tokens ? tokens[value] || value : value 184 | var unitValue = config.unit ? config.unit(token) : token 185 | 186 | // drop undefined values, all others pass through 187 | if (unitValue === undefined) continue 188 | 189 | var r = responsive 190 | var breakpoint = theme.breakpoints[o - 1] 191 | 192 | if (breakpoint) { 193 | // drop down a level (into breakpoint) 194 | r = responsive[breakpoint] = responsive[breakpoint] || {} 195 | r[prop] = unitValue 196 | } else if (!breakpoint && o > 0) { 197 | continue 198 | } else { 199 | styles[prop] = unitValue 200 | } 201 | } 202 | } 203 | 204 | var sorted = Object.keys(responsive) 205 | .sort((a, b) => { 206 | return parseInt(a) - parseInt(b) 207 | }) 208 | .reduce((res, breakpoint) => { 209 | res[`@media (min-width: ${breakpoint})`] = responsive[breakpoint] 210 | return res 211 | }, {}) 212 | var sortedKeys = Object.keys(sorted) 213 | 214 | for (var i = 0; i < sortedKeys.length; i++) { 215 | var key = sortedKeys[i] 216 | styles[key] = { 217 | ...(styles[key] || {}), 218 | ...sorted[key], 219 | } 220 | } 221 | 222 | return styles 223 | } 224 | 225 | /** 226 | * Separates style props from everything else 227 | */ 228 | function pick(props: HypostyleObject, theme: Theme): { styles: HypostyleObject; props: T } { 229 | var styles = {} 230 | var extra = {} 231 | 232 | for (var prop in props) { 233 | /* c8 ignore next */ 234 | if (!props.hasOwnProperty(prop)) continue // skip proto 235 | 236 | if (theme.macros[prop] || theme.variants[prop] || theme.shorthands[prop] || theme.properties[prop]) { 237 | styles[prop] = props[prop] 238 | } else { 239 | extra[prop] = props[prop] 240 | } 241 | } 242 | 243 | return { 244 | styles, 245 | props: extra as T, 246 | } 247 | } 248 | 249 | function createNano(options: { addons?: any[]; prefix?: string }) { 250 | var nano = create({ 251 | pfx: options.prefix || '_', 252 | /* c8 ignore next 2 */ 253 | // @ts-expect-error 254 | sh: typeof document === 'object' ? document.getElementById('hypo') : null, 255 | }) 256 | if (options.addons) 257 | options.addons.forEach(function (a) { 258 | a(nano) 259 | }) 260 | return nano 261 | } 262 | 263 | export function hypostyle( 264 | theme?: Theme, 265 | config?: { 266 | addons?: any[] 267 | prefix?: string 268 | } 269 | ) { 270 | theme = theme || presets 271 | config = config || {} 272 | 273 | var t: Theme = merge( 274 | { 275 | tokens: {}, 276 | breakpoints: [], 277 | macros: {}, 278 | variants: {}, 279 | properties: { 280 | ...cssPropertyMapping, 281 | }, 282 | shorthands: {}, 283 | }, 284 | theme 285 | ) 286 | 287 | var addons = [cache, nesting, keyframes, rule, globalAddon, hydrate].concat(config.addons || []) 288 | var nano = createNano({ addons, prefix: config.prefix }) 289 | 290 | return { 291 | explode: function (props: HypostyleObjectOrFunction) { 292 | return explode(obj(props, t), t) 293 | }, 294 | style: function (props: HypostyleObjectOrFunction) { 295 | return style(explode(obj(props, t), t), t) 296 | }, 297 | css: function (props: HypostyleObjectOrFunction) { 298 | var styles = style(explode(obj(props, t), t), t) 299 | return Object.keys(styles).length ? nano.rule(styles) : '' 300 | }, 301 | pick: function (props: HypostyleObject & UnknownKeyValue) { 302 | return pick(props, t) 303 | }, 304 | createGlobal: function (props: HypostyleObject) { 305 | var n = createNano({ addons }) 306 | n.global(style(explode(obj(props, t), t), t)) 307 | return n.raw 308 | }, 309 | injectGlobal: function (props: HypostyleObject) { 310 | nano.global(style(explode(obj(props, t), t), t)) 311 | }, 312 | keyframes: nano.keyframes, 313 | flush: function () { 314 | var raw = nano.raw 315 | nano = createNano({ addons }) 316 | return raw 317 | }, 318 | get theme() { 319 | return t 320 | }, 321 | } 322 | } 323 | -------------------------------------------------------------------------------- /lib/presets.ts: -------------------------------------------------------------------------------- 1 | import { Tokens, Shorthands, Macros } from '.' 2 | 3 | export var breakpoints: string[] = ['400px', '800px', '1200px'] 4 | 5 | export var tokens: Tokens = { 6 | space: [0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64], 7 | fontSize: ['3rem', '3rem', '2.2rem', '1.8rem', '1.4rem', '1rem', '0.875rem'], 8 | fontWeight: ['0', '100', '200', '300', '400', '500', '600', '700', '800', '900', '1000'], 9 | lineHeight: [1.1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6], 10 | } 11 | 12 | export var shorthands: Shorthands = { 13 | d: 'display', 14 | w: 'width', 15 | h: 'height', 16 | c: 'color', 17 | bg: 'background', 18 | m: ['marginTop', 'marginBottom', 'marginLeft', 'marginRight'], 19 | mt: 'marginTop', 20 | mb: 'marginBottom', 21 | ml: 'marginLeft', 22 | mr: 'marginRight', 23 | my: ['marginTop', 'marginBottom'], 24 | mx: ['marginLeft', 'marginRight'], 25 | p: ['paddingTop', 'paddingBottom', 'paddingLeft', 'paddingRight'], 26 | pt: 'paddingTop', 27 | pb: 'paddingBottom', 28 | pl: 'paddingLeft', 29 | pr: 'paddingRight', 30 | py: ['paddingTop', 'paddingBottom'], 31 | px: ['paddingLeft', 'paddingRight'], 32 | z: 'zIndex', 33 | fs: 'fontSize', 34 | ff: 'fontFamily', 35 | fw: 'fontWeight', 36 | lh: 'lineHeight', 37 | ta: 'textAlign', 38 | } 39 | 40 | export var macros: Macros = { 41 | db: { display: 'block' }, 42 | dib: { display: 'inline-block' }, 43 | di: { display: 'inline' }, 44 | f: { display: 'flex' }, 45 | fw: { flexWrap: 'wrap' }, 46 | ais: { alignItems: 'flex-start' }, 47 | aic: { alignItems: 'center' }, 48 | aie: { alignItems: 'flex-end' }, 49 | jcs: { justifyContent: 'flex-start' }, 50 | jcc: { justifyContent: 'center' }, 51 | jce: { justifyContent: 'flex-end' }, 52 | jca: { justifyContent: 'space-around' }, 53 | jcb: { justifyContent: 'space-between' }, 54 | rel: { position: 'relative' }, 55 | abs: { position: 'absolute' }, 56 | fix: { position: 'fixed' }, 57 | top: { top: 0 }, 58 | bottom: { bottom: 0 }, 59 | left: { left: 0 }, 60 | right: { right: 0 }, 61 | cover: { 62 | top: 0, 63 | bottom: 0, 64 | left: 0, 65 | right: 0, 66 | }, 67 | w: { width: 1 }, 68 | h: { height: 1 }, 69 | tac: { textAlign: 'center' }, 70 | tar: { textAlign: 'right' }, 71 | taj: { textAlign: 'justify' }, 72 | ma: { m: 'auto' }, 73 | mxa: { mx: 'auto' }, 74 | mya: { my: 'auto' }, 75 | } 76 | -------------------------------------------------------------------------------- /lib/properties.ts: -------------------------------------------------------------------------------- 1 | /* c8 ignore next */ 2 | import { CSSPropertyMapping } from './' 3 | 4 | export function px(v: string | number) { 5 | return typeof v === 'number' ? v + 'px' : v 6 | } 7 | 8 | export function str(v: string | number) { 9 | return v + '' 10 | } 11 | 12 | export function percOrPx(v: string | number) { 13 | return typeof v === 'number' ? (v <= 1 ? v * 100 + '%' : v + 'px') : v 14 | } 15 | 16 | export var properties: CSSPropertyMapping = { 17 | display: {}, 18 | position: {}, 19 | top: { 20 | token: 'space', 21 | unit: px, 22 | }, 23 | bottom: { 24 | token: 'space', 25 | unit: px, 26 | }, 27 | left: { 28 | token: 'space', 29 | unit: px, 30 | }, 31 | right: { 32 | token: 'space', 33 | unit: px, 34 | }, 35 | width: { 36 | token: 'width', 37 | unit: percOrPx, 38 | }, 39 | minWidth: { 40 | token: 'width', 41 | unit: percOrPx, 42 | }, 43 | maxWidth: { 44 | token: 'width', 45 | unit: percOrPx, 46 | }, 47 | height: { 48 | token: 'height', 49 | unit: percOrPx, 50 | }, 51 | minHeight: { 52 | token: 'height', 53 | unit: percOrPx, 54 | }, 55 | maxHeight: { 56 | token: 'height', 57 | unit: percOrPx, 58 | }, 59 | color: { 60 | token: 'color', 61 | }, 62 | background: { 63 | token: 'color', 64 | }, 65 | backgroundColor: { 66 | token: 'color', 67 | }, 68 | backgroundImage: {}, 69 | backgroundRepeat: {}, 70 | backgroundSize: {}, 71 | opacity: {}, 72 | flex: {}, 73 | flexWrap: {}, 74 | alignItems: {}, 75 | alignContent: {}, 76 | justifyItems: {}, 77 | justifyContent: {}, 78 | flexDirection: {}, 79 | flexGrow: {}, 80 | flexShrink: {}, 81 | flexBasis: {}, 82 | justifySelf: {}, 83 | alignSelf: {}, 84 | order: { 85 | unit: str, 86 | }, 87 | margin: { 88 | token: 'space', 89 | unit: px, 90 | }, 91 | marginTop: { 92 | token: 'space', 93 | unit: px, 94 | }, 95 | marginBottom: { 96 | token: 'space', 97 | unit: px, 98 | }, 99 | marginLeft: { 100 | token: 'space', 101 | unit: px, 102 | }, 103 | marginRight: { 104 | token: 'space', 105 | unit: px, 106 | }, 107 | padding: { 108 | token: 'space', 109 | unit: px, 110 | }, 111 | paddingTop: { 112 | token: 'space', 113 | unit: px, 114 | }, 115 | paddingBottom: { 116 | token: 'space', 117 | unit: px, 118 | }, 119 | paddingLeft: { 120 | token: 'space', 121 | unit: px, 122 | }, 123 | paddingRight: { 124 | token: 'space', 125 | unit: px, 126 | }, 127 | zIndex: { 128 | token: 'zIndex', 129 | unit: str, 130 | }, 131 | fontSize: { 132 | token: 'fontSize', 133 | }, 134 | fontFamily: { 135 | token: 'fontFamily', 136 | }, 137 | fontWeight: { 138 | token: 'fontWeight', 139 | unit: str, 140 | }, 141 | lineHeight: { 142 | token: 'lineHeight', 143 | }, 144 | letterSpacing: { 145 | token: 'letterSpacing', 146 | }, 147 | textAlign: {}, 148 | overflow: {}, 149 | boxShadow: { 150 | token: 'boxShadow', 151 | }, 152 | border: { 153 | token: 'border', 154 | }, 155 | borderColor: { 156 | token: 'color', 157 | }, 158 | borderWidth: { 159 | token: 'borderWidth', 160 | }, 161 | borderStyle: { 162 | token: 'borderStyle', 163 | }, 164 | borderRadius: { 165 | token: 'borderRadius', 166 | }, 167 | fill: { 168 | token: 'color', 169 | }, 170 | stroke: { 171 | token: 'color', 172 | }, 173 | transition: { 174 | token: 'transition', 175 | }, 176 | transitionProperty: {}, 177 | transitionDuration: { 178 | token: 'transitionDuration', 179 | }, 180 | transitionTimingFunction: { 181 | token: 'transitionTimingFunction', 182 | }, 183 | transform: {}, 184 | } 185 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hypostyle", 3 | "version": "3.3.2", 4 | "description": "Minimalist 5th Generation CSS-in-JS built for concision and extension. Fast af, powered by nano-css.", 5 | "main": "./index.js", 6 | "types": "./index.d.ts", 7 | "scripts": { 8 | "prepare": "is-ci || pnpx husky install", 9 | "test": "c8 node -r esbuild-register lib/__tests__/index.ts", 10 | "build": "node scripts/build && tsc --emitDeclarationOnly", 11 | "typecheck": "tsc --noEmit", 12 | "lint": "prettier --check .", 13 | "format": "prettier --write ." 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+ssh://git@github.com/sure-thing/hypostyle.git" 18 | }, 19 | "author": "estrattonbailey", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/sure-thing/hypostyle/issues" 23 | }, 24 | "homepage": "https://github.com/sure-thing/hypostyle#readme", 25 | "devDependencies": { 26 | "@commitlint/cli": "^15.0.0", 27 | "@commitlint/config-conventional": "^15.0.0", 28 | "@semantic-release/git": "^10.0.1", 29 | "baretest": "^2.0.0", 30 | "c8": "^7.10.0", 31 | "commitlint": "^15.0.0", 32 | "esbuild": "^0.14.7", 33 | "esbuild-register": "^3.2.1", 34 | "husky": "^7.0.4", 35 | "is-ci": "^3.0.1", 36 | "prettier": "^2.5.1", 37 | "semantic-release": "^18.0.1", 38 | "typescript": "^4.5.4", 39 | "uvu": "^0.5.2" 40 | }, 41 | "dependencies": { 42 | "csstype": "^3.0.10", 43 | "deepmerge": "^4.2.2", 44 | "nano-css": "^5.3.4" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@commitlint/cli': ^15.0.0 5 | '@commitlint/config-conventional': ^15.0.0 6 | '@semantic-release/git': ^10.0.1 7 | baretest: ^2.0.0 8 | c8: ^7.10.0 9 | commitlint: ^15.0.0 10 | csstype: ^3.0.10 11 | deepmerge: ^4.2.2 12 | esbuild: ^0.14.7 13 | esbuild-register: ^3.2.1 14 | husky: ^7.0.4 15 | is-ci: ^3.0.1 16 | nano-css: ^5.3.4 17 | prettier: ^2.5.1 18 | semantic-release: ^18.0.1 19 | typescript: ^4.5.4 20 | uvu: ^0.5.2 21 | 22 | dependencies: 23 | csstype: 3.0.10 24 | deepmerge: 4.2.2 25 | nano-css: 5.3.4 26 | 27 | devDependencies: 28 | '@commitlint/cli': 15.0.0 29 | '@commitlint/config-conventional': 15.0.0 30 | '@semantic-release/git': 10.0.1_semantic-release@18.0.1 31 | baretest: 2.0.0 32 | c8: 7.10.0 33 | commitlint: 15.0.0 34 | esbuild: 0.14.7 35 | esbuild-register: 3.2.1_esbuild@0.14.7 36 | husky: 7.0.4 37 | is-ci: 3.0.1 38 | prettier: 2.5.1 39 | semantic-release: 18.0.1 40 | typescript: 4.5.4 41 | uvu: 0.5.2 42 | 43 | packages: 44 | 45 | /@babel/code-frame/7.16.0: 46 | resolution: {integrity: sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==} 47 | engines: {node: '>=6.9.0'} 48 | dependencies: 49 | '@babel/highlight': 7.16.0 50 | dev: true 51 | 52 | /@babel/helper-validator-identifier/7.15.7: 53 | resolution: {integrity: sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==} 54 | engines: {node: '>=6.9.0'} 55 | dev: true 56 | 57 | /@babel/highlight/7.16.0: 58 | resolution: {integrity: sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==} 59 | engines: {node: '>=6.9.0'} 60 | dependencies: 61 | '@babel/helper-validator-identifier': 7.15.7 62 | chalk: 2.4.2 63 | js-tokens: 4.0.0 64 | dev: true 65 | 66 | /@babel/runtime/7.16.5: 67 | resolution: {integrity: sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==} 68 | engines: {node: '>=6.9.0'} 69 | dependencies: 70 | regenerator-runtime: 0.13.9 71 | dev: false 72 | 73 | /@bcoe/v8-coverage/0.2.3: 74 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 75 | dev: true 76 | 77 | /@commitlint/cli/15.0.0: 78 | resolution: {integrity: sha512-Y5xmDCweytqzo4N4lOI2YRiuX35xTjcs8n5hUceBH8eyK0YbwtgWX50BJOH2XbkwEmII9blNhlBog6AdQsqicg==} 79 | engines: {node: '>=v12'} 80 | hasBin: true 81 | dependencies: 82 | '@commitlint/format': 15.0.0 83 | '@commitlint/lint': 15.0.0 84 | '@commitlint/load': 15.0.0 85 | '@commitlint/read': 15.0.0 86 | '@commitlint/types': 15.0.0 87 | lodash: 4.17.21 88 | resolve-from: 5.0.0 89 | resolve-global: 1.0.0 90 | yargs: 17.3.0 91 | dev: true 92 | 93 | /@commitlint/config-conventional/15.0.0: 94 | resolution: {integrity: sha512-eZBRL8Lk3hMNHp1wUMYj0qrZQEsST1ai7KHR8J1IDD9aHgT7L2giciibuQ+Og7vxVhR5WtYDvh9xirXFVPaSkQ==} 95 | engines: {node: '>=v12'} 96 | dependencies: 97 | conventional-changelog-conventionalcommits: 4.6.1 98 | dev: true 99 | 100 | /@commitlint/ensure/15.0.0: 101 | resolution: {integrity: sha512-7DV4iNIald3vycwaWBNGk5FbonaNzOlU8nBe5m5AgU2dIeNKuXwLm+zzJzG27j0Ho56rgz//3F6RIvmsoxY9ZA==} 102 | engines: {node: '>=v12'} 103 | dependencies: 104 | '@commitlint/types': 15.0.0 105 | lodash: 4.17.21 106 | dev: true 107 | 108 | /@commitlint/execute-rule/15.0.0: 109 | resolution: {integrity: sha512-pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg==} 110 | engines: {node: '>=v12'} 111 | dev: true 112 | 113 | /@commitlint/format/15.0.0: 114 | resolution: {integrity: sha512-bPhAfqwRhPk92WiuY0ktEJNpRRHSCd+Eg1MdhGyL9Bl3U25E5zvuInA+dNctnzZiOBSH/37ZaD0eOKCpQE6acg==} 115 | engines: {node: '>=v12'} 116 | dependencies: 117 | '@commitlint/types': 15.0.0 118 | chalk: 4.1.2 119 | dev: true 120 | 121 | /@commitlint/is-ignored/15.0.0: 122 | resolution: {integrity: sha512-edtnkf2QZ/7e/YCJDgn1WDw9wfF1WfOitW5YEoSOb4SxjJEb/oE87kxNPZ2j8mnDMuunspcMfGHeg6fRlwaEWg==} 123 | engines: {node: '>=v12'} 124 | dependencies: 125 | '@commitlint/types': 15.0.0 126 | semver: 7.3.5 127 | dev: true 128 | 129 | /@commitlint/lint/15.0.0: 130 | resolution: {integrity: sha512-hUi2+Im/2dJ5FBvWnodypTkg+5haCgsDzB0fyMApWLUA1IucYUAqRCQCW5em1Mhk9Crw1pd5YzFNikhIclkqCw==} 131 | engines: {node: '>=v12'} 132 | dependencies: 133 | '@commitlint/is-ignored': 15.0.0 134 | '@commitlint/parse': 15.0.0 135 | '@commitlint/rules': 15.0.0 136 | '@commitlint/types': 15.0.0 137 | dev: true 138 | 139 | /@commitlint/load/15.0.0: 140 | resolution: {integrity: sha512-Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg==} 141 | engines: {node: '>=v12'} 142 | dependencies: 143 | '@commitlint/execute-rule': 15.0.0 144 | '@commitlint/resolve-extends': 15.0.0 145 | '@commitlint/types': 15.0.0 146 | '@endemolshinegroup/cosmiconfig-typescript-loader': 3.0.2_ogrpmgle4n5e22g2w3nn2kuzua 147 | chalk: 4.1.2 148 | cosmiconfig: 7.0.1 149 | lodash: 4.17.21 150 | resolve-from: 5.0.0 151 | typescript: 4.5.4 152 | dev: true 153 | 154 | /@commitlint/message/15.0.0: 155 | resolution: {integrity: sha512-L8euabzboKavPuDJsdIYAY2wx97LbiGEYsckMo6NmV8pOun50c8hQx6ouXFSAx4pp+mX9yUGmMiVqfrk2LKDJQ==} 156 | engines: {node: '>=v12'} 157 | dev: true 158 | 159 | /@commitlint/parse/15.0.0: 160 | resolution: {integrity: sha512-7fweM67tZfBNS7zw1KTuuT5K2u9nGytUJqFqT/1Ln3Na9cBCsoAqR47mfsNOTlRCgGwakm4xiQ7BpS2gN0OGuw==} 161 | engines: {node: '>=v12'} 162 | dependencies: 163 | '@commitlint/types': 15.0.0 164 | conventional-changelog-angular: 5.0.13 165 | conventional-commits-parser: 3.2.3 166 | dev: true 167 | 168 | /@commitlint/read/15.0.0: 169 | resolution: {integrity: sha512-5yI1o2HKZFVe7RTjL7IhuhHMKar/MDNY34vEHqqz9gMI7BK/rdP8uVb4Di1efl2V0UPnwID0nPKWESjQ8Ti0gw==} 170 | engines: {node: '>=v12'} 171 | dependencies: 172 | '@commitlint/top-level': 15.0.0 173 | '@commitlint/types': 15.0.0 174 | fs-extra: 10.0.0 175 | git-raw-commits: 2.0.10 176 | dev: true 177 | 178 | /@commitlint/resolve-extends/15.0.0: 179 | resolution: {integrity: sha512-7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg==} 180 | engines: {node: '>=v12'} 181 | dependencies: 182 | import-fresh: 3.3.0 183 | lodash: 4.17.21 184 | resolve-from: 5.0.0 185 | resolve-global: 1.0.0 186 | dev: true 187 | 188 | /@commitlint/rules/15.0.0: 189 | resolution: {integrity: sha512-SqXfp6QUlwBS+0IZm4FEA/NmmAwcFQIkG3B05BtemOVWXQdZ8j1vV6hDwvA9oMPCmUSrrGpHOtZK7HaHhng2yA==} 190 | engines: {node: '>=v12'} 191 | dependencies: 192 | '@commitlint/ensure': 15.0.0 193 | '@commitlint/message': 15.0.0 194 | '@commitlint/to-lines': 15.0.0 195 | '@commitlint/types': 15.0.0 196 | execa: 5.1.1 197 | dev: true 198 | 199 | /@commitlint/to-lines/15.0.0: 200 | resolution: {integrity: sha512-mY3MNA9ujPqVpiJjTYG9MDsYCobue5PJFO0MfcIzS1mCVvngH8ZFTPAh1fT5t+t1h876boS88+9WgqjRvbYItw==} 201 | engines: {node: '>=v12'} 202 | dev: true 203 | 204 | /@commitlint/top-level/15.0.0: 205 | resolution: {integrity: sha512-7Gz3t7xcuuUw1d1Nou6YLaztzp2Em+qZ6YdCzrqYc+aquca3Vt0O696nuiBDU/oE+tls4Hx2CNpAbWhTgEwB5A==} 206 | engines: {node: '>=v12'} 207 | dependencies: 208 | find-up: 5.0.0 209 | dev: true 210 | 211 | /@commitlint/types/15.0.0: 212 | resolution: {integrity: sha512-OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw==} 213 | engines: {node: '>=v12'} 214 | dependencies: 215 | chalk: 4.1.2 216 | dev: true 217 | 218 | /@endemolshinegroup/cosmiconfig-typescript-loader/3.0.2_ogrpmgle4n5e22g2w3nn2kuzua: 219 | resolution: {integrity: sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==} 220 | engines: {node: '>=10.0.0'} 221 | peerDependencies: 222 | cosmiconfig: '>=6' 223 | dependencies: 224 | cosmiconfig: 7.0.1 225 | lodash.get: 4.4.2 226 | make-error: 1.3.6 227 | ts-node: 9.1.1_typescript@4.5.4 228 | tslib: 2.3.1 229 | transitivePeerDependencies: 230 | - typescript 231 | dev: true 232 | 233 | /@istanbuljs/schema/0.1.3: 234 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 235 | engines: {node: '>=8'} 236 | dev: true 237 | 238 | /@nodelib/fs.scandir/2.1.5: 239 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 240 | engines: {node: '>= 8'} 241 | dependencies: 242 | '@nodelib/fs.stat': 2.0.5 243 | run-parallel: 1.2.0 244 | dev: true 245 | 246 | /@nodelib/fs.stat/2.0.5: 247 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 248 | engines: {node: '>= 8'} 249 | dev: true 250 | 251 | /@nodelib/fs.walk/1.2.8: 252 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 253 | engines: {node: '>= 8'} 254 | dependencies: 255 | '@nodelib/fs.scandir': 2.1.5 256 | fastq: 1.13.0 257 | dev: true 258 | 259 | /@octokit/auth-token/2.5.0: 260 | resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} 261 | dependencies: 262 | '@octokit/types': 6.34.0 263 | dev: true 264 | 265 | /@octokit/core/3.5.1: 266 | resolution: {integrity: sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==} 267 | dependencies: 268 | '@octokit/auth-token': 2.5.0 269 | '@octokit/graphql': 4.8.0 270 | '@octokit/request': 5.6.2 271 | '@octokit/request-error': 2.1.0 272 | '@octokit/types': 6.34.0 273 | before-after-hook: 2.2.2 274 | universal-user-agent: 6.0.0 275 | dev: true 276 | 277 | /@octokit/endpoint/6.0.12: 278 | resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} 279 | dependencies: 280 | '@octokit/types': 6.34.0 281 | is-plain-object: 5.0.0 282 | universal-user-agent: 6.0.0 283 | dev: true 284 | 285 | /@octokit/graphql/4.8.0: 286 | resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} 287 | dependencies: 288 | '@octokit/request': 5.6.2 289 | '@octokit/types': 6.34.0 290 | universal-user-agent: 6.0.0 291 | dev: true 292 | 293 | /@octokit/openapi-types/11.2.0: 294 | resolution: {integrity: sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==} 295 | dev: true 296 | 297 | /@octokit/plugin-paginate-rest/2.17.0_@octokit+core@3.5.1: 298 | resolution: {integrity: sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==} 299 | peerDependencies: 300 | '@octokit/core': '>=2' 301 | dependencies: 302 | '@octokit/core': 3.5.1 303 | '@octokit/types': 6.34.0 304 | dev: true 305 | 306 | /@octokit/plugin-request-log/1.0.4_@octokit+core@3.5.1: 307 | resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} 308 | peerDependencies: 309 | '@octokit/core': '>=3' 310 | dependencies: 311 | '@octokit/core': 3.5.1 312 | dev: true 313 | 314 | /@octokit/plugin-rest-endpoint-methods/5.13.0_@octokit+core@3.5.1: 315 | resolution: {integrity: sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==} 316 | peerDependencies: 317 | '@octokit/core': '>=3' 318 | dependencies: 319 | '@octokit/core': 3.5.1 320 | '@octokit/types': 6.34.0 321 | deprecation: 2.3.1 322 | dev: true 323 | 324 | /@octokit/request-error/2.1.0: 325 | resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} 326 | dependencies: 327 | '@octokit/types': 6.34.0 328 | deprecation: 2.3.1 329 | once: 1.4.0 330 | dev: true 331 | 332 | /@octokit/request/5.6.2: 333 | resolution: {integrity: sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==} 334 | dependencies: 335 | '@octokit/endpoint': 6.0.12 336 | '@octokit/request-error': 2.1.0 337 | '@octokit/types': 6.34.0 338 | is-plain-object: 5.0.0 339 | node-fetch: 2.6.6 340 | universal-user-agent: 6.0.0 341 | dev: true 342 | 343 | /@octokit/rest/18.12.0: 344 | resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} 345 | dependencies: 346 | '@octokit/core': 3.5.1 347 | '@octokit/plugin-paginate-rest': 2.17.0_@octokit+core@3.5.1 348 | '@octokit/plugin-request-log': 1.0.4_@octokit+core@3.5.1 349 | '@octokit/plugin-rest-endpoint-methods': 5.13.0_@octokit+core@3.5.1 350 | dev: true 351 | 352 | /@octokit/types/6.34.0: 353 | resolution: {integrity: sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==} 354 | dependencies: 355 | '@octokit/openapi-types': 11.2.0 356 | dev: true 357 | 358 | /@semantic-release/commit-analyzer/9.0.2_semantic-release@18.0.1: 359 | resolution: {integrity: sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==} 360 | engines: {node: '>=14.17'} 361 | peerDependencies: 362 | semantic-release: '>=18.0.0-beta.1' 363 | dependencies: 364 | conventional-changelog-angular: 5.0.13 365 | conventional-commits-filter: 2.0.7 366 | conventional-commits-parser: 3.2.3 367 | debug: 4.3.3 368 | import-from: 4.0.0 369 | lodash: 4.17.21 370 | micromatch: 4.0.4 371 | semantic-release: 18.0.1 372 | transitivePeerDependencies: 373 | - supports-color 374 | dev: true 375 | 376 | /@semantic-release/error/2.2.0: 377 | resolution: {integrity: sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==} 378 | dev: true 379 | 380 | /@semantic-release/error/3.0.0: 381 | resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} 382 | engines: {node: '>=14.17'} 383 | dev: true 384 | 385 | /@semantic-release/git/10.0.1_semantic-release@18.0.1: 386 | resolution: {integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==} 387 | engines: {node: '>=14.17'} 388 | peerDependencies: 389 | semantic-release: '>=18.0.0' 390 | dependencies: 391 | '@semantic-release/error': 3.0.0 392 | aggregate-error: 3.1.0 393 | debug: 4.3.3 394 | dir-glob: 3.0.1 395 | execa: 5.1.1 396 | lodash: 4.17.21 397 | micromatch: 4.0.4 398 | p-reduce: 2.1.0 399 | semantic-release: 18.0.1 400 | transitivePeerDependencies: 401 | - supports-color 402 | dev: true 403 | 404 | /@semantic-release/github/8.0.2_semantic-release@18.0.1: 405 | resolution: {integrity: sha512-wIbfhOeuxlYzMTjtSAa2xgr54n7ZuPAS2gadyTWBpUt2PNAPgla7A6XxCXJnaKPgfVF0iFfSk3B+KlVKk6ByVg==} 406 | engines: {node: '>=14.17'} 407 | peerDependencies: 408 | semantic-release: '>=18.0.0-beta.1' 409 | dependencies: 410 | '@octokit/rest': 18.12.0 411 | '@semantic-release/error': 2.2.0 412 | aggregate-error: 3.1.0 413 | bottleneck: 2.19.5 414 | debug: 4.3.3 415 | dir-glob: 3.0.1 416 | fs-extra: 10.0.0 417 | globby: 11.0.4 418 | http-proxy-agent: 5.0.0 419 | https-proxy-agent: 5.0.0 420 | issue-parser: 6.0.0 421 | lodash: 4.17.21 422 | mime: 3.0.0 423 | p-filter: 2.1.0 424 | p-retry: 4.6.1 425 | semantic-release: 18.0.1 426 | url-join: 4.0.1 427 | transitivePeerDependencies: 428 | - supports-color 429 | dev: true 430 | 431 | /@semantic-release/npm/8.0.3_semantic-release@18.0.1: 432 | resolution: {integrity: sha512-Qbg7x/O1t3sJqsv2+U0AL4Utgi/ymlCiUdt67Ftz9HL9N8aDML4t2tE0T9MBaYdqwD976hz57DqHHXKVppUBoA==} 433 | engines: {node: '>=14.17'} 434 | peerDependencies: 435 | semantic-release: '>=18.0.0' 436 | dependencies: 437 | '@semantic-release/error': 3.0.0 438 | aggregate-error: 3.1.0 439 | execa: 5.1.1 440 | fs-extra: 10.0.0 441 | lodash: 4.17.21 442 | nerf-dart: 1.0.0 443 | normalize-url: 6.1.0 444 | npm: 7.24.2 445 | rc: 1.2.8 446 | read-pkg: 5.2.0 447 | registry-auth-token: 4.2.1 448 | semantic-release: 18.0.1 449 | semver: 7.3.5 450 | tempy: 1.0.1 451 | dev: true 452 | 453 | /@semantic-release/release-notes-generator/10.0.3_semantic-release@18.0.1: 454 | resolution: {integrity: sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==} 455 | engines: {node: '>=14.17'} 456 | peerDependencies: 457 | semantic-release: '>=18.0.0-beta.1' 458 | dependencies: 459 | conventional-changelog-angular: 5.0.13 460 | conventional-changelog-writer: 5.0.0 461 | conventional-commits-filter: 2.0.7 462 | conventional-commits-parser: 3.2.3 463 | debug: 4.3.3 464 | get-stream: 6.0.1 465 | import-from: 4.0.0 466 | into-stream: 6.0.0 467 | lodash: 4.17.21 468 | read-pkg-up: 7.0.1 469 | semantic-release: 18.0.1 470 | transitivePeerDependencies: 471 | - supports-color 472 | dev: true 473 | 474 | /@tootallnate/once/2.0.0: 475 | resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} 476 | engines: {node: '>= 10'} 477 | dev: true 478 | 479 | /@types/istanbul-lib-coverage/2.0.3: 480 | resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} 481 | dev: true 482 | 483 | /@types/minimist/1.2.2: 484 | resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} 485 | dev: true 486 | 487 | /@types/normalize-package-data/2.4.1: 488 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} 489 | dev: true 490 | 491 | /@types/parse-json/4.0.0: 492 | resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} 493 | dev: true 494 | 495 | /@types/retry/0.12.1: 496 | resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} 497 | dev: true 498 | 499 | /JSONStream/1.3.5: 500 | resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} 501 | hasBin: true 502 | dependencies: 503 | jsonparse: 1.3.1 504 | through: 2.3.8 505 | dev: true 506 | 507 | /agent-base/6.0.2: 508 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} 509 | engines: {node: '>= 6.0.0'} 510 | dependencies: 511 | debug: 4.3.3 512 | transitivePeerDependencies: 513 | - supports-color 514 | dev: true 515 | 516 | /aggregate-error/3.1.0: 517 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} 518 | engines: {node: '>=8'} 519 | dependencies: 520 | clean-stack: 2.2.0 521 | indent-string: 4.0.0 522 | dev: true 523 | 524 | /ansi-escapes/4.3.2: 525 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 526 | engines: {node: '>=8'} 527 | dependencies: 528 | type-fest: 0.21.3 529 | dev: true 530 | 531 | /ansi-regex/5.0.1: 532 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 533 | engines: {node: '>=8'} 534 | dev: true 535 | 536 | /ansi-styles/3.2.1: 537 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 538 | engines: {node: '>=4'} 539 | dependencies: 540 | color-convert: 1.9.3 541 | dev: true 542 | 543 | /ansi-styles/4.3.0: 544 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 545 | engines: {node: '>=8'} 546 | dependencies: 547 | color-convert: 2.0.1 548 | dev: true 549 | 550 | /ansicolors/0.3.2: 551 | resolution: {integrity: sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=} 552 | dev: true 553 | 554 | /arg/4.1.3: 555 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 556 | dev: true 557 | 558 | /argv-formatter/1.0.0: 559 | resolution: {integrity: sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=} 560 | dev: true 561 | 562 | /array-ify/1.0.0: 563 | resolution: {integrity: sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=} 564 | dev: true 565 | 566 | /array-union/2.1.0: 567 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 568 | engines: {node: '>=8'} 569 | dev: true 570 | 571 | /arrify/1.0.1: 572 | resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=} 573 | engines: {node: '>=0.10.0'} 574 | dev: true 575 | 576 | /balanced-match/1.0.2: 577 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 578 | dev: true 579 | 580 | /barecolor/1.0.1: 581 | resolution: {integrity: sha512-ncJ680U+r1CGBt73L3O6V9GIAPy3hbDmWODEQajwEnDmmzeStvc4UYhapUSxUpS76+MHxyRihzZfwhyl122Zdw==} 582 | dev: true 583 | 584 | /baretest/2.0.0: 585 | resolution: {integrity: sha512-hRmYnBojeijT3jH0GtqLoHus+adPoeYh2NmcNT3wBPH903AUphcFqs1gJ64fBovDXql51Df24g9D9jcXRZd4vA==} 586 | dependencies: 587 | barecolor: 1.0.1 588 | dev: true 589 | 590 | /before-after-hook/2.2.2: 591 | resolution: {integrity: sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==} 592 | dev: true 593 | 594 | /bottleneck/2.19.5: 595 | resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} 596 | dev: true 597 | 598 | /brace-expansion/1.1.11: 599 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 600 | dependencies: 601 | balanced-match: 1.0.2 602 | concat-map: 0.0.1 603 | dev: true 604 | 605 | /braces/3.0.2: 606 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 607 | engines: {node: '>=8'} 608 | dependencies: 609 | fill-range: 7.0.1 610 | dev: true 611 | 612 | /buffer-from/1.1.2: 613 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 614 | dev: true 615 | 616 | /c8/7.10.0: 617 | resolution: {integrity: sha512-OAwfC5+emvA6R7pkYFVBTOtI5ruf9DahffGmIqUc9l6wEh0h7iAFP6dt/V9Ioqlr2zW5avX9U9/w1I4alTRHkA==} 618 | engines: {node: '>=10.12.0'} 619 | hasBin: true 620 | dependencies: 621 | '@bcoe/v8-coverage': 0.2.3 622 | '@istanbuljs/schema': 0.1.3 623 | find-up: 5.0.0 624 | foreground-child: 2.0.0 625 | istanbul-lib-coverage: 3.2.0 626 | istanbul-lib-report: 3.0.0 627 | istanbul-reports: 3.1.1 628 | rimraf: 3.0.2 629 | test-exclude: 6.0.0 630 | v8-to-istanbul: 8.1.0 631 | yargs: 16.2.0 632 | yargs-parser: 20.2.9 633 | dev: true 634 | 635 | /callsites/3.1.0: 636 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 637 | engines: {node: '>=6'} 638 | dev: true 639 | 640 | /camelcase-keys/6.2.2: 641 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} 642 | engines: {node: '>=8'} 643 | dependencies: 644 | camelcase: 5.3.1 645 | map-obj: 4.3.0 646 | quick-lru: 4.0.1 647 | dev: true 648 | 649 | /camelcase/5.3.1: 650 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 651 | engines: {node: '>=6'} 652 | dev: true 653 | 654 | /cardinal/2.1.1: 655 | resolution: {integrity: sha1-fMEFXYItISlU0HsIXeolHMe8VQU=} 656 | hasBin: true 657 | dependencies: 658 | ansicolors: 0.3.2 659 | redeyed: 2.1.1 660 | dev: true 661 | 662 | /chalk/2.4.2: 663 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 664 | engines: {node: '>=4'} 665 | dependencies: 666 | ansi-styles: 3.2.1 667 | escape-string-regexp: 1.0.5 668 | supports-color: 5.5.0 669 | dev: true 670 | 671 | /chalk/4.1.2: 672 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 673 | engines: {node: '>=10'} 674 | dependencies: 675 | ansi-styles: 4.3.0 676 | supports-color: 7.2.0 677 | dev: true 678 | 679 | /ci-info/3.3.0: 680 | resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==} 681 | dev: true 682 | 683 | /clean-stack/2.2.0: 684 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} 685 | engines: {node: '>=6'} 686 | dev: true 687 | 688 | /cli-table3/0.6.0: 689 | resolution: {integrity: sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==} 690 | engines: {node: 10.* || >= 12.*} 691 | dependencies: 692 | object-assign: 4.1.1 693 | string-width: 4.2.3 694 | optionalDependencies: 695 | colors: 1.4.0 696 | dev: true 697 | 698 | /cliui/7.0.4: 699 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 700 | dependencies: 701 | string-width: 4.2.3 702 | strip-ansi: 6.0.1 703 | wrap-ansi: 7.0.0 704 | dev: true 705 | 706 | /color-convert/1.9.3: 707 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 708 | dependencies: 709 | color-name: 1.1.3 710 | dev: true 711 | 712 | /color-convert/2.0.1: 713 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 714 | engines: {node: '>=7.0.0'} 715 | dependencies: 716 | color-name: 1.1.4 717 | dev: true 718 | 719 | /color-name/1.1.3: 720 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 721 | dev: true 722 | 723 | /color-name/1.1.4: 724 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 725 | dev: true 726 | 727 | /colors/1.4.0: 728 | resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} 729 | engines: {node: '>=0.1.90'} 730 | requiresBuild: true 731 | dev: true 732 | optional: true 733 | 734 | /commitlint/15.0.0: 735 | resolution: {integrity: sha512-I0lJLzR4h5iswM6pVFizMz3vlTfCkd1orOpg/7s0Ug+sx2htbZo5TU1gGsd5C1v8MSA98sqY2zprRRLnxs7DaA==} 736 | engines: {node: '>=v12'} 737 | hasBin: true 738 | dependencies: 739 | '@commitlint/cli': 15.0.0 740 | '@commitlint/types': 15.0.0 741 | dev: true 742 | 743 | /compare-func/2.0.0: 744 | resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} 745 | dependencies: 746 | array-ify: 1.0.0 747 | dot-prop: 5.3.0 748 | dev: true 749 | 750 | /concat-map/0.0.1: 751 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 752 | dev: true 753 | 754 | /conventional-changelog-angular/5.0.13: 755 | resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} 756 | engines: {node: '>=10'} 757 | dependencies: 758 | compare-func: 2.0.0 759 | q: 1.5.1 760 | dev: true 761 | 762 | /conventional-changelog-conventionalcommits/4.6.1: 763 | resolution: {integrity: sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw==} 764 | engines: {node: '>=10'} 765 | dependencies: 766 | compare-func: 2.0.0 767 | lodash: 4.17.21 768 | q: 1.5.1 769 | dev: true 770 | 771 | /conventional-changelog-writer/5.0.0: 772 | resolution: {integrity: sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g==} 773 | engines: {node: '>=10'} 774 | hasBin: true 775 | dependencies: 776 | conventional-commits-filter: 2.0.7 777 | dateformat: 3.0.3 778 | handlebars: 4.7.7 779 | json-stringify-safe: 5.0.1 780 | lodash: 4.17.21 781 | meow: 8.1.2 782 | semver: 6.3.0 783 | split: 1.0.1 784 | through2: 4.0.2 785 | dev: true 786 | 787 | /conventional-commits-filter/2.0.7: 788 | resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} 789 | engines: {node: '>=10'} 790 | dependencies: 791 | lodash.ismatch: 4.4.0 792 | modify-values: 1.0.1 793 | dev: true 794 | 795 | /conventional-commits-parser/3.2.3: 796 | resolution: {integrity: sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==} 797 | engines: {node: '>=10'} 798 | hasBin: true 799 | dependencies: 800 | is-text-path: 1.0.1 801 | JSONStream: 1.3.5 802 | lodash: 4.17.21 803 | meow: 8.1.2 804 | split2: 3.2.2 805 | through2: 4.0.2 806 | dev: true 807 | 808 | /convert-source-map/1.8.0: 809 | resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} 810 | dependencies: 811 | safe-buffer: 5.1.2 812 | dev: true 813 | 814 | /core-util-is/1.0.3: 815 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 816 | dev: true 817 | 818 | /cosmiconfig/7.0.1: 819 | resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} 820 | engines: {node: '>=10'} 821 | dependencies: 822 | '@types/parse-json': 4.0.0 823 | import-fresh: 3.3.0 824 | parse-json: 5.2.0 825 | path-type: 4.0.0 826 | yaml: 1.10.2 827 | dev: true 828 | 829 | /create-require/1.1.1: 830 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 831 | dev: true 832 | 833 | /cross-spawn/7.0.3: 834 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 835 | engines: {node: '>= 8'} 836 | dependencies: 837 | path-key: 3.1.1 838 | shebang-command: 2.0.0 839 | which: 2.0.2 840 | dev: true 841 | 842 | /crypto-random-string/2.0.0: 843 | resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} 844 | engines: {node: '>=8'} 845 | dev: true 846 | 847 | /css-in-js-utils/2.0.1: 848 | resolution: {integrity: sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==} 849 | dependencies: 850 | hyphenate-style-name: 1.0.4 851 | isobject: 3.0.1 852 | dev: false 853 | 854 | /css-tree/1.1.3: 855 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} 856 | engines: {node: '>=8.0.0'} 857 | dependencies: 858 | mdn-data: 2.0.14 859 | source-map: 0.6.1 860 | dev: false 861 | 862 | /csstype/3.0.10: 863 | resolution: {integrity: sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==} 864 | dev: false 865 | 866 | /dargs/7.0.0: 867 | resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} 868 | engines: {node: '>=8'} 869 | dev: true 870 | 871 | /dateformat/3.0.3: 872 | resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} 873 | dev: true 874 | 875 | /debug/4.3.3: 876 | resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} 877 | engines: {node: '>=6.0'} 878 | peerDependencies: 879 | supports-color: '*' 880 | peerDependenciesMeta: 881 | supports-color: 882 | optional: true 883 | dependencies: 884 | ms: 2.1.2 885 | dev: true 886 | 887 | /decamelize-keys/1.1.0: 888 | resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=} 889 | engines: {node: '>=0.10.0'} 890 | dependencies: 891 | decamelize: 1.2.0 892 | map-obj: 1.0.1 893 | dev: true 894 | 895 | /decamelize/1.2.0: 896 | resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} 897 | engines: {node: '>=0.10.0'} 898 | dev: true 899 | 900 | /deep-extend/0.6.0: 901 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 902 | engines: {node: '>=4.0.0'} 903 | dev: true 904 | 905 | /deepmerge/4.2.2: 906 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 907 | engines: {node: '>=0.10.0'} 908 | dev: false 909 | 910 | /del/6.0.0: 911 | resolution: {integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==} 912 | engines: {node: '>=10'} 913 | dependencies: 914 | globby: 11.0.4 915 | graceful-fs: 4.2.8 916 | is-glob: 4.0.3 917 | is-path-cwd: 2.2.0 918 | is-path-inside: 3.0.3 919 | p-map: 4.0.0 920 | rimraf: 3.0.2 921 | slash: 3.0.0 922 | dev: true 923 | 924 | /deprecation/2.3.1: 925 | resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} 926 | dev: true 927 | 928 | /dequal/2.0.2: 929 | resolution: {integrity: sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==} 930 | engines: {node: '>=6'} 931 | dev: true 932 | 933 | /diff/4.0.2: 934 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 935 | engines: {node: '>=0.3.1'} 936 | dev: true 937 | 938 | /diff/5.0.0: 939 | resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} 940 | engines: {node: '>=0.3.1'} 941 | dev: true 942 | 943 | /dir-glob/3.0.1: 944 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 945 | engines: {node: '>=8'} 946 | dependencies: 947 | path-type: 4.0.0 948 | dev: true 949 | 950 | /dot-prop/5.3.0: 951 | resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} 952 | engines: {node: '>=8'} 953 | dependencies: 954 | is-obj: 2.0.0 955 | dev: true 956 | 957 | /duplexer2/0.1.4: 958 | resolution: {integrity: sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=} 959 | dependencies: 960 | readable-stream: 2.3.7 961 | dev: true 962 | 963 | /emoji-regex/8.0.0: 964 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 965 | dev: true 966 | 967 | /env-ci/5.5.0: 968 | resolution: {integrity: sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==} 969 | engines: {node: '>=10.17'} 970 | dependencies: 971 | execa: 5.1.1 972 | fromentries: 1.3.2 973 | java-properties: 1.0.2 974 | dev: true 975 | 976 | /error-ex/1.3.2: 977 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 978 | dependencies: 979 | is-arrayish: 0.2.1 980 | dev: true 981 | 982 | /error-stack-parser/2.0.6: 983 | resolution: {integrity: sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==} 984 | dependencies: 985 | stackframe: 1.2.0 986 | dev: false 987 | 988 | /esbuild-android-arm64/0.14.7: 989 | resolution: {integrity: sha512-9/Q1NC4JErvsXzJKti0NHt+vzKjZOgPIjX/e6kkuCzgfT/GcO3FVBcGIv4HeJG7oMznE6KyKhvLrFgt7CdU2/w==} 990 | cpu: [arm64] 991 | os: [android] 992 | requiresBuild: true 993 | dev: true 994 | optional: true 995 | 996 | /esbuild-darwin-64/0.14.7: 997 | resolution: {integrity: sha512-Z9X+3TT/Xj+JiZTVlwHj2P+8GoiSmUnGVz0YZTSt8WTbW3UKw5Pw2ucuJ8VzbD2FPy0jbIKJkko/6CMTQchShQ==} 998 | cpu: [x64] 999 | os: [darwin] 1000 | requiresBuild: true 1001 | dev: true 1002 | optional: true 1003 | 1004 | /esbuild-darwin-arm64/0.14.7: 1005 | resolution: {integrity: sha512-68e7COhmwIiLXBEyxUxZSSU0akgv8t3e50e2QOtKdBUE0F6KIRISzFntLe2rYlNqSsjGWsIO6CCc9tQxijjSkw==} 1006 | cpu: [arm64] 1007 | os: [darwin] 1008 | requiresBuild: true 1009 | dev: true 1010 | optional: true 1011 | 1012 | /esbuild-freebsd-64/0.14.7: 1013 | resolution: {integrity: sha512-76zy5jAjPiXX/S3UvRgG85Bb0wy0zv/J2lel3KtHi4V7GUTBfhNUPt0E5bpSXJ6yMT7iThhnA5rOn+IJiUcslQ==} 1014 | cpu: [x64] 1015 | os: [freebsd] 1016 | requiresBuild: true 1017 | dev: true 1018 | optional: true 1019 | 1020 | /esbuild-freebsd-arm64/0.14.7: 1021 | resolution: {integrity: sha512-lSlYNLiqyzd7qCN5CEOmLxn7MhnGHPcu5KuUYOG1i+t5A6q7LgBmfYC9ZHJBoYyow3u4CNu79AWHbvVLpE/VQQ==} 1022 | cpu: [arm64] 1023 | os: [freebsd] 1024 | requiresBuild: true 1025 | dev: true 1026 | optional: true 1027 | 1028 | /esbuild-linux-32/0.14.7: 1029 | resolution: {integrity: sha512-Vk28u409wVOXqTaT6ek0TnfQG4Ty1aWWfiysIaIRERkNLhzLhUf4i+qJBN8mMuGTYOkE40F0Wkbp6m+IidOp2A==} 1030 | cpu: [ia32] 1031 | os: [linux] 1032 | requiresBuild: true 1033 | dev: true 1034 | optional: true 1035 | 1036 | /esbuild-linux-64/0.14.7: 1037 | resolution: {integrity: sha512-+Lvz6x+8OkRk3K2RtZwO+0a92jy9si9cUea5Zoru4yJ/6EQm9ENX5seZE0X9DTwk1dxJbjmLsJsd3IoowyzgVg==} 1038 | cpu: [x64] 1039 | os: [linux] 1040 | requiresBuild: true 1041 | dev: true 1042 | optional: true 1043 | 1044 | /esbuild-linux-arm/0.14.7: 1045 | resolution: {integrity: sha512-OzpXEBogbYdcBqE4uKynuSn5YSetCvK03Qv1HcOY1VN6HmReuatjJ21dCH+YPHSpMEF0afVCnNfffvsGEkxGJQ==} 1046 | cpu: [arm] 1047 | os: [linux] 1048 | requiresBuild: true 1049 | dev: true 1050 | optional: true 1051 | 1052 | /esbuild-linux-arm64/0.14.7: 1053 | resolution: {integrity: sha512-kJd5beWSqteSAW086qzCEsH6uwpi7QRIpzYWHzEYwKKu9DiG1TwIBegQJmLpPsLp4v5RAFjea0JAmAtpGtRpqg==} 1054 | cpu: [arm64] 1055 | os: [linux] 1056 | requiresBuild: true 1057 | dev: true 1058 | optional: true 1059 | 1060 | /esbuild-linux-mips64le/0.14.7: 1061 | resolution: {integrity: sha512-mFWpnDhZJmj/h7pxqn1GGDsKwRfqtV7fx6kTF5pr4PfXe8pIaTERpwcKkoCwZUkWAOmUEjMIUAvFM72A6hMZnA==} 1062 | cpu: [mips64el] 1063 | os: [linux] 1064 | requiresBuild: true 1065 | dev: true 1066 | optional: true 1067 | 1068 | /esbuild-linux-ppc64le/0.14.7: 1069 | resolution: {integrity: sha512-wM7f4M0bsQXfDL4JbbYD0wsr8cC8KaQ3RPWc/fV27KdErPW7YsqshZZSjDV0kbhzwpNNdhLItfbaRT8OE8OaKA==} 1070 | cpu: [ppc64] 1071 | os: [linux] 1072 | requiresBuild: true 1073 | dev: true 1074 | optional: true 1075 | 1076 | /esbuild-netbsd-64/0.14.7: 1077 | resolution: {integrity: sha512-J/afS7woKyzGgAL5FlgvMyqgt5wQ597lgsT+xc2yJ9/7BIyezeXutXqfh05vszy2k3kSvhLesugsxIA71WsqBw==} 1078 | cpu: [x64] 1079 | os: [netbsd] 1080 | requiresBuild: true 1081 | dev: true 1082 | optional: true 1083 | 1084 | /esbuild-openbsd-64/0.14.7: 1085 | resolution: {integrity: sha512-7CcxgdlCD+zAPyveKoznbgr3i0Wnh0L8BDGRCjE/5UGkm5P/NQko51tuIDaYof8zbmXjjl0OIt9lSo4W7I8mrw==} 1086 | cpu: [x64] 1087 | os: [openbsd] 1088 | requiresBuild: true 1089 | dev: true 1090 | optional: true 1091 | 1092 | /esbuild-register/3.2.1_esbuild@0.14.7: 1093 | resolution: {integrity: sha512-LFgzsqCHsFUpTZdYJFTl1o5p60+C4nZ65BzFYPS1jKGwiKk6JLH8tuLwuydvpgreNUAeDUhTPJgJNjmpZKSOpQ==} 1094 | peerDependencies: 1095 | esbuild: '>=0.12 <1' 1096 | dependencies: 1097 | esbuild: 0.14.7 1098 | jsonc-parser: 3.0.0 1099 | dev: true 1100 | 1101 | /esbuild-sunos-64/0.14.7: 1102 | resolution: {integrity: sha512-GKCafP2j/KUljVC3nesw1wLFSZktb2FGCmoT1+730zIF5O6hNroo0bSEofm6ZK5mNPnLiSaiLyRB9YFgtkd5Xg==} 1103 | cpu: [x64] 1104 | os: [sunos] 1105 | requiresBuild: true 1106 | dev: true 1107 | optional: true 1108 | 1109 | /esbuild-windows-32/0.14.7: 1110 | resolution: {integrity: sha512-5I1GeL/gZoUUdTPA0ws54bpYdtyeA2t6MNISalsHpY269zK8Jia/AXB3ta/KcDHv2SvNwabpImeIPXC/k0YW6A==} 1111 | cpu: [ia32] 1112 | os: [win32] 1113 | requiresBuild: true 1114 | dev: true 1115 | optional: true 1116 | 1117 | /esbuild-windows-64/0.14.7: 1118 | resolution: {integrity: sha512-CIGKCFpQOSlYsLMbxt8JjxxvVw9MlF1Rz2ABLVfFyHUF5OeqHD5fPhGrCVNaVrhO8Xrm+yFmtjcZudUGr5/WYQ==} 1119 | cpu: [x64] 1120 | os: [win32] 1121 | requiresBuild: true 1122 | dev: true 1123 | optional: true 1124 | 1125 | /esbuild-windows-arm64/0.14.7: 1126 | resolution: {integrity: sha512-eOs1eSivOqN7cFiRIukEruWhaCf75V0N8P0zP7dh44LIhLl8y6/z++vv9qQVbkBm5/D7M7LfCfCTmt1f1wHOCw==} 1127 | cpu: [arm64] 1128 | os: [win32] 1129 | requiresBuild: true 1130 | dev: true 1131 | optional: true 1132 | 1133 | /esbuild/0.14.7: 1134 | resolution: {integrity: sha512-+u/msd6iu+HvfysUPkZ9VHm83LImmSNnecYPfFI01pQ7TTcsFR+V0BkybZX7mPtIaI7LCrse6YRj+v3eraJSgw==} 1135 | hasBin: true 1136 | requiresBuild: true 1137 | optionalDependencies: 1138 | esbuild-android-arm64: 0.14.7 1139 | esbuild-darwin-64: 0.14.7 1140 | esbuild-darwin-arm64: 0.14.7 1141 | esbuild-freebsd-64: 0.14.7 1142 | esbuild-freebsd-arm64: 0.14.7 1143 | esbuild-linux-32: 0.14.7 1144 | esbuild-linux-64: 0.14.7 1145 | esbuild-linux-arm: 0.14.7 1146 | esbuild-linux-arm64: 0.14.7 1147 | esbuild-linux-mips64le: 0.14.7 1148 | esbuild-linux-ppc64le: 0.14.7 1149 | esbuild-netbsd-64: 0.14.7 1150 | esbuild-openbsd-64: 0.14.7 1151 | esbuild-sunos-64: 0.14.7 1152 | esbuild-windows-32: 0.14.7 1153 | esbuild-windows-64: 0.14.7 1154 | esbuild-windows-arm64: 0.14.7 1155 | dev: true 1156 | 1157 | /escalade/3.1.1: 1158 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1159 | engines: {node: '>=6'} 1160 | dev: true 1161 | 1162 | /escape-string-regexp/1.0.5: 1163 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 1164 | engines: {node: '>=0.8.0'} 1165 | dev: true 1166 | 1167 | /esprima/4.0.1: 1168 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1169 | engines: {node: '>=4'} 1170 | hasBin: true 1171 | dev: true 1172 | 1173 | /execa/5.1.1: 1174 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 1175 | engines: {node: '>=10'} 1176 | dependencies: 1177 | cross-spawn: 7.0.3 1178 | get-stream: 6.0.1 1179 | human-signals: 2.1.0 1180 | is-stream: 2.0.1 1181 | merge-stream: 2.0.0 1182 | npm-run-path: 4.0.1 1183 | onetime: 5.1.2 1184 | signal-exit: 3.0.6 1185 | strip-final-newline: 2.0.0 1186 | dev: true 1187 | 1188 | /fast-glob/3.2.7: 1189 | resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} 1190 | engines: {node: '>=8'} 1191 | dependencies: 1192 | '@nodelib/fs.stat': 2.0.5 1193 | '@nodelib/fs.walk': 1.2.8 1194 | glob-parent: 5.1.2 1195 | merge2: 1.4.1 1196 | micromatch: 4.0.4 1197 | dev: true 1198 | 1199 | /fastest-stable-stringify/2.0.2: 1200 | resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} 1201 | dev: false 1202 | 1203 | /fastq/1.13.0: 1204 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 1205 | dependencies: 1206 | reusify: 1.0.4 1207 | dev: true 1208 | 1209 | /figures/2.0.0: 1210 | resolution: {integrity: sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=} 1211 | engines: {node: '>=4'} 1212 | dependencies: 1213 | escape-string-regexp: 1.0.5 1214 | dev: true 1215 | 1216 | /figures/3.2.0: 1217 | resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} 1218 | engines: {node: '>=8'} 1219 | dependencies: 1220 | escape-string-regexp: 1.0.5 1221 | dev: true 1222 | 1223 | /fill-range/7.0.1: 1224 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1225 | engines: {node: '>=8'} 1226 | dependencies: 1227 | to-regex-range: 5.0.1 1228 | dev: true 1229 | 1230 | /find-up/2.1.0: 1231 | resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} 1232 | engines: {node: '>=4'} 1233 | dependencies: 1234 | locate-path: 2.0.0 1235 | dev: true 1236 | 1237 | /find-up/4.1.0: 1238 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1239 | engines: {node: '>=8'} 1240 | dependencies: 1241 | locate-path: 5.0.0 1242 | path-exists: 4.0.0 1243 | dev: true 1244 | 1245 | /find-up/5.0.0: 1246 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1247 | engines: {node: '>=10'} 1248 | dependencies: 1249 | locate-path: 6.0.0 1250 | path-exists: 4.0.0 1251 | dev: true 1252 | 1253 | /find-versions/4.0.0: 1254 | resolution: {integrity: sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==} 1255 | engines: {node: '>=10'} 1256 | dependencies: 1257 | semver-regex: 3.1.3 1258 | dev: true 1259 | 1260 | /foreground-child/2.0.0: 1261 | resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} 1262 | engines: {node: '>=8.0.0'} 1263 | dependencies: 1264 | cross-spawn: 7.0.3 1265 | signal-exit: 3.0.6 1266 | dev: true 1267 | 1268 | /from2/2.3.0: 1269 | resolution: {integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=} 1270 | dependencies: 1271 | inherits: 2.0.4 1272 | readable-stream: 2.3.7 1273 | dev: true 1274 | 1275 | /fromentries/1.3.2: 1276 | resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} 1277 | dev: true 1278 | 1279 | /fs-extra/10.0.0: 1280 | resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} 1281 | engines: {node: '>=12'} 1282 | dependencies: 1283 | graceful-fs: 4.2.8 1284 | jsonfile: 6.1.0 1285 | universalify: 2.0.0 1286 | dev: true 1287 | 1288 | /fs.realpath/1.0.0: 1289 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 1290 | dev: true 1291 | 1292 | /function-bind/1.1.1: 1293 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1294 | dev: true 1295 | 1296 | /get-caller-file/2.0.5: 1297 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1298 | engines: {node: 6.* || 8.* || >= 10.*} 1299 | dev: true 1300 | 1301 | /get-stream/6.0.1: 1302 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1303 | engines: {node: '>=10'} 1304 | dev: true 1305 | 1306 | /git-log-parser/1.2.0: 1307 | resolution: {integrity: sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=} 1308 | dependencies: 1309 | argv-formatter: 1.0.0 1310 | spawn-error-forwarder: 1.0.0 1311 | split2: 1.0.0 1312 | stream-combiner2: 1.1.1 1313 | through2: 2.0.5 1314 | traverse: 0.6.6 1315 | dev: true 1316 | 1317 | /git-raw-commits/2.0.10: 1318 | resolution: {integrity: sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==} 1319 | engines: {node: '>=10'} 1320 | hasBin: true 1321 | dependencies: 1322 | dargs: 7.0.0 1323 | lodash: 4.17.21 1324 | meow: 8.1.2 1325 | split2: 3.2.2 1326 | through2: 4.0.2 1327 | dev: true 1328 | 1329 | /glob-parent/5.1.2: 1330 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1331 | engines: {node: '>= 6'} 1332 | dependencies: 1333 | is-glob: 4.0.3 1334 | dev: true 1335 | 1336 | /glob/7.2.0: 1337 | resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} 1338 | dependencies: 1339 | fs.realpath: 1.0.0 1340 | inflight: 1.0.6 1341 | inherits: 2.0.4 1342 | minimatch: 3.0.4 1343 | once: 1.4.0 1344 | path-is-absolute: 1.0.1 1345 | dev: true 1346 | 1347 | /global-dirs/0.1.1: 1348 | resolution: {integrity: sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=} 1349 | engines: {node: '>=4'} 1350 | dependencies: 1351 | ini: 1.3.8 1352 | dev: true 1353 | 1354 | /globby/11.0.4: 1355 | resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} 1356 | engines: {node: '>=10'} 1357 | dependencies: 1358 | array-union: 2.1.0 1359 | dir-glob: 3.0.1 1360 | fast-glob: 3.2.7 1361 | ignore: 5.2.0 1362 | merge2: 1.4.1 1363 | slash: 3.0.0 1364 | dev: true 1365 | 1366 | /graceful-fs/4.2.8: 1367 | resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} 1368 | dev: true 1369 | 1370 | /handlebars/4.7.7: 1371 | resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} 1372 | engines: {node: '>=0.4.7'} 1373 | hasBin: true 1374 | dependencies: 1375 | minimist: 1.2.5 1376 | neo-async: 2.6.2 1377 | source-map: 0.6.1 1378 | wordwrap: 1.0.0 1379 | optionalDependencies: 1380 | uglify-js: 3.14.5 1381 | dev: true 1382 | 1383 | /hard-rejection/2.1.0: 1384 | resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} 1385 | engines: {node: '>=6'} 1386 | dev: true 1387 | 1388 | /has-flag/3.0.0: 1389 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 1390 | engines: {node: '>=4'} 1391 | dev: true 1392 | 1393 | /has-flag/4.0.0: 1394 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1395 | engines: {node: '>=8'} 1396 | dev: true 1397 | 1398 | /has/1.0.3: 1399 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1400 | engines: {node: '>= 0.4.0'} 1401 | dependencies: 1402 | function-bind: 1.1.1 1403 | dev: true 1404 | 1405 | /hook-std/2.0.0: 1406 | resolution: {integrity: sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==} 1407 | engines: {node: '>=8'} 1408 | dev: true 1409 | 1410 | /hosted-git-info/2.8.9: 1411 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1412 | dev: true 1413 | 1414 | /hosted-git-info/4.0.2: 1415 | resolution: {integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==} 1416 | engines: {node: '>=10'} 1417 | dependencies: 1418 | lru-cache: 6.0.0 1419 | dev: true 1420 | 1421 | /html-escaper/2.0.2: 1422 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 1423 | dev: true 1424 | 1425 | /http-proxy-agent/5.0.0: 1426 | resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} 1427 | engines: {node: '>= 6'} 1428 | dependencies: 1429 | '@tootallnate/once': 2.0.0 1430 | agent-base: 6.0.2 1431 | debug: 4.3.3 1432 | transitivePeerDependencies: 1433 | - supports-color 1434 | dev: true 1435 | 1436 | /https-proxy-agent/5.0.0: 1437 | resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} 1438 | engines: {node: '>= 6'} 1439 | dependencies: 1440 | agent-base: 6.0.2 1441 | debug: 4.3.3 1442 | transitivePeerDependencies: 1443 | - supports-color 1444 | dev: true 1445 | 1446 | /human-signals/2.1.0: 1447 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1448 | engines: {node: '>=10.17.0'} 1449 | dev: true 1450 | 1451 | /husky/7.0.4: 1452 | resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==} 1453 | engines: {node: '>=12'} 1454 | hasBin: true 1455 | dev: true 1456 | 1457 | /hyphenate-style-name/1.0.4: 1458 | resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} 1459 | dev: false 1460 | 1461 | /ignore/5.2.0: 1462 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} 1463 | engines: {node: '>= 4'} 1464 | dev: true 1465 | 1466 | /import-fresh/3.3.0: 1467 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1468 | engines: {node: '>=6'} 1469 | dependencies: 1470 | parent-module: 1.0.1 1471 | resolve-from: 4.0.0 1472 | dev: true 1473 | 1474 | /import-from/4.0.0: 1475 | resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} 1476 | engines: {node: '>=12.2'} 1477 | dev: true 1478 | 1479 | /indent-string/4.0.0: 1480 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1481 | engines: {node: '>=8'} 1482 | dev: true 1483 | 1484 | /inflight/1.0.6: 1485 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 1486 | dependencies: 1487 | once: 1.4.0 1488 | wrappy: 1.0.2 1489 | dev: true 1490 | 1491 | /inherits/2.0.4: 1492 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1493 | dev: true 1494 | 1495 | /ini/1.3.8: 1496 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1497 | dev: true 1498 | 1499 | /inline-style-prefixer/6.0.1: 1500 | resolution: {integrity: sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ==} 1501 | dependencies: 1502 | css-in-js-utils: 2.0.1 1503 | dev: false 1504 | 1505 | /into-stream/6.0.0: 1506 | resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==} 1507 | engines: {node: '>=10'} 1508 | dependencies: 1509 | from2: 2.3.0 1510 | p-is-promise: 3.0.0 1511 | dev: true 1512 | 1513 | /is-arrayish/0.2.1: 1514 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} 1515 | dev: true 1516 | 1517 | /is-ci/3.0.1: 1518 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} 1519 | hasBin: true 1520 | dependencies: 1521 | ci-info: 3.3.0 1522 | dev: true 1523 | 1524 | /is-core-module/2.8.0: 1525 | resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==} 1526 | dependencies: 1527 | has: 1.0.3 1528 | dev: true 1529 | 1530 | /is-extglob/2.1.1: 1531 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 1532 | engines: {node: '>=0.10.0'} 1533 | dev: true 1534 | 1535 | /is-fullwidth-code-point/3.0.0: 1536 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1537 | engines: {node: '>=8'} 1538 | dev: true 1539 | 1540 | /is-glob/4.0.3: 1541 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1542 | engines: {node: '>=0.10.0'} 1543 | dependencies: 1544 | is-extglob: 2.1.1 1545 | dev: true 1546 | 1547 | /is-number/7.0.0: 1548 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1549 | engines: {node: '>=0.12.0'} 1550 | dev: true 1551 | 1552 | /is-obj/2.0.0: 1553 | resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} 1554 | engines: {node: '>=8'} 1555 | dev: true 1556 | 1557 | /is-path-cwd/2.2.0: 1558 | resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} 1559 | engines: {node: '>=6'} 1560 | dev: true 1561 | 1562 | /is-path-inside/3.0.3: 1563 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1564 | engines: {node: '>=8'} 1565 | dev: true 1566 | 1567 | /is-plain-obj/1.1.0: 1568 | resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=} 1569 | engines: {node: '>=0.10.0'} 1570 | dev: true 1571 | 1572 | /is-plain-object/5.0.0: 1573 | resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} 1574 | engines: {node: '>=0.10.0'} 1575 | dev: true 1576 | 1577 | /is-stream/2.0.1: 1578 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1579 | engines: {node: '>=8'} 1580 | dev: true 1581 | 1582 | /is-text-path/1.0.1: 1583 | resolution: {integrity: sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=} 1584 | engines: {node: '>=0.10.0'} 1585 | dependencies: 1586 | text-extensions: 1.9.0 1587 | dev: true 1588 | 1589 | /isarray/1.0.0: 1590 | resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} 1591 | dev: true 1592 | 1593 | /isexe/2.0.0: 1594 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} 1595 | dev: true 1596 | 1597 | /isobject/3.0.1: 1598 | resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} 1599 | engines: {node: '>=0.10.0'} 1600 | dev: false 1601 | 1602 | /issue-parser/6.0.0: 1603 | resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==} 1604 | engines: {node: '>=10.13'} 1605 | dependencies: 1606 | lodash.capitalize: 4.2.1 1607 | lodash.escaperegexp: 4.1.2 1608 | lodash.isplainobject: 4.0.6 1609 | lodash.isstring: 4.0.1 1610 | lodash.uniqby: 4.7.0 1611 | dev: true 1612 | 1613 | /istanbul-lib-coverage/3.2.0: 1614 | resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} 1615 | engines: {node: '>=8'} 1616 | dev: true 1617 | 1618 | /istanbul-lib-report/3.0.0: 1619 | resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} 1620 | engines: {node: '>=8'} 1621 | dependencies: 1622 | istanbul-lib-coverage: 3.2.0 1623 | make-dir: 3.1.0 1624 | supports-color: 7.2.0 1625 | dev: true 1626 | 1627 | /istanbul-reports/3.1.1: 1628 | resolution: {integrity: sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==} 1629 | engines: {node: '>=8'} 1630 | dependencies: 1631 | html-escaper: 2.0.2 1632 | istanbul-lib-report: 3.0.0 1633 | dev: true 1634 | 1635 | /java-properties/1.0.2: 1636 | resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} 1637 | engines: {node: '>= 0.6.0'} 1638 | dev: true 1639 | 1640 | /js-tokens/4.0.0: 1641 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1642 | dev: true 1643 | 1644 | /json-parse-better-errors/1.0.2: 1645 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 1646 | dev: true 1647 | 1648 | /json-parse-even-better-errors/2.3.1: 1649 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1650 | dev: true 1651 | 1652 | /json-stringify-safe/5.0.1: 1653 | resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} 1654 | dev: true 1655 | 1656 | /jsonc-parser/3.0.0: 1657 | resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} 1658 | dev: true 1659 | 1660 | /jsonfile/6.1.0: 1661 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 1662 | dependencies: 1663 | universalify: 2.0.0 1664 | optionalDependencies: 1665 | graceful-fs: 4.2.8 1666 | dev: true 1667 | 1668 | /jsonparse/1.3.1: 1669 | resolution: {integrity: sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=} 1670 | engines: {'0': node >= 0.2.0} 1671 | dev: true 1672 | 1673 | /kind-of/6.0.3: 1674 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1675 | engines: {node: '>=0.10.0'} 1676 | dev: true 1677 | 1678 | /kleur/4.1.4: 1679 | resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} 1680 | engines: {node: '>=6'} 1681 | dev: true 1682 | 1683 | /lines-and-columns/1.2.4: 1684 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1685 | dev: true 1686 | 1687 | /load-json-file/4.0.0: 1688 | resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} 1689 | engines: {node: '>=4'} 1690 | dependencies: 1691 | graceful-fs: 4.2.8 1692 | parse-json: 4.0.0 1693 | pify: 3.0.0 1694 | strip-bom: 3.0.0 1695 | dev: true 1696 | 1697 | /locate-path/2.0.0: 1698 | resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} 1699 | engines: {node: '>=4'} 1700 | dependencies: 1701 | p-locate: 2.0.0 1702 | path-exists: 3.0.0 1703 | dev: true 1704 | 1705 | /locate-path/5.0.0: 1706 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1707 | engines: {node: '>=8'} 1708 | dependencies: 1709 | p-locate: 4.1.0 1710 | dev: true 1711 | 1712 | /locate-path/6.0.0: 1713 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1714 | engines: {node: '>=10'} 1715 | dependencies: 1716 | p-locate: 5.0.0 1717 | dev: true 1718 | 1719 | /lodash.capitalize/4.2.1: 1720 | resolution: {integrity: sha1-+CbJtOKoUR2E46yinbBeGk87cqk=} 1721 | dev: true 1722 | 1723 | /lodash.escaperegexp/4.1.2: 1724 | resolution: {integrity: sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=} 1725 | dev: true 1726 | 1727 | /lodash.get/4.4.2: 1728 | resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} 1729 | dev: true 1730 | 1731 | /lodash.ismatch/4.4.0: 1732 | resolution: {integrity: sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=} 1733 | dev: true 1734 | 1735 | /lodash.isplainobject/4.0.6: 1736 | resolution: {integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=} 1737 | dev: true 1738 | 1739 | /lodash.isstring/4.0.1: 1740 | resolution: {integrity: sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=} 1741 | dev: true 1742 | 1743 | /lodash.uniqby/4.7.0: 1744 | resolution: {integrity: sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=} 1745 | dev: true 1746 | 1747 | /lodash/4.17.21: 1748 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1749 | dev: true 1750 | 1751 | /lru-cache/6.0.0: 1752 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1753 | engines: {node: '>=10'} 1754 | dependencies: 1755 | yallist: 4.0.0 1756 | dev: true 1757 | 1758 | /make-dir/3.1.0: 1759 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 1760 | engines: {node: '>=8'} 1761 | dependencies: 1762 | semver: 6.3.0 1763 | dev: true 1764 | 1765 | /make-error/1.3.6: 1766 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1767 | dev: true 1768 | 1769 | /map-obj/1.0.1: 1770 | resolution: {integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=} 1771 | engines: {node: '>=0.10.0'} 1772 | dev: true 1773 | 1774 | /map-obj/4.3.0: 1775 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 1776 | engines: {node: '>=8'} 1777 | dev: true 1778 | 1779 | /marked-terminal/4.2.0_marked@2.1.3: 1780 | resolution: {integrity: sha512-DQfNRV9svZf0Dm9Cf5x5xaVJ1+XjxQW6XjFJ5HFkVyK52SDpj5PCBzS5X5r2w9nHr3mlB0T5201UMLue9fmhUw==} 1781 | peerDependencies: 1782 | marked: ^1.0.0 || ^2.0.0 1783 | dependencies: 1784 | ansi-escapes: 4.3.2 1785 | cardinal: 2.1.1 1786 | chalk: 4.1.2 1787 | cli-table3: 0.6.0 1788 | marked: 2.1.3 1789 | node-emoji: 1.11.0 1790 | supports-hyperlinks: 2.2.0 1791 | dev: true 1792 | 1793 | /marked/2.1.3: 1794 | resolution: {integrity: sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==} 1795 | engines: {node: '>= 10'} 1796 | hasBin: true 1797 | dev: true 1798 | 1799 | /mdn-data/2.0.14: 1800 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} 1801 | dev: false 1802 | 1803 | /meow/8.1.2: 1804 | resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} 1805 | engines: {node: '>=10'} 1806 | dependencies: 1807 | '@types/minimist': 1.2.2 1808 | camelcase-keys: 6.2.2 1809 | decamelize-keys: 1.1.0 1810 | hard-rejection: 2.1.0 1811 | minimist-options: 4.1.0 1812 | normalize-package-data: 3.0.3 1813 | read-pkg-up: 7.0.1 1814 | redent: 3.0.0 1815 | trim-newlines: 3.0.1 1816 | type-fest: 0.18.1 1817 | yargs-parser: 20.2.9 1818 | dev: true 1819 | 1820 | /merge-stream/2.0.0: 1821 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1822 | dev: true 1823 | 1824 | /merge2/1.4.1: 1825 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1826 | engines: {node: '>= 8'} 1827 | dev: true 1828 | 1829 | /micromatch/4.0.4: 1830 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} 1831 | engines: {node: '>=8.6'} 1832 | dependencies: 1833 | braces: 3.0.2 1834 | picomatch: 2.3.0 1835 | dev: true 1836 | 1837 | /mime/3.0.0: 1838 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1839 | engines: {node: '>=10.0.0'} 1840 | hasBin: true 1841 | dev: true 1842 | 1843 | /mimic-fn/2.1.0: 1844 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1845 | engines: {node: '>=6'} 1846 | dev: true 1847 | 1848 | /min-indent/1.0.1: 1849 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1850 | engines: {node: '>=4'} 1851 | dev: true 1852 | 1853 | /minimatch/3.0.4: 1854 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} 1855 | dependencies: 1856 | brace-expansion: 1.1.11 1857 | dev: true 1858 | 1859 | /minimist-options/4.1.0: 1860 | resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} 1861 | engines: {node: '>= 6'} 1862 | dependencies: 1863 | arrify: 1.0.1 1864 | is-plain-obj: 1.1.0 1865 | kind-of: 6.0.3 1866 | dev: true 1867 | 1868 | /minimist/1.2.5: 1869 | resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} 1870 | dev: true 1871 | 1872 | /modify-values/1.0.1: 1873 | resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} 1874 | engines: {node: '>=0.10.0'} 1875 | dev: true 1876 | 1877 | /mri/1.2.0: 1878 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1879 | engines: {node: '>=4'} 1880 | dev: true 1881 | 1882 | /ms/2.1.2: 1883 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1884 | dev: true 1885 | 1886 | /nano-css/5.3.4: 1887 | resolution: {integrity: sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg==} 1888 | peerDependencies: 1889 | react: '*' 1890 | react-dom: '*' 1891 | dependencies: 1892 | css-tree: 1.1.3 1893 | csstype: 3.0.10 1894 | fastest-stable-stringify: 2.0.2 1895 | inline-style-prefixer: 6.0.1 1896 | rtl-css-js: 1.15.0 1897 | sourcemap-codec: 1.4.8 1898 | stacktrace-js: 2.0.2 1899 | stylis: 4.0.13 1900 | dev: false 1901 | 1902 | /neo-async/2.6.2: 1903 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 1904 | dev: true 1905 | 1906 | /nerf-dart/1.0.0: 1907 | resolution: {integrity: sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=} 1908 | dev: true 1909 | 1910 | /node-emoji/1.11.0: 1911 | resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} 1912 | dependencies: 1913 | lodash: 4.17.21 1914 | dev: true 1915 | 1916 | /node-fetch/2.6.6: 1917 | resolution: {integrity: sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==} 1918 | engines: {node: 4.x || >=6.0.0} 1919 | dependencies: 1920 | whatwg-url: 5.0.0 1921 | dev: true 1922 | 1923 | /normalize-package-data/2.5.0: 1924 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1925 | dependencies: 1926 | hosted-git-info: 2.8.9 1927 | resolve: 1.20.0 1928 | semver: 5.7.1 1929 | validate-npm-package-license: 3.0.4 1930 | dev: true 1931 | 1932 | /normalize-package-data/3.0.3: 1933 | resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} 1934 | engines: {node: '>=10'} 1935 | dependencies: 1936 | hosted-git-info: 4.0.2 1937 | is-core-module: 2.8.0 1938 | semver: 7.3.5 1939 | validate-npm-package-license: 3.0.4 1940 | dev: true 1941 | 1942 | /normalize-url/6.1.0: 1943 | resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} 1944 | engines: {node: '>=10'} 1945 | dev: true 1946 | 1947 | /npm-run-path/4.0.1: 1948 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1949 | engines: {node: '>=8'} 1950 | dependencies: 1951 | path-key: 3.1.1 1952 | dev: true 1953 | 1954 | /npm/7.24.2: 1955 | resolution: {integrity: sha512-120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ==} 1956 | engines: {node: '>=10'} 1957 | hasBin: true 1958 | dev: true 1959 | bundledDependencies: 1960 | - '@isaacs/string-locale-compare' 1961 | - '@npmcli/arborist' 1962 | - '@npmcli/ci-detect' 1963 | - '@npmcli/config' 1964 | - '@npmcli/map-workspaces' 1965 | - '@npmcli/package-json' 1966 | - '@npmcli/run-script' 1967 | - abbrev 1968 | - ansicolors 1969 | - ansistyles 1970 | - archy 1971 | - cacache 1972 | - chalk 1973 | - chownr 1974 | - cli-columns 1975 | - cli-table3 1976 | - columnify 1977 | - fastest-levenshtein 1978 | - glob 1979 | - graceful-fs 1980 | - hosted-git-info 1981 | - ini 1982 | - init-package-json 1983 | - is-cidr 1984 | - json-parse-even-better-errors 1985 | - libnpmaccess 1986 | - libnpmdiff 1987 | - libnpmexec 1988 | - libnpmfund 1989 | - libnpmhook 1990 | - libnpmorg 1991 | - libnpmpack 1992 | - libnpmpublish 1993 | - libnpmsearch 1994 | - libnpmteam 1995 | - libnpmversion 1996 | - make-fetch-happen 1997 | - minipass 1998 | - minipass-pipeline 1999 | - mkdirp 2000 | - mkdirp-infer-owner 2001 | - ms 2002 | - node-gyp 2003 | - nopt 2004 | - npm-audit-report 2005 | - npm-install-checks 2006 | - npm-package-arg 2007 | - npm-pick-manifest 2008 | - npm-profile 2009 | - npm-registry-fetch 2010 | - npm-user-validate 2011 | - npmlog 2012 | - opener 2013 | - pacote 2014 | - parse-conflict-json 2015 | - qrcode-terminal 2016 | - read 2017 | - read-package-json 2018 | - read-package-json-fast 2019 | - readdir-scoped-modules 2020 | - rimraf 2021 | - semver 2022 | - ssri 2023 | - tar 2024 | - text-table 2025 | - tiny-relative-date 2026 | - treeverse 2027 | - validate-npm-package-name 2028 | - which 2029 | - write-file-atomic 2030 | 2031 | /object-assign/4.1.1: 2032 | resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} 2033 | engines: {node: '>=0.10.0'} 2034 | dev: true 2035 | 2036 | /once/1.4.0: 2037 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 2038 | dependencies: 2039 | wrappy: 1.0.2 2040 | dev: true 2041 | 2042 | /onetime/5.1.2: 2043 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2044 | engines: {node: '>=6'} 2045 | dependencies: 2046 | mimic-fn: 2.1.0 2047 | dev: true 2048 | 2049 | /p-each-series/2.2.0: 2050 | resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} 2051 | engines: {node: '>=8'} 2052 | dev: true 2053 | 2054 | /p-filter/2.1.0: 2055 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 2056 | engines: {node: '>=8'} 2057 | dependencies: 2058 | p-map: 2.1.0 2059 | dev: true 2060 | 2061 | /p-is-promise/3.0.0: 2062 | resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} 2063 | engines: {node: '>=8'} 2064 | dev: true 2065 | 2066 | /p-limit/1.3.0: 2067 | resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} 2068 | engines: {node: '>=4'} 2069 | dependencies: 2070 | p-try: 1.0.0 2071 | dev: true 2072 | 2073 | /p-limit/2.3.0: 2074 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2075 | engines: {node: '>=6'} 2076 | dependencies: 2077 | p-try: 2.2.0 2078 | dev: true 2079 | 2080 | /p-limit/3.1.0: 2081 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2082 | engines: {node: '>=10'} 2083 | dependencies: 2084 | yocto-queue: 0.1.0 2085 | dev: true 2086 | 2087 | /p-locate/2.0.0: 2088 | resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} 2089 | engines: {node: '>=4'} 2090 | dependencies: 2091 | p-limit: 1.3.0 2092 | dev: true 2093 | 2094 | /p-locate/4.1.0: 2095 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2096 | engines: {node: '>=8'} 2097 | dependencies: 2098 | p-limit: 2.3.0 2099 | dev: true 2100 | 2101 | /p-locate/5.0.0: 2102 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2103 | engines: {node: '>=10'} 2104 | dependencies: 2105 | p-limit: 3.1.0 2106 | dev: true 2107 | 2108 | /p-map/2.1.0: 2109 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 2110 | engines: {node: '>=6'} 2111 | dev: true 2112 | 2113 | /p-map/4.0.0: 2114 | resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} 2115 | engines: {node: '>=10'} 2116 | dependencies: 2117 | aggregate-error: 3.1.0 2118 | dev: true 2119 | 2120 | /p-reduce/2.1.0: 2121 | resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} 2122 | engines: {node: '>=8'} 2123 | dev: true 2124 | 2125 | /p-retry/4.6.1: 2126 | resolution: {integrity: sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==} 2127 | engines: {node: '>=8'} 2128 | dependencies: 2129 | '@types/retry': 0.12.1 2130 | retry: 0.13.1 2131 | dev: true 2132 | 2133 | /p-try/1.0.0: 2134 | resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} 2135 | engines: {node: '>=4'} 2136 | dev: true 2137 | 2138 | /p-try/2.2.0: 2139 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2140 | engines: {node: '>=6'} 2141 | dev: true 2142 | 2143 | /parent-module/1.0.1: 2144 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2145 | engines: {node: '>=6'} 2146 | dependencies: 2147 | callsites: 3.1.0 2148 | dev: true 2149 | 2150 | /parse-json/4.0.0: 2151 | resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} 2152 | engines: {node: '>=4'} 2153 | dependencies: 2154 | error-ex: 1.3.2 2155 | json-parse-better-errors: 1.0.2 2156 | dev: true 2157 | 2158 | /parse-json/5.2.0: 2159 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 2160 | engines: {node: '>=8'} 2161 | dependencies: 2162 | '@babel/code-frame': 7.16.0 2163 | error-ex: 1.3.2 2164 | json-parse-even-better-errors: 2.3.1 2165 | lines-and-columns: 1.2.4 2166 | dev: true 2167 | 2168 | /path-exists/3.0.0: 2169 | resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} 2170 | engines: {node: '>=4'} 2171 | dev: true 2172 | 2173 | /path-exists/4.0.0: 2174 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2175 | engines: {node: '>=8'} 2176 | dev: true 2177 | 2178 | /path-is-absolute/1.0.1: 2179 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 2180 | engines: {node: '>=0.10.0'} 2181 | dev: true 2182 | 2183 | /path-key/3.1.1: 2184 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2185 | engines: {node: '>=8'} 2186 | dev: true 2187 | 2188 | /path-parse/1.0.7: 2189 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2190 | dev: true 2191 | 2192 | /path-type/4.0.0: 2193 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2194 | engines: {node: '>=8'} 2195 | dev: true 2196 | 2197 | /picomatch/2.3.0: 2198 | resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} 2199 | engines: {node: '>=8.6'} 2200 | dev: true 2201 | 2202 | /pify/3.0.0: 2203 | resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} 2204 | engines: {node: '>=4'} 2205 | dev: true 2206 | 2207 | /pkg-conf/2.1.0: 2208 | resolution: {integrity: sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=} 2209 | engines: {node: '>=4'} 2210 | dependencies: 2211 | find-up: 2.1.0 2212 | load-json-file: 4.0.0 2213 | dev: true 2214 | 2215 | /prettier/2.5.1: 2216 | resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==} 2217 | engines: {node: '>=10.13.0'} 2218 | hasBin: true 2219 | dev: true 2220 | 2221 | /process-nextick-args/2.0.1: 2222 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 2223 | dev: true 2224 | 2225 | /q/1.5.1: 2226 | resolution: {integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=} 2227 | engines: {node: '>=0.6.0', teleport: '>=0.2.0'} 2228 | dev: true 2229 | 2230 | /queue-microtask/1.2.3: 2231 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2232 | dev: true 2233 | 2234 | /quick-lru/4.0.1: 2235 | resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} 2236 | engines: {node: '>=8'} 2237 | dev: true 2238 | 2239 | /rc/1.2.8: 2240 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 2241 | hasBin: true 2242 | dependencies: 2243 | deep-extend: 0.6.0 2244 | ini: 1.3.8 2245 | minimist: 1.2.5 2246 | strip-json-comments: 2.0.1 2247 | dev: true 2248 | 2249 | /read-pkg-up/7.0.1: 2250 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 2251 | engines: {node: '>=8'} 2252 | dependencies: 2253 | find-up: 4.1.0 2254 | read-pkg: 5.2.0 2255 | type-fest: 0.8.1 2256 | dev: true 2257 | 2258 | /read-pkg/5.2.0: 2259 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 2260 | engines: {node: '>=8'} 2261 | dependencies: 2262 | '@types/normalize-package-data': 2.4.1 2263 | normalize-package-data: 2.5.0 2264 | parse-json: 5.2.0 2265 | type-fest: 0.6.0 2266 | dev: true 2267 | 2268 | /readable-stream/2.3.7: 2269 | resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} 2270 | dependencies: 2271 | core-util-is: 1.0.3 2272 | inherits: 2.0.4 2273 | isarray: 1.0.0 2274 | process-nextick-args: 2.0.1 2275 | safe-buffer: 5.1.2 2276 | string_decoder: 1.1.1 2277 | util-deprecate: 1.0.2 2278 | dev: true 2279 | 2280 | /readable-stream/3.6.0: 2281 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} 2282 | engines: {node: '>= 6'} 2283 | dependencies: 2284 | inherits: 2.0.4 2285 | string_decoder: 1.3.0 2286 | util-deprecate: 1.0.2 2287 | dev: true 2288 | 2289 | /redent/3.0.0: 2290 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 2291 | engines: {node: '>=8'} 2292 | dependencies: 2293 | indent-string: 4.0.0 2294 | strip-indent: 3.0.0 2295 | dev: true 2296 | 2297 | /redeyed/2.1.1: 2298 | resolution: {integrity: sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=} 2299 | dependencies: 2300 | esprima: 4.0.1 2301 | dev: true 2302 | 2303 | /regenerator-runtime/0.13.9: 2304 | resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} 2305 | dev: false 2306 | 2307 | /registry-auth-token/4.2.1: 2308 | resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} 2309 | engines: {node: '>=6.0.0'} 2310 | dependencies: 2311 | rc: 1.2.8 2312 | dev: true 2313 | 2314 | /require-directory/2.1.1: 2315 | resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} 2316 | engines: {node: '>=0.10.0'} 2317 | dev: true 2318 | 2319 | /resolve-from/4.0.0: 2320 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2321 | engines: {node: '>=4'} 2322 | dev: true 2323 | 2324 | /resolve-from/5.0.0: 2325 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2326 | engines: {node: '>=8'} 2327 | dev: true 2328 | 2329 | /resolve-global/1.0.0: 2330 | resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} 2331 | engines: {node: '>=8'} 2332 | dependencies: 2333 | global-dirs: 0.1.1 2334 | dev: true 2335 | 2336 | /resolve/1.20.0: 2337 | resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} 2338 | dependencies: 2339 | is-core-module: 2.8.0 2340 | path-parse: 1.0.7 2341 | dev: true 2342 | 2343 | /retry/0.13.1: 2344 | resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} 2345 | engines: {node: '>= 4'} 2346 | dev: true 2347 | 2348 | /reusify/1.0.4: 2349 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2350 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2351 | dev: true 2352 | 2353 | /rimraf/3.0.2: 2354 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2355 | hasBin: true 2356 | dependencies: 2357 | glob: 7.2.0 2358 | dev: true 2359 | 2360 | /rtl-css-js/1.15.0: 2361 | resolution: {integrity: sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew==} 2362 | dependencies: 2363 | '@babel/runtime': 7.16.5 2364 | dev: false 2365 | 2366 | /run-parallel/1.2.0: 2367 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2368 | dependencies: 2369 | queue-microtask: 1.2.3 2370 | dev: true 2371 | 2372 | /sade/1.7.4: 2373 | resolution: {integrity: sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==} 2374 | engines: {node: '>= 6'} 2375 | dependencies: 2376 | mri: 1.2.0 2377 | dev: true 2378 | 2379 | /safe-buffer/5.1.2: 2380 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 2381 | dev: true 2382 | 2383 | /safe-buffer/5.2.1: 2384 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 2385 | dev: true 2386 | 2387 | /semantic-release/18.0.1: 2388 | resolution: {integrity: sha512-xTdKCaEnCzHr+Fqyhg/5I8P9pvY9z7WHa8TFCYIwcdPbuzAtQShOTzw3VNPsqBT+Yq1kFyBQFBKBYkGOlqWmfA==} 2389 | engines: {node: '>=14.17'} 2390 | hasBin: true 2391 | dependencies: 2392 | '@semantic-release/commit-analyzer': 9.0.2_semantic-release@18.0.1 2393 | '@semantic-release/error': 3.0.0 2394 | '@semantic-release/github': 8.0.2_semantic-release@18.0.1 2395 | '@semantic-release/npm': 8.0.3_semantic-release@18.0.1 2396 | '@semantic-release/release-notes-generator': 10.0.3_semantic-release@18.0.1 2397 | aggregate-error: 3.1.0 2398 | cosmiconfig: 7.0.1 2399 | debug: 4.3.3 2400 | env-ci: 5.5.0 2401 | execa: 5.1.1 2402 | figures: 3.2.0 2403 | find-versions: 4.0.0 2404 | get-stream: 6.0.1 2405 | git-log-parser: 1.2.0 2406 | hook-std: 2.0.0 2407 | hosted-git-info: 4.0.2 2408 | lodash: 4.17.21 2409 | marked: 2.1.3 2410 | marked-terminal: 4.2.0_marked@2.1.3 2411 | micromatch: 4.0.4 2412 | p-each-series: 2.2.0 2413 | p-reduce: 2.1.0 2414 | read-pkg-up: 7.0.1 2415 | resolve-from: 5.0.0 2416 | semver: 7.3.5 2417 | semver-diff: 3.1.1 2418 | signale: 1.4.0 2419 | yargs: 16.2.0 2420 | transitivePeerDependencies: 2421 | - supports-color 2422 | dev: true 2423 | 2424 | /semver-diff/3.1.1: 2425 | resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} 2426 | engines: {node: '>=8'} 2427 | dependencies: 2428 | semver: 6.3.0 2429 | dev: true 2430 | 2431 | /semver-regex/3.1.3: 2432 | resolution: {integrity: sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==} 2433 | engines: {node: '>=8'} 2434 | dev: true 2435 | 2436 | /semver/5.7.1: 2437 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 2438 | hasBin: true 2439 | dev: true 2440 | 2441 | /semver/6.3.0: 2442 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 2443 | hasBin: true 2444 | dev: true 2445 | 2446 | /semver/7.3.5: 2447 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} 2448 | engines: {node: '>=10'} 2449 | hasBin: true 2450 | dependencies: 2451 | lru-cache: 6.0.0 2452 | dev: true 2453 | 2454 | /shebang-command/2.0.0: 2455 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2456 | engines: {node: '>=8'} 2457 | dependencies: 2458 | shebang-regex: 3.0.0 2459 | dev: true 2460 | 2461 | /shebang-regex/3.0.0: 2462 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2463 | engines: {node: '>=8'} 2464 | dev: true 2465 | 2466 | /signal-exit/3.0.6: 2467 | resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} 2468 | dev: true 2469 | 2470 | /signale/1.4.0: 2471 | resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} 2472 | engines: {node: '>=6'} 2473 | dependencies: 2474 | chalk: 2.4.2 2475 | figures: 2.0.0 2476 | pkg-conf: 2.1.0 2477 | dev: true 2478 | 2479 | /slash/3.0.0: 2480 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2481 | engines: {node: '>=8'} 2482 | dev: true 2483 | 2484 | /source-map-support/0.5.21: 2485 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 2486 | dependencies: 2487 | buffer-from: 1.1.2 2488 | source-map: 0.6.1 2489 | dev: true 2490 | 2491 | /source-map/0.5.6: 2492 | resolution: {integrity: sha1-dc449SvwczxafwwRjYEzSiu19BI=} 2493 | engines: {node: '>=0.10.0'} 2494 | dev: false 2495 | 2496 | /source-map/0.6.1: 2497 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2498 | engines: {node: '>=0.10.0'} 2499 | 2500 | /source-map/0.7.3: 2501 | resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} 2502 | engines: {node: '>= 8'} 2503 | dev: true 2504 | 2505 | /sourcemap-codec/1.4.8: 2506 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 2507 | dev: false 2508 | 2509 | /spawn-error-forwarder/1.0.0: 2510 | resolution: {integrity: sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=} 2511 | dev: true 2512 | 2513 | /spdx-correct/3.1.1: 2514 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 2515 | dependencies: 2516 | spdx-expression-parse: 3.0.1 2517 | spdx-license-ids: 3.0.11 2518 | dev: true 2519 | 2520 | /spdx-exceptions/2.3.0: 2521 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 2522 | dev: true 2523 | 2524 | /spdx-expression-parse/3.0.1: 2525 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 2526 | dependencies: 2527 | spdx-exceptions: 2.3.0 2528 | spdx-license-ids: 3.0.11 2529 | dev: true 2530 | 2531 | /spdx-license-ids/3.0.11: 2532 | resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} 2533 | dev: true 2534 | 2535 | /split/1.0.1: 2536 | resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} 2537 | dependencies: 2538 | through: 2.3.8 2539 | dev: true 2540 | 2541 | /split2/1.0.0: 2542 | resolution: {integrity: sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=} 2543 | dependencies: 2544 | through2: 2.0.5 2545 | dev: true 2546 | 2547 | /split2/3.2.2: 2548 | resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} 2549 | dependencies: 2550 | readable-stream: 3.6.0 2551 | dev: true 2552 | 2553 | /stack-generator/2.0.5: 2554 | resolution: {integrity: sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==} 2555 | dependencies: 2556 | stackframe: 1.2.0 2557 | dev: false 2558 | 2559 | /stackframe/1.2.0: 2560 | resolution: {integrity: sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==} 2561 | dev: false 2562 | 2563 | /stacktrace-gps/3.0.4: 2564 | resolution: {integrity: sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg==} 2565 | dependencies: 2566 | source-map: 0.5.6 2567 | stackframe: 1.2.0 2568 | dev: false 2569 | 2570 | /stacktrace-js/2.0.2: 2571 | resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} 2572 | dependencies: 2573 | error-stack-parser: 2.0.6 2574 | stack-generator: 2.0.5 2575 | stacktrace-gps: 3.0.4 2576 | dev: false 2577 | 2578 | /stream-combiner2/1.1.1: 2579 | resolution: {integrity: sha1-+02KFCDqNidk4hrUeAOXvry0HL4=} 2580 | dependencies: 2581 | duplexer2: 0.1.4 2582 | readable-stream: 2.3.7 2583 | dev: true 2584 | 2585 | /string-width/4.2.3: 2586 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2587 | engines: {node: '>=8'} 2588 | dependencies: 2589 | emoji-regex: 8.0.0 2590 | is-fullwidth-code-point: 3.0.0 2591 | strip-ansi: 6.0.1 2592 | dev: true 2593 | 2594 | /string_decoder/1.1.1: 2595 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 2596 | dependencies: 2597 | safe-buffer: 5.1.2 2598 | dev: true 2599 | 2600 | /string_decoder/1.3.0: 2601 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 2602 | dependencies: 2603 | safe-buffer: 5.2.1 2604 | dev: true 2605 | 2606 | /strip-ansi/6.0.1: 2607 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2608 | engines: {node: '>=8'} 2609 | dependencies: 2610 | ansi-regex: 5.0.1 2611 | dev: true 2612 | 2613 | /strip-bom/3.0.0: 2614 | resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} 2615 | engines: {node: '>=4'} 2616 | dev: true 2617 | 2618 | /strip-final-newline/2.0.0: 2619 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 2620 | engines: {node: '>=6'} 2621 | dev: true 2622 | 2623 | /strip-indent/3.0.0: 2624 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 2625 | engines: {node: '>=8'} 2626 | dependencies: 2627 | min-indent: 1.0.1 2628 | dev: true 2629 | 2630 | /strip-json-comments/2.0.1: 2631 | resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} 2632 | engines: {node: '>=0.10.0'} 2633 | dev: true 2634 | 2635 | /stylis/4.0.13: 2636 | resolution: {integrity: sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==} 2637 | dev: false 2638 | 2639 | /supports-color/5.5.0: 2640 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2641 | engines: {node: '>=4'} 2642 | dependencies: 2643 | has-flag: 3.0.0 2644 | dev: true 2645 | 2646 | /supports-color/7.2.0: 2647 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2648 | engines: {node: '>=8'} 2649 | dependencies: 2650 | has-flag: 4.0.0 2651 | dev: true 2652 | 2653 | /supports-hyperlinks/2.2.0: 2654 | resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} 2655 | engines: {node: '>=8'} 2656 | dependencies: 2657 | has-flag: 4.0.0 2658 | supports-color: 7.2.0 2659 | dev: true 2660 | 2661 | /temp-dir/2.0.0: 2662 | resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} 2663 | engines: {node: '>=8'} 2664 | dev: true 2665 | 2666 | /tempy/1.0.1: 2667 | resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} 2668 | engines: {node: '>=10'} 2669 | dependencies: 2670 | del: 6.0.0 2671 | is-stream: 2.0.1 2672 | temp-dir: 2.0.0 2673 | type-fest: 0.16.0 2674 | unique-string: 2.0.0 2675 | dev: true 2676 | 2677 | /test-exclude/6.0.0: 2678 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} 2679 | engines: {node: '>=8'} 2680 | dependencies: 2681 | '@istanbuljs/schema': 0.1.3 2682 | glob: 7.2.0 2683 | minimatch: 3.0.4 2684 | dev: true 2685 | 2686 | /text-extensions/1.9.0: 2687 | resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} 2688 | engines: {node: '>=0.10'} 2689 | dev: true 2690 | 2691 | /through/2.3.8: 2692 | resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} 2693 | dev: true 2694 | 2695 | /through2/2.0.5: 2696 | resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} 2697 | dependencies: 2698 | readable-stream: 2.3.7 2699 | xtend: 4.0.2 2700 | dev: true 2701 | 2702 | /through2/4.0.2: 2703 | resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} 2704 | dependencies: 2705 | readable-stream: 3.6.0 2706 | dev: true 2707 | 2708 | /to-regex-range/5.0.1: 2709 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2710 | engines: {node: '>=8.0'} 2711 | dependencies: 2712 | is-number: 7.0.0 2713 | dev: true 2714 | 2715 | /totalist/2.0.0: 2716 | resolution: {integrity: sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==} 2717 | engines: {node: '>=6'} 2718 | dev: true 2719 | 2720 | /tr46/0.0.3: 2721 | resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=} 2722 | dev: true 2723 | 2724 | /traverse/0.6.6: 2725 | resolution: {integrity: sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=} 2726 | dev: true 2727 | 2728 | /trim-newlines/3.0.1: 2729 | resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} 2730 | engines: {node: '>=8'} 2731 | dev: true 2732 | 2733 | /ts-node/9.1.1_typescript@4.5.4: 2734 | resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} 2735 | engines: {node: '>=10.0.0'} 2736 | hasBin: true 2737 | peerDependencies: 2738 | typescript: '>=2.7' 2739 | dependencies: 2740 | arg: 4.1.3 2741 | create-require: 1.1.1 2742 | diff: 4.0.2 2743 | make-error: 1.3.6 2744 | source-map-support: 0.5.21 2745 | typescript: 4.5.4 2746 | yn: 3.1.1 2747 | dev: true 2748 | 2749 | /tslib/2.3.1: 2750 | resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} 2751 | dev: true 2752 | 2753 | /type-fest/0.16.0: 2754 | resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} 2755 | engines: {node: '>=10'} 2756 | dev: true 2757 | 2758 | /type-fest/0.18.1: 2759 | resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} 2760 | engines: {node: '>=10'} 2761 | dev: true 2762 | 2763 | /type-fest/0.21.3: 2764 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 2765 | engines: {node: '>=10'} 2766 | dev: true 2767 | 2768 | /type-fest/0.6.0: 2769 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 2770 | engines: {node: '>=8'} 2771 | dev: true 2772 | 2773 | /type-fest/0.8.1: 2774 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 2775 | engines: {node: '>=8'} 2776 | dev: true 2777 | 2778 | /typescript/4.5.4: 2779 | resolution: {integrity: sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==} 2780 | engines: {node: '>=4.2.0'} 2781 | hasBin: true 2782 | dev: true 2783 | 2784 | /uglify-js/3.14.5: 2785 | resolution: {integrity: sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==} 2786 | engines: {node: '>=0.8.0'} 2787 | hasBin: true 2788 | requiresBuild: true 2789 | dev: true 2790 | optional: true 2791 | 2792 | /unique-string/2.0.0: 2793 | resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} 2794 | engines: {node: '>=8'} 2795 | dependencies: 2796 | crypto-random-string: 2.0.0 2797 | dev: true 2798 | 2799 | /universal-user-agent/6.0.0: 2800 | resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} 2801 | dev: true 2802 | 2803 | /universalify/2.0.0: 2804 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} 2805 | engines: {node: '>= 10.0.0'} 2806 | dev: true 2807 | 2808 | /url-join/4.0.1: 2809 | resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} 2810 | dev: true 2811 | 2812 | /util-deprecate/1.0.2: 2813 | resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} 2814 | dev: true 2815 | 2816 | /uvu/0.5.2: 2817 | resolution: {integrity: sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==} 2818 | engines: {node: '>=8'} 2819 | hasBin: true 2820 | dependencies: 2821 | dequal: 2.0.2 2822 | diff: 5.0.0 2823 | kleur: 4.1.4 2824 | sade: 1.7.4 2825 | totalist: 2.0.0 2826 | dev: true 2827 | 2828 | /v8-to-istanbul/8.1.0: 2829 | resolution: {integrity: sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==} 2830 | engines: {node: '>=10.12.0'} 2831 | dependencies: 2832 | '@types/istanbul-lib-coverage': 2.0.3 2833 | convert-source-map: 1.8.0 2834 | source-map: 0.7.3 2835 | dev: true 2836 | 2837 | /validate-npm-package-license/3.0.4: 2838 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 2839 | dependencies: 2840 | spdx-correct: 3.1.1 2841 | spdx-expression-parse: 3.0.1 2842 | dev: true 2843 | 2844 | /webidl-conversions/3.0.1: 2845 | resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} 2846 | dev: true 2847 | 2848 | /whatwg-url/5.0.0: 2849 | resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=} 2850 | dependencies: 2851 | tr46: 0.0.3 2852 | webidl-conversions: 3.0.1 2853 | dev: true 2854 | 2855 | /which/2.0.2: 2856 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2857 | engines: {node: '>= 8'} 2858 | hasBin: true 2859 | dependencies: 2860 | isexe: 2.0.0 2861 | dev: true 2862 | 2863 | /wordwrap/1.0.0: 2864 | resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=} 2865 | dev: true 2866 | 2867 | /wrap-ansi/7.0.0: 2868 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2869 | engines: {node: '>=10'} 2870 | dependencies: 2871 | ansi-styles: 4.3.0 2872 | string-width: 4.2.3 2873 | strip-ansi: 6.0.1 2874 | dev: true 2875 | 2876 | /wrappy/1.0.2: 2877 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 2878 | dev: true 2879 | 2880 | /xtend/4.0.2: 2881 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 2882 | engines: {node: '>=0.4'} 2883 | dev: true 2884 | 2885 | /y18n/5.0.8: 2886 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2887 | engines: {node: '>=10'} 2888 | dev: true 2889 | 2890 | /yallist/4.0.0: 2891 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2892 | dev: true 2893 | 2894 | /yaml/1.10.2: 2895 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 2896 | engines: {node: '>= 6'} 2897 | dev: true 2898 | 2899 | /yargs-parser/20.2.9: 2900 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 2901 | engines: {node: '>=10'} 2902 | dev: true 2903 | 2904 | /yargs-parser/21.0.0: 2905 | resolution: {integrity: sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==} 2906 | engines: {node: '>=12'} 2907 | dev: true 2908 | 2909 | /yargs/16.2.0: 2910 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 2911 | engines: {node: '>=10'} 2912 | dependencies: 2913 | cliui: 7.0.4 2914 | escalade: 3.1.1 2915 | get-caller-file: 2.0.5 2916 | require-directory: 2.1.1 2917 | string-width: 4.2.3 2918 | y18n: 5.0.8 2919 | yargs-parser: 20.2.9 2920 | dev: true 2921 | 2922 | /yargs/17.3.0: 2923 | resolution: {integrity: sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==} 2924 | engines: {node: '>=12'} 2925 | dependencies: 2926 | cliui: 7.0.4 2927 | escalade: 3.1.1 2928 | get-caller-file: 2.0.5 2929 | require-directory: 2.1.1 2930 | string-width: 4.2.3 2931 | y18n: 5.0.8 2932 | yargs-parser: 21.0.0 2933 | dev: true 2934 | 2935 | /yn/3.1.1: 2936 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 2937 | engines: {node: '>=6'} 2938 | dev: true 2939 | 2940 | /yocto-queue/0.1.0: 2941 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2942 | engines: {node: '>=10'} 2943 | dev: true 2944 | -------------------------------------------------------------------------------- /release.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | branches: ['main', { name: 'beta', prerelease: true }, { name: 'alpha', prerelease: true }], 3 | plugins: [ 4 | '@semantic-release/commit-analyzer', 5 | '@semantic-release/release-notes-generator', 6 | '@semantic-release/npm', 7 | '@semantic-release/github', 8 | '@semantic-release/git', 9 | ], 10 | } 11 | -------------------------------------------------------------------------------- /scripts/build.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | 3 | const pkg = require('../package.json') 4 | 5 | require('esbuild').buildSync({ 6 | entryPoints: ['lib/index.ts', 'lib/presets.ts'], 7 | outdir: path.join(__dirname, '../'), 8 | bundle: true, 9 | minify: true, 10 | platform: 'node', 11 | target: 'es5', 12 | external: Object.keys(pkg.dependencies), 13 | logLevel: 'info', 14 | }) 15 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["lib/index.ts", "lib/presets.ts"], 3 | "exclude": ["node_modules"], 4 | "compilerOptions": { 5 | "lib": ["ES5", "dom"], 6 | "target": "ES5", 7 | "declaration": true, 8 | "declarationDir": "./", 9 | "esModuleInterop": true 10 | } 11 | } 12 | --------------------------------------------------------------------------------