├── .eslintrc.js
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE.md
├── PULL_REQUEST_TEMPLATE.md
├── dependabot.yml
└── workflows
│ └── ci.yml
├── .gitignore
├── .husky
└── pre-commit
├── .npmignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── benchmark
├── .gitignore
├── README.md
├── browser
│ └── index.html
├── package.json
├── src
│ ├── common.js
│ ├── dedupe.js
│ └── run.js
└── yarn.lock
├── jest.config.js
├── package.json
├── src
├── cnb.ts
├── dcnb.ts
└── index.ts
├── tests
├── cnb.spec.ts
└── dcnb.spec.ts
├── tsconfig.build.json
├── tsconfig.eslint.json
├── tsconfig.json
├── utility
└── ts-transformer-js-ext.ts
└── yarn.lock
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: ['@xobotyi/eslint-config/base', '@xobotyi/eslint-config/typescript'],
4 | parserOptions: {
5 | project: './tsconfig.eslint.json',
6 | tsconfigRootDir: __dirname,
7 | },
8 | rules: {
9 | 'prefer-rest-params': 'off',
10 | 'no-restricted-syntax': ['error', 'FunctionExpression', 'WithStatement'],
11 | 'no-param-reassign': 'off',
12 | },
13 | overrides: [
14 | {
15 | files: ['./benchmark/**/*'],
16 | rules: {
17 | 'no-console': 'off',
18 | },
19 | },
20 | ],
21 | };
22 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | patreon: xobotyi
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | **Do you want to request a _feature_ or report a _bug_?**
2 |
3 | **What is the current behavior?**
4 |
5 | **If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Your bug will get fixed much faster if we can run your code and it doesn't have extra dependencies other than cnbuilder. Paste the link to your [JSFiddle](https://jsfiddle.net) or [CodeSandbox](https://codesandbox.io) example below:**
6 |
7 | **What is the expected behavior?**
8 |
9 | **Which versions of cnbuilder, and which browser / OS / node version are affected by this issue? Did this work in previous versions of cnbuilder?**
10 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | **Before submitting a pull request,** please make sure the following is done:
2 |
3 | 1. Fork [the repository](https://github.com/xobotyi/cnbuilder) and create your branch from `master`.
4 | 2. Run `npm i` in the repository root.
5 | 3. If you've fixed a bug or added code that should be tested, add tests!
6 | 4. Ensure the test suite passes (`npm run test`). Tip: `npm run test:watch` is helpful in development.
7 | 6. Format your code with [prettier](https://github.com/prettier/prettier) (`npm run format`).
8 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: "github-actions"
4 | directory: "/"
5 | schedule:
6 | interval: daily
7 | time: "00:00"
8 | timezone: "Etc/UTC"
9 |
10 | - package-ecosystem: npm
11 | directory: /
12 | schedule:
13 | interval: daily
14 | time: "00:00"
15 | timezone: "Etc/UTC"
16 | rebase-strategy: 'auto'
17 | ignore:
18 | - dependency-name: "husky"
19 |
20 | - package-ecosystem: npm
21 | directory: /benchmark
22 | schedule:
23 | interval: daily
24 | time: "00:00"
25 | timezone: "Etc/UTC"
26 | rebase-strategy: 'auto'
27 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: "CI"
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | pull_request:
8 | branches:
9 | - master
10 | workflow_dispatch:
11 |
12 | jobs:
13 | lint:
14 | name: "Lint"
15 | runs-on: ubuntu-latest
16 | steps:
17 | - name: "Checkout"
18 | uses: actions/checkout@v3
19 | with:
20 | fetch-depth: 0
21 |
22 | - uses: c-hive/gha-yarn-cache@v2
23 |
24 | - name: "Setup Node.js"
25 | uses: actions/setup-node@v3.7.0
26 | with:
27 | node-version: 16
28 |
29 | - name: "Install dependencies"
30 | run: yarn install --frozen-lockfile
31 |
32 | - name: "Lint"
33 | run: yarn lint:fix -f @jamesacarr/github-actions
34 |
35 | build:
36 | name: "Build"
37 | runs-on: ubuntu-latest
38 | steps:
39 | - name: "Checkout"
40 | uses: actions/checkout@v3
41 | with:
42 | fetch-depth: 0
43 |
44 | - uses: c-hive/gha-yarn-cache@v2
45 |
46 | - name: "Setup Node.js"
47 | uses: actions/setup-node@v3.7.0
48 | with:
49 | node-version: 16
50 |
51 | - name: "Install dependencies"
52 | run: yarn install --frozen-lockfile
53 |
54 | - name: "Build"
55 | run: yarn build
56 |
57 | test:
58 | name: "Test"
59 | runs-on: ubuntu-latest
60 | steps:
61 | - name: "Checkout"
62 | uses: actions/checkout@v3
63 | with:
64 | fetch-depth: 0
65 |
66 | - uses: c-hive/gha-yarn-cache@v2
67 |
68 | - name: "Setup Node.js"
69 | uses: actions/setup-node@v3.7.0
70 | with:
71 | node-version: 16
72 |
73 | - name: "Install dependencies"
74 | run: yarn install --frozen-lockfile
75 |
76 | - name: "Test"
77 | run: yarn test:coverage --testLocationInResults --reporters=default --reporters=@jamesacarr/jest-reporter-github-actions
78 |
79 | - name: "Upload coverage to Codecov"
80 | uses: codecov/codecov-action@v3
81 | with:
82 | token: ${{ secrets.CODECOV_TOKEN }}
83 | files: coverage/lcov.info
84 | fail_ci_if_error: true
85 |
86 | dependabot-merge:
87 | name: "Dependabot automerge"
88 | runs-on: ubuntu-latest
89 | needs: [ "test", "build", "lint" ]
90 | permissions:
91 | pull-requests: write
92 | contents: write
93 | if: github.actor == 'dependabot[bot]' && github.event_name == 'pull_request'
94 | steps:
95 | - uses: fastify/github-action-merge-dependabot@v3
96 | with:
97 | github-token: ${{ secrets.GITHUB_TOKEN }}
98 |
99 | semantic-release:
100 | name: "Release"
101 | runs-on: ubuntu-latest
102 | needs: [ "test", "build", "lint" ]
103 | if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
104 | outputs:
105 | new-release-published: ${{ steps.release.outputs.new-release-published }}
106 | steps:
107 | - name: "Checkout"
108 | uses: actions/checkout@v3
109 | with:
110 | ref: "master"
111 |
112 | - uses: c-hive/gha-yarn-cache@v2
113 |
114 | - name: "Setup Node.js"
115 | uses: actions/setup-node@v3.7.0
116 | with:
117 | node-version: 16
118 |
119 | - name: "Install dependencies"
120 | run: yarn install --frozen-lockfile
121 |
122 | - name: "Build package"
123 | run: yarn build
124 |
125 | - name: "Release"
126 | id: "release"
127 | uses: codfish/semantic-release-action@v2.2.0
128 | env:
129 | GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
130 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
131 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | package-lock.json
3 | node_modules
4 | coverage
5 | cjs
6 | esm
7 | esnext
8 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | yarn lint-staged
5 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | *
2 | !/cjs
3 | !/esm
4 | !/esnext
5 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # [3.1.0](https://github.com/xobotyi/cnbuilder/compare/v3.0.1...v3.1.0) (2021-12-27)
2 |
3 |
4 | ### Features
5 |
6 | * enhance performance ([7aefefd](https://github.com/xobotyi/cnbuilder/commit/7aefefd2a3f9ee73326e32cf7b820a5b3a3280b2))
7 |
8 | ## [3.0.1](https://github.com/xobotyi/cnbuilder/compare/v3.0.0...v3.0.1) (2021-07-11)
9 |
10 |
11 | ### Bug Fixes
12 |
13 | * proper package.json configuration ([a1d2e43](https://github.com/xobotyi/cnbuilder/commit/a1d2e43b22274e0cc229d503a69e4ddc3598f35a))
14 |
15 | # [3.0.0](https://github.com/xobotyi/cnbuilder/compare/v2.7.1...v3.0.0) (2021-07-11)
16 |
17 |
18 | ### Features
19 |
20 | * tweak distribution bundle and build process ([09ee7ce](https://github.com/xobotyi/cnbuilder/commit/09ee7ceffbb6125dac1670039606566cc817ed75))
21 |
22 |
23 | ### BREAKING CHANGES
24 |
25 | * now distributed version contained in separate folders: `cjs`, `esm` and
26 | `esnext`
27 |
28 | To include esnext version of package you now have to do
29 | `import { cnb } from 'cnbuilder/esnext'`
30 |
31 | ## [2.7.1](https://github.com/xobotyi/cnbuilder/compare/v2.7.0...v2.7.1) (2021-07-10)
32 |
33 |
34 | ### Bug Fixes
35 |
36 | * get rid of types.ts file ([37071e7](https://github.com/xobotyi/cnbuilder/commit/37071e782b527391199c6b21581ac881af242904))
37 |
38 | # [2.7.0](https://github.com/xobotyi/cnbuilder/compare/v2.6.0...v2.7.0) (2021-07-10)
39 |
40 |
41 | ### Features
42 |
43 | * improve performance on arrays and objects ([58dda12](https://github.com/xobotyi/cnbuilder/commit/58dda1220efa6f5dee98d07513b8eb441303c6a4))
44 |
45 | # [2.6.0](https://github.com/xobotyi/cnbuilder/compare/v2.5.0...v2.6.0) (2020-06-11)
46 |
47 |
48 | ### Features
49 |
50 | * export ClassValue type from index file. ([4778493](https://github.com/xobotyi/cnbuilder/commit/4778493f85e28e716ecf797fe64abaf7496f5470))
51 |
52 | # [2.5.0](https://github.com/xobotyi/cnbuilder/compare/v2.4.0...v2.5.0) (2020-05-21)
53 |
54 |
55 | ### Features
56 |
57 | * add patreon funding link ([5e4ebce](https://github.com/xobotyi/cnbuilder/commit/5e4ebce409b718d3593f2530bea0ffe41ae96ba8))
58 | * compatibility level now at ES5 ([de0b7b0](https://github.com/xobotyi/cnbuilder/commit/de0b7b0bf71341c0477ff7a6fe1bc6477d290e59))
59 |
60 | # [2.4.0](https://github.com/xobotyi/cnbuilder/compare/v2.3.0...v2.4.0) (2020-03-02)
61 |
62 |
63 | ### Bug Fixes
64 |
65 | * **lint:** rename interface to pass linting. ([d981f98](https://github.com/xobotyi/cnbuilder/commit/d981f983e985be01105563e465e7f0020047f971))
66 |
67 |
68 | ### Features
69 |
70 | * **benchmarks:** add the common version browser benchmarks. ([aed60ac](https://github.com/xobotyi/cnbuilder/commit/aed60ac7991e62b4c1b3d46a290fced0fb03f331))
71 |
72 | # [2.3.0](https://github.com/xobotyi/cnbuilder/compare/v2.2.1...v2.3.0) (2020-02-18)
73 |
74 |
75 | ### Features
76 |
77 | * **types:** object value now can be anything, cause we only need to cast it to boolean, it gives more versatile usage; ([7d1ced4](https://github.com/xobotyi/cnbuilder/commit/7d1ced48d7439972917b372c42cd223fb963428a))
78 |
79 | ## [2.2.1](https://github.com/xobotyi/cnbuilder/compare/v2.2.0...v2.2.1) (2020-02-18)
80 |
81 |
82 | ### Bug Fixes
83 |
84 | * **readme:** fix travis and codacy badges links; ([ce61eca](https://github.com/xobotyi/cnbuilder/commit/ce61ecab2d5e7efe8e2ac15c6abf42d56258d1c6))
85 |
86 | # [2.2.0](https://github.com/xobotyi/cnbuilder/compare/v2.1.0...v2.2.0) (2020-02-17)
87 |
88 |
89 | ### Features
90 |
91 | * add prepublish build script so dist dir never lost; ([23538b4](https://github.com/xobotyi/cnbuilder/commit/23538b4db4a8fc4d6297a8f94c9e01d4170a64a9))
92 |
93 | # [2.1.0](https://github.com/xobotyi/cnbuilder/compare/v2.0.0...v2.1.0) (2020-02-17)
94 |
95 |
96 | ### Features
97 |
98 | * dcnb tests; ([fc1f1f0](https://github.com/xobotyi/cnbuilder/commit/fc1f1f08dd0ea2070fe5186545016ad917f3ed3c))
99 | * rewritten cnb tests; ([52355ce](https://github.com/xobotyi/cnbuilder/commit/52355ce51dcc59ec8bfe1da055fbf1910144c1b1))
100 |
101 | # [2.0.0](https://github.com/xobotyi/cnbuilder/compare/v1.2.1...v2.0.0) (2020-02-17)
102 |
103 |
104 | ### Features
105 |
106 | * added dedupe module version; ([1c61c3f](https://github.com/xobotyi/cnbuilder/commit/1c61c3fd2567d8586e22e46f02c6cc8050f8dcb5))
107 |
108 |
109 | ### BREAKING CHANGES
110 |
111 | * now package have named exports `cnb` and `dcnb` from the index;
112 |
113 | ## [1.2.1](https://github.com/xobotyi/cnbuilder/compare/v1.2.0...v1.2.1) (2020-02-16)
114 |
115 |
116 | ### Bug Fixes
117 |
118 | * **travis:** fix travis jobs; ([31382fb](https://github.com/xobotyi/cnbuilder/commit/31382fb2953d44facaa099fb30c671af15f86779))
119 |
120 | # [1.2.0](https://github.com/xobotyi/cnbuilder/compare/v1.1.7...v1.2.0) (2020-02-16)
121 |
122 |
123 | ### Bug Fixes
124 |
125 | * **deps:** add semantic release plugins; ([be22328](https://github.com/xobotyi/cnbuilder/commit/be2232809e601e60772a8296e663bb9ab3c9047c))
126 | * **deps:** add semantic release plugins; ([62f987c](https://github.com/xobotyi/cnbuilder/commit/62f987ca2c4cd42accf60b8bc87b30ba388526ab))
127 | * **readme:** lost a line during edits; ([80a6414](https://github.com/xobotyi/cnbuilder/commit/80a641437d153a8d098dfaa797b6400bee1984c8))
128 | * **readme:** reword a bit; ([002b9e8](https://github.com/xobotyi/cnbuilder/commit/002b9e8d7e823b8b9d5605627dd71b8b64c7cd91))
129 | * **readme:** typo; ([e5567f5](https://github.com/xobotyi/cnbuilder/commit/e5567f584b18b6f42ec0a75739c41193a9229577))
130 |
131 |
132 | ### Features
133 |
134 | * add npm cnb to benchmarking (useful for development) ([ec7706c](https://github.com/xobotyi/cnbuilder/commit/ec7706ce129a7338f046bb3e45457c64d08801e6))
135 | * benchmarks now are way simpler; ([340167b](https://github.com/xobotyi/cnbuilder/commit/340167b2a8d8300f29e3e17fd5637d1efa1da60e))
136 | * bring in the eslint; ([f6ad0d5](https://github.com/xobotyi/cnbuilder/commit/f6ad0d50bfbd933a67986c044738ad84df5840d9))
137 | * jest config moved to separate file; ([dddeb73](https://github.com/xobotyi/cnbuilder/commit/dddeb73d22d65fb4eed9472dce053c6120419a62))
138 | * put versioning under semantic release control. ([e26be38](https://github.com/xobotyi/cnbuilder/commit/e26be38f1d5aae203d43e624c05a36a3cb72fa3e))
139 | * rework the method, now it works faster on most cases + now it does not emit most of eslint errors; ([a884d61](https://github.com/xobotyi/cnbuilder/commit/a884d617103d9266d19a507e60097b55a0073b0f))
140 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Anton Zinovyev
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # cnbuilder
4 |
5 | Yet another classname string builder (the fastest one)
6 |
7 | [](https://www.npmjs.com/package/cnbuilder)
8 | [](https://www.npmjs.com/package/cnbuilder)
9 | [](https://www.npmjs.com/package/cnbuilder)
10 | [](https://github.com/xobotyi/cnbuilder/actions)
11 | [](https://app.codecov.io/gh/xobotyi/cnbuilder)
12 | [](https://www.npmjs.com/package/cnbuilder)
13 | [](https://bundlephobia.com/result?p=cnbuilder)
14 |
15 |
16 |
17 | ---
18 |
19 | ❤️Please consider starring this project to show your love and support.🙌
20 |
21 | ---
22 |
23 | One more DOM classname string builder if you not enough yet 😁
24 | It is **[lightweight](https://bundlephobia.com/result?p=cnbuilder)**, **[fast](#performance-recent-benchmarks-results)** and has no dependencies!
25 | Designed to be fastest full-feature drop-in replacement for `classnames` package.
26 |
27 | Install it via [npm](https://www.npmjs.com) or [yarn](https://yarnpkg.com)
28 |
29 | ```bash
30 | npm i cnbuilder
31 | # OR
32 | yarn add cnbuilder
33 | ```
34 |
35 | Use it wherever and however you want - node.js or webpack, CJS or ESM modules!
36 |
37 | **INSTALLATION NOTE:**
38 | This lib is written in ES6+ and delivering with both, transpiled and untranspiled versions:
39 |
40 | - `main` field of `package.json` is pointing to transpiled ES5 version with CJS modules resolution;
41 | - `module` field is pointing to transpiled ES5 version with ES modules resolution;
42 | - `esnext` field is pointing to the ES6+ version with ES modules resolution;
43 |
44 | Depending on your targets you may have to use [Webpack](https://webpack.js.org/) and/or
45 | [Babel](http://babeljs.io/) to pull untranspiled version of package.
46 | See some tips on wiring thing up: [https://2ality.com/2017/06/pkg-esnext.html](https://2ality.com/2017/06/pkg-esnext.html)
47 |
48 | Use it wherever and however you want - node.js or webpack, CJS or ESM modules!
49 |
50 | ```javascript
51 | var cnb = require("cnbuilder").cnb;
52 |
53 | cnb("cnbuilder", { is: true }, ["awesome!"]); // => 'cnbuilder is awesome!'
54 | ```
55 |
56 | ```typescript
57 | import { cnb } from "cnbuilder";
58 |
59 | cnb("works", { with: true }, ["ESM!"]); // => 'works with ESM!'
60 | ```
61 |
62 | ### Why
63 |
64 | `cnbuilder` is designed to be lighnweight and fast drop-in replacement of [classnames](https://npmjs.com/classnames) package, so it wont be anyhow hard to migrate if you're already using `classnames` package.
65 | In general `cnbuilder` is **3-4 times faster** than `classnames` and slightly lighter.
66 |
67 | ### Usage
68 |
69 | API is absolutely the same with `classnames`, except the moment that `cnbuilder`'s methods are named exported.
70 |
71 | ```typescript
72 | import { cnb, dcnb } from 'cnbuilder';
73 |
74 | cnb(); // common version
75 | dcnb(); // deduped version
76 | ```
77 | The `cnbuilder` takes any number of arguments which can be a string, array or object. Any other input will be ignored.
78 | The argument `'foo'` is short for `{ foo: true }` or `['foo']`. If the value associated with a given key is falsy, that key won't be included in the output.
79 |
80 | ```js
81 | cnb("foo", "bar"); // => 'foo bar'
82 | cnb("foo", { bar: true }); // => 'foo bar'
83 | cnb({ "foo-bar": true }); // => 'foo-bar'
84 | cnb({ "foo-bar": false }); // => ''
85 | cnb({ foo: true }, { bar: true }); // => 'foo bar'
86 | cnb({ foo: true, bar: true }); // => 'foo bar'
87 |
88 | // lots of arguments of various types
89 | cnb("foo", { bar: true, duck: false }, "baz", { quux: true }); // => 'foo bar baz quux'
90 |
91 | // other falsy values are just ignored
92 | cnb(null, false, "bar", undefined, 0, 1, { baz: null }, ""); // => 'bar 1'
93 | ```
94 |
95 | Arrays will be recursively flattened as per the rules above:
96 |
97 | ```js
98 | var arr = ["b", { c: true, d: false }];
99 | cnb("a", arr); // => 'a b c'
100 | ```
101 |
102 | Output, as you see - pretty much the same too, but has some differences in direction of class names RFC.
103 |
104 | - `cnbuilder` does not generate useless spaces:
105 | ```javascript
106 | classnames("test", [], { a: false }); // => "test " (5 chars with space at the end)
107 | cnb("test", [], { a: false }); // => "test" (just 4 chars)
108 | ```
109 | - `cnbuilder` skips numbers as they'te not the part of class names RFC. But it **can't** skip strings starting with digit and numeric object keys, cause it would impact the performance, so that part is left for the end developer
110 | ```javascript
111 | classnames(321, "1stPlace"); // => "321 1stPlace"
112 | cnb(321, "1stPlace"); // => "1stPlace"
113 | ```
114 |
115 | #### Dynamic class names with ES2015
116 |
117 | If you're in an environment that supports [computed keys](http://www.ecma-international.org/ecma-262/6.0/#sec-object-initializer) (available in ES2015+ and Babel) you can use dynamic class names:
118 |
119 | ```javascript
120 | let buttonType = "primary";
121 | cnb({ [`btn-${buttonType}`]: true });
122 | ```
123 |
124 | #### Dedupe version
125 |
126 | `cnbuilder` exports an alternative version which dedupes classes and ensures falsy classes specified in later arguments are excluded from the result string.
127 |
128 | This version is way slower so use it with caution.
129 |
130 | To use is simply import the `dcnb` method from `cnbuilder` package:
131 |
132 | ```typescript
133 | import { dcnb } from 'cnbuilder';
134 |
135 | dcnb('foo foo foo', 'foo', 'foo foo'); // => 'foo'
136 | dcnb('foo', {foo: false, bar: true}, 'bar bar'); // => 'bar'
137 | ```
138 |
139 | ### Polyfills needed to support older browsers
140 |
141 | - `Array.isArray`: see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) for details about unsupported older browsers (e.g. <= IE8) and a simple polyfill.
142 | - `Object.create`: used in dedupe version, see [MDN](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/create) for details about unsupported older browsers (e.g. <= IE8) and a simple polyfill.
143 |
144 | ### Performance (recent benchmarks results)
145 |
146 | Benchmarks results can be found in the [`benchmark`](/benchmark) directory.
147 |
148 | ## Related projects
149 |
150 | - [react-scrollbars-custom](https://www.npmjs.com/package/react-scrollbars-custom) — The best React custom scrollbars component. Allows you to customise scrollbars as you like it, crossbrowser!
151 | - [zoom-level](https://www.npmjs.com/package/zoom-level) — A comprehensive cross-browser package that allow you to determine page's and element's zoom level.
152 | - [@xobotyi/scrollbar-width](https://www.npmjs.com/package/@xobotyi/scrollbar-width) — A tool to get browser's scrollbars width.
153 | - [@xobotyi/should-reverse-rtl-scroll](https://www.npmjs.com/package/@xobotyi/should-reverse-rtl-scroll) — A tool detecting if RTL scroll value should be negative.
154 |
--------------------------------------------------------------------------------
/benchmark/.gitignore:
--------------------------------------------------------------------------------
1 | browser/common.js
2 |
--------------------------------------------------------------------------------
/benchmark/README.md:
--------------------------------------------------------------------------------
1 | ## `cnbuilder` benchmarks
2 |
3 | ### Node.js
4 |
5 | To run benchmarks - run below command from package root;
6 |
7 | ```bash
8 | # to run cnb benchmarks
9 | yarn && yarn build && cd benchmark && yarn bench:common
10 | # or dcnb
11 | yarn && yarn build && cd benchmark && yarn bench:dedupe
12 | ```
13 |
14 | ##### Recent results
15 | Below results received with nodejs 16 run on Win10 Ryzen 3950x with 32 Gb of RAM.
16 |
17 | #### `cnb` (common version)
18 | > *Note:* `classcat` has different api, not compatible with `classnames`.
19 | ```
20 | # strings
21 | classnames x 4,083,509 ops/sec ±0.22% (93 runs sampled)
22 | classcat x 8,472,407 ops/sec ±0.42% (93 runs sampled)
23 | clsx x 9,088,617 ops/sec ±0.38% (94 runs sampled)
24 | cnbuilder x 9,603,856 ops/sec ±0.37% (94 runs sampled)
25 | Fastest is cnbuilder
26 |
27 | # objects
28 | classnames x 3,811,117 ops/sec ±0.29% (95 runs sampled)
29 | classcat x 7,446,222 ops/sec ±1.07% (94 runs sampled)
30 | clsx x 5,821,173 ops/sec ±1.51% (94 runs sampled)
31 | cnbuilder x 7,519,923 ops/sec ±0.21% (95 runs sampled)
32 | Fastest is cnbuilder (npm), classcat
33 |
34 | # arrays
35 | classnames x 2,069,671 ops/sec ±0.28% (93 runs sampled)
36 | classcat x 6,669,109 ops/sec ±0.96% (92 runs sampled)
37 | clsx x 6,680,288 ops/sec ±0.55% (96 runs sampled)
38 | cnbuilder x 6,959,989 ops/sec ±0.51% (94 runs sampled)
39 | Fastest is cnbuilder
40 |
41 | # nested arrays
42 | classnames x 1,249,296 ops/sec ±0.22% (94 runs sampled)
43 | classcat x 5,470,455 ops/sec ±0.65% (94 runs sampled)
44 | clsx x 5,295,335 ops/sec ±0.31% (96 runs sampled)
45 | cnbuilder x 5,739,216 ops/sec ±1.03% (93 runs sampled)
46 | Fastest is cnbuilder
47 |
48 | # objects nested in arrays
49 | classnames x 1,938,154 ops/sec ±0.35% (95 runs sampled)
50 | classcat x 5,719,322 ops/sec ±1.71% (91 runs sampled)
51 | clsx x 5,164,636 ops/sec ±0.33% (95 runs sampled)
52 | cnbuilder x 5,787,434 ops/sec ±0.64% (98 runs sampled)
53 | Fastest is cnbuilder
54 |
55 | # mixed
56 | classnames x 2,552,973 ops/sec ±0.21% (93 runs sampled)
57 | classcat x 5,967,660 ops/sec ±1.46% (93 runs sampled)
58 | clsx x 5,684,660 ops/sec ±0.52% (95 runs sampled)
59 | cnbuilder x 6,140,257 ops/sec ±0.98% (94 runs sampled)
60 | Fastest is cnbuilder
61 |
62 | # mixed with wrong data
63 | classnames x 1,210,149 ops/sec ±0.31% (95 runs sampled)
64 | classcat x 1,607,124 ops/sec ±0.23% (97 runs sampled)
65 | clsx x 1,935,682 ops/sec ±0.24% (96 runs sampled)
66 | cnbuilder x 1,994,307 ops/sec ±1.19% (92 runs sampled)
67 | Fastest is cnbuilder
68 | ```
69 |
70 | #### `dcnb` (dedupe version)
71 |
72 | ```
73 | # strings
74 | classnamesx 705,991 ops/sec ±0.22% (96 runs sampled)
75 | cnbuilder x 853,845 ops/sec ±0.42% (93 runs sampled)
76 | Fastest is cnbuilder
77 |
78 | # objects
79 | classnamesx 2,664,555 ops/sec ±0.67% (96 runs sampled)
80 | cnbuilder x 4,066,849 ops/sec ±1.01% (94 runs sampled)
81 | Fastest is cnbuilder
82 |
83 | # arrays
84 | classnames x 636,730 ops/sec ±0.39% (95 runs sampled)
85 | cnbuilder x 678,502 ops/sec ±0.34% (97 runs sampled)
86 | Fastest is cnbuilder
87 |
88 | # nested arrays
89 | classnamesx 748,978 ops/sec ±0.23% (95 runs sampled)
90 | cnbuilder x 860,963 ops/sec ±0.30% (96 runs sampled)
91 | Fastest is cnbuilder
92 |
93 | # objects nested in arrays
94 | classnames x 1,309,636 ops/sec ±0.65% (95 runs sampled)
95 | cnbuilder x 1,400,022 ops/sec ±0.62% (92 runs sampled)
96 | Fastest is cnbuilder
97 |
98 | # mixed
99 | classnames x 1,537,635 ops/sec ±0.25% (97 runs sampled)
100 | cnbuilder x 1,985,006 ops/sec ±0.24% (97 runs sampled)
101 | Fastest is cnbuilder
102 |
103 | # mixed with wrong data
104 | classnames x 425,943 ops/sec ±0.26% (93 runs sampled)
105 | cnbuilder x 468,798 ops/sec ±0.46% (96 runs sampled)
106 | Fastest is cnbuilder
107 | ```
108 |
109 |
--------------------------------------------------------------------------------
/benchmark/browser/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | classnames string builder benchmark
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/benchmark/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "dependencies": {},
4 | "scripts": {
5 | "bench:common": "yarn && node ./src/common.js",
6 | "bench:dedupe": "yarn && node ./src/dedupe.js",
7 | "bench:common:browser": "browserify ./src/common.js -o ./browser/common.js && open-cli ./browser/index.html"
8 | },
9 | "devDependencies": {
10 | "benchmark": "^2.1.4",
11 | "browserify": "*",
12 | "classcat": "*",
13 | "classnames": "*",
14 | "clsx": "*",
15 | "cnbuilder": "*",
16 | "open-cli": "^7.1.0"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/benchmark/src/common.js:
--------------------------------------------------------------------------------
1 | const classnames = require('classnames');
2 | const classcat = require('classcat');
3 | // classcat somewhy uses ES6 export for browser
4 | const clsx = require('clsx');
5 | // const cnbuilderNpm = require('cnbuilder/cjs').cnb;
6 | const cnbuilderLocal = require('../../cjs').cnb;
7 | const runTests = require('./run');
8 |
9 | const libraries = {
10 | // 'cnbuilder (npm)': (args) => cnbuilderNpm.apply(cnbuilderNpm, args),
11 | cnbuilder: (args) => cnbuilderLocal.apply(cnbuilderLocal, args),
12 | classnames: (args) => classnames.apply(classnames, args),
13 | clsx: (args) => clsx.apply(clsx, args),
14 | classcat: (args) => classcat.call(classcat, args),
15 | };
16 |
17 | const testData = [
18 | {
19 | name: 'strings',
20 | data: ['foo', '', 'bar', 'baz', '', 'bax', 'bux'],
21 | },
22 | {
23 | name: 'objects',
24 | data: [
25 | { foo: true, bar: true, bax: true, bux: false },
26 | { baz: true, bax: false, bux: true },
27 | ],
28 | },
29 | {
30 | name: 'arrays',
31 | data: [
32 | ['foo', 'bar'],
33 | ['baz', 'bax', 'bux'],
34 | ],
35 | },
36 | {
37 | name: 'nested arrays',
38 | data: [
39 | ['foo', ['bar']],
40 | ['baz', ['bax', ['bux']]],
41 | ],
42 | },
43 | {
44 | name: 'objects nested in arrays',
45 | data: [
46 | ['foo', { bar: true, bax: true, bux: false }],
47 | ['bax', { bax: false, bux: true }],
48 | ],
49 | },
50 | {
51 | name: 'mixed',
52 | data: [
53 | 'foo',
54 | 'bar',
55 | { bax: true, bux: false },
56 | ['baz', { bax: false, bux: true }],
57 | ],
58 | },
59 | {
60 | name: 'mixed with wrong data',
61 | data: [
62 | 'foo',
63 | 'bar',
64 | undefined,
65 | () => {},
66 | { bax: true, bux: false, 123: true },
67 | ['baz', { bax: false, bux: true, abc: null }, {}],
68 | ],
69 | },
70 | ];
71 |
72 | runTests(testData, libraries);
73 |
--------------------------------------------------------------------------------
/benchmark/src/dedupe.js:
--------------------------------------------------------------------------------
1 | const classnames = require('classnames/dedupe');
2 | const cnbuilderNpm = require('cnbuilder').dcnb;
3 | const cnbuilderLocal = require('../../dist').dcnb;
4 | const runTests = require('./run');
5 |
6 | const libraries = {
7 | 'classnames ': args => classnames.apply(classnames, args),
8 | 'cnbuilder (local)': args => cnbuilderLocal.apply(cnbuilderLocal, args),
9 | 'cnbuilder (npm) ': args => cnbuilderNpm.apply(cnbuilderNpm, args),
10 | };
11 |
12 | const testData = [
13 | {
14 | name: 'strings',
15 | data: ['foo', '', 'bar', 'baz', 'bax', 'bux', 'baz bux', 'bax', 'bux', 'baz', 'bax', 'bux'],
16 | },
17 | {
18 | name: 'objects',
19 | data: [
20 | { foo: true, bar: true, bax: true, bux: false },
21 | { baz: true, bax: false, bux: true },
22 | { foo: false, bar: false, bax: false, bux: false },
23 | ],
24 | },
25 | {
26 | name: 'arrays',
27 | data: [
28 | ['foo', '', 'bar', 'baz bax', 'bax', 'bux'],
29 | ['baz', 'bax', 'bux', 'baz foo', 'bax', 'bux'],
30 | ],
31 | },
32 | {
33 | name: 'nested arrays',
34 | data: [
35 | ['foo', '', 'bar', ['baz', 'bax', 'bux']],
36 | ['baz', 'bax', 'bux', ['baz', 'bax', 'bux']],
37 | ],
38 | },
39 | {
40 | name: 'objects nested in arrays',
41 | data: [
42 | ['foo', '', 'bar', { foo: true, bar: true, bax: true, bux: false }],
43 | ['baz', 'bax', 'bux', { foo: false, bar: false, bax: false, bux: false }],
44 | ],
45 | },
46 | {
47 | name: 'mixed',
48 | data: ['foo', 'bar', { bax: true, bux: false }, ['baz', { bax: false, bux: true }]],
49 | },
50 | {
51 | name: 'mixed with wrong data',
52 | data: [
53 | 'foo',
54 | 'bar',
55 | undefined,
56 | () => {},
57 | { bax: true, bux: false, 123: true },
58 | ['baz', { bax: false, bux: true, abc: null }, {}],
59 | ],
60 | },
61 | ];
62 |
63 | runTests(testData, libraries);
64 |
--------------------------------------------------------------------------------
/benchmark/src/run.js:
--------------------------------------------------------------------------------
1 | const benchmark = require('benchmark');
2 |
3 | const outputFn =
4 | typeof document === 'undefined'
5 | ? console.log
6 | : text => {
7 | document.body.innerHTML += `${text.replace('\n', '
')}
`;
8 | };
9 |
10 | module.exports = (testData, libraries) => {
11 | testData.forEach(test => {
12 | const suite = new benchmark.Suite(test.name, {
13 | onStart: () => {
14 | outputFn(`\n# ${test.name}`);
15 | },
16 | onCycle: ev => {
17 | outputFn(` ${String(ev.target)}`);
18 | },
19 | onComplete: ev => {
20 | outputFn(` Fastest is ${ev.currentTarget.filter('fastest').map('name')}`);
21 | },
22 | });
23 |
24 | Object.entries(libraries).forEach(([name, fn]) => {
25 | suite.add(name, () => fn(test.data));
26 | });
27 |
28 | suite.run();
29 | });
30 | };
31 |
--------------------------------------------------------------------------------
/benchmark/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.0.0":
6 | version "7.14.5"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
8 | integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
9 | dependencies:
10 | "@babel/highlight" "^7.14.5"
11 |
12 | "@babel/helper-validator-identifier@^7.14.5":
13 | version "7.14.5"
14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8"
15 | integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==
16 |
17 | "@babel/highlight@^7.14.5":
18 | version "7.14.5"
19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
20 | integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
21 | dependencies:
22 | "@babel/helper-validator-identifier" "^7.14.5"
23 | chalk "^2.0.0"
24 | js-tokens "^4.0.0"
25 |
26 | "@tokenizer/token@^0.3.0":
27 | version "0.3.0"
28 | resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276"
29 | integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==
30 |
31 | "@types/minimist@^1.2.2":
32 | version "1.2.2"
33 | resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c"
34 | integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
35 |
36 | "@types/normalize-package-data@^2.4.0":
37 | version "2.4.1"
38 | resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301"
39 | integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==
40 |
41 | JSONStream@^1.0.3:
42 | version "1.3.5"
43 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
44 | integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
45 | dependencies:
46 | jsonparse "^1.2.0"
47 | through ">=2.2.7 <3"
48 |
49 | acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1:
50 | version "1.8.2"
51 | resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
52 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
53 | dependencies:
54 | acorn "^7.0.0"
55 | acorn-walk "^7.0.0"
56 | xtend "^4.0.2"
57 |
58 | acorn-walk@^7.0.0:
59 | version "7.2.0"
60 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
61 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
62 |
63 | acorn@^7.0.0:
64 | version "7.4.1"
65 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
66 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
67 |
68 | ansi-styles@^3.2.1:
69 | version "3.2.1"
70 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
71 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
72 | dependencies:
73 | color-convert "^1.9.0"
74 |
75 | arrify@^1.0.1:
76 | version "1.0.1"
77 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
78 | integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
79 |
80 | asn1.js@^5.2.0:
81 | version "5.4.1"
82 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
83 | integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
84 | dependencies:
85 | bn.js "^4.0.0"
86 | inherits "^2.0.1"
87 | minimalistic-assert "^1.0.0"
88 | safer-buffer "^2.1.0"
89 |
90 | assert@^1.4.0:
91 | version "1.5.0"
92 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
93 | integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
94 | dependencies:
95 | object-assign "^4.1.1"
96 | util "0.10.3"
97 |
98 | available-typed-arrays@^1.0.2:
99 | version "1.0.4"
100 | resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9"
101 | integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==
102 |
103 | balanced-match@^1.0.0:
104 | version "1.0.2"
105 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
106 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
107 |
108 | base64-js@^1.0.2:
109 | version "1.5.1"
110 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
111 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
112 |
113 | benchmark@^2.1.4:
114 | version "2.1.4"
115 | resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629"
116 | integrity sha1-CfPeMckWQl1JjMLuVloOvzwqVik=
117 | dependencies:
118 | lodash "^4.17.4"
119 | platform "^1.3.3"
120 |
121 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
122 | version "4.12.0"
123 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
124 | integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
125 |
126 | bn.js@^5.0.0, bn.js@^5.1.1:
127 | version "5.2.0"
128 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
129 | integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
130 |
131 | brace-expansion@^1.1.7:
132 | version "1.1.11"
133 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
134 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
135 | dependencies:
136 | balanced-match "^1.0.0"
137 | concat-map "0.0.1"
138 |
139 | brorand@^1.0.1, brorand@^1.1.0:
140 | version "1.1.0"
141 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
142 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
143 |
144 | browser-pack@^6.0.1:
145 | version "6.1.0"
146 | resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774"
147 | integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==
148 | dependencies:
149 | JSONStream "^1.0.3"
150 | combine-source-map "~0.8.0"
151 | defined "^1.0.0"
152 | safe-buffer "^5.1.1"
153 | through2 "^2.0.0"
154 | umd "^3.0.0"
155 |
156 | browser-resolve@^2.0.0:
157 | version "2.0.0"
158 | resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b"
159 | integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==
160 | dependencies:
161 | resolve "^1.17.0"
162 |
163 | browserify-aes@^1.0.0, browserify-aes@^1.0.4:
164 | version "1.2.0"
165 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
166 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
167 | dependencies:
168 | buffer-xor "^1.0.3"
169 | cipher-base "^1.0.0"
170 | create-hash "^1.1.0"
171 | evp_bytestokey "^1.0.3"
172 | inherits "^2.0.1"
173 | safe-buffer "^5.0.1"
174 |
175 | browserify-cipher@^1.0.0:
176 | version "1.0.1"
177 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
178 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
179 | dependencies:
180 | browserify-aes "^1.0.4"
181 | browserify-des "^1.0.0"
182 | evp_bytestokey "^1.0.0"
183 |
184 | browserify-des@^1.0.0:
185 | version "1.0.2"
186 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
187 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
188 | dependencies:
189 | cipher-base "^1.0.1"
190 | des.js "^1.0.0"
191 | inherits "^2.0.1"
192 | safe-buffer "^5.1.2"
193 |
194 | browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
195 | version "4.1.0"
196 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
197 | integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
198 | dependencies:
199 | bn.js "^5.0.0"
200 | randombytes "^2.0.1"
201 |
202 | browserify-sign@^4.0.0:
203 | version "4.2.1"
204 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
205 | integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
206 | dependencies:
207 | bn.js "^5.1.1"
208 | browserify-rsa "^4.0.1"
209 | create-hash "^1.2.0"
210 | create-hmac "^1.1.7"
211 | elliptic "^6.5.3"
212 | inherits "^2.0.4"
213 | parse-asn1 "^5.1.5"
214 | readable-stream "^3.6.0"
215 | safe-buffer "^5.2.0"
216 |
217 | browserify-zlib@~0.2.0:
218 | version "0.2.0"
219 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
220 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
221 | dependencies:
222 | pako "~1.0.5"
223 |
224 | browserify@*:
225 | version "17.0.0"
226 | resolved "https://registry.yarnpkg.com/browserify/-/browserify-17.0.0.tgz#4c48fed6c02bfa2b51fd3b670fddb805723cdc22"
227 | integrity sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==
228 | dependencies:
229 | JSONStream "^1.0.3"
230 | assert "^1.4.0"
231 | browser-pack "^6.0.1"
232 | browser-resolve "^2.0.0"
233 | browserify-zlib "~0.2.0"
234 | buffer "~5.2.1"
235 | cached-path-relative "^1.0.0"
236 | concat-stream "^1.6.0"
237 | console-browserify "^1.1.0"
238 | constants-browserify "~1.0.0"
239 | crypto-browserify "^3.0.0"
240 | defined "^1.0.0"
241 | deps-sort "^2.0.1"
242 | domain-browser "^1.2.0"
243 | duplexer2 "~0.1.2"
244 | events "^3.0.0"
245 | glob "^7.1.0"
246 | has "^1.0.0"
247 | htmlescape "^1.1.0"
248 | https-browserify "^1.0.0"
249 | inherits "~2.0.1"
250 | insert-module-globals "^7.2.1"
251 | labeled-stream-splicer "^2.0.0"
252 | mkdirp-classic "^0.5.2"
253 | module-deps "^6.2.3"
254 | os-browserify "~0.3.0"
255 | parents "^1.0.1"
256 | path-browserify "^1.0.0"
257 | process "~0.11.0"
258 | punycode "^1.3.2"
259 | querystring-es3 "~0.2.0"
260 | read-only-stream "^2.0.0"
261 | readable-stream "^2.0.2"
262 | resolve "^1.1.4"
263 | shasum-object "^1.0.0"
264 | shell-quote "^1.6.1"
265 | stream-browserify "^3.0.0"
266 | stream-http "^3.0.0"
267 | string_decoder "^1.1.1"
268 | subarg "^1.0.0"
269 | syntax-error "^1.1.1"
270 | through2 "^2.0.0"
271 | timers-browserify "^1.0.1"
272 | tty-browserify "0.0.1"
273 | url "~0.11.0"
274 | util "~0.12.0"
275 | vm-browserify "^1.0.0"
276 | xtend "^4.0.0"
277 |
278 | buffer-from@^1.0.0:
279 | version "1.1.1"
280 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
281 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
282 |
283 | buffer-xor@^1.0.3:
284 | version "1.0.3"
285 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
286 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
287 |
288 | buffer@~5.2.1:
289 | version "5.2.1"
290 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6"
291 | integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==
292 | dependencies:
293 | base64-js "^1.0.2"
294 | ieee754 "^1.1.4"
295 |
296 | builtin-status-codes@^3.0.0:
297 | version "3.0.0"
298 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
299 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
300 |
301 | cached-path-relative@^1.0.0, cached-path-relative@^1.0.2:
302 | version "1.1.0"
303 | resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3"
304 | integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==
305 |
306 | call-bind@^1.0.0, call-bind@^1.0.2:
307 | version "1.0.2"
308 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
309 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
310 | dependencies:
311 | function-bind "^1.1.1"
312 | get-intrinsic "^1.0.2"
313 |
314 | camelcase-keys@^7.0.0:
315 | version "7.0.2"
316 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252"
317 | integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==
318 | dependencies:
319 | camelcase "^6.3.0"
320 | map-obj "^4.1.0"
321 | quick-lru "^5.1.1"
322 | type-fest "^1.2.1"
323 |
324 | camelcase@^6.3.0:
325 | version "6.3.0"
326 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
327 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
328 |
329 | chalk@^2.0.0:
330 | version "2.4.2"
331 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
332 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
333 | dependencies:
334 | ansi-styles "^3.2.1"
335 | escape-string-regexp "^1.0.5"
336 | supports-color "^5.3.0"
337 |
338 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
339 | version "1.0.4"
340 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
341 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
342 | dependencies:
343 | inherits "^2.0.1"
344 | safe-buffer "^5.0.1"
345 |
346 | classcat@*:
347 | version "5.0.4"
348 | resolved "https://registry.yarnpkg.com/classcat/-/classcat-5.0.4.tgz#e12d1dfe6df6427f260f03b80dc63571a5107ba6"
349 | integrity sha512-sbpkOw6z413p+HDGcBENe498WM9woqWHiJxCq7nvmxe9WmrUmqfAcxpIwAiMtM5Q3AhYkzXcNQHqsWq0mND51g==
350 |
351 | classnames@*:
352 | version "2.3.2"
353 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924"
354 | integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==
355 |
356 | clsx@*:
357 | version "2.0.0"
358 | resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b"
359 | integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==
360 |
361 | cnbuilder@*:
362 | version "3.1.0"
363 | resolved "https://registry.yarnpkg.com/cnbuilder/-/cnbuilder-3.1.0.tgz#1f7b92a466059a0131f3157f200ac13dc4311ea5"
364 | integrity sha512-9sxWwwprkPNTVQnx92WYPEWCmyZRqbf9VWUYABU4rl0mLL17VAV2MvvOApkMA6bQVXRLJ8jN//8Yp6drElpLWA==
365 |
366 | color-convert@^1.9.0:
367 | version "1.9.3"
368 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
369 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
370 | dependencies:
371 | color-name "1.1.3"
372 |
373 | color-name@1.1.3:
374 | version "1.1.3"
375 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
376 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
377 |
378 | combine-source-map@^0.8.0, combine-source-map@~0.8.0:
379 | version "0.8.0"
380 | resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b"
381 | integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=
382 | dependencies:
383 | convert-source-map "~1.1.0"
384 | inline-source-map "~0.6.0"
385 | lodash.memoize "~3.0.3"
386 | source-map "~0.5.3"
387 |
388 | concat-map@0.0.1:
389 | version "0.0.1"
390 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
391 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
392 |
393 | concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0:
394 | version "1.6.2"
395 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
396 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
397 | dependencies:
398 | buffer-from "^1.0.0"
399 | inherits "^2.0.3"
400 | readable-stream "^2.2.2"
401 | typedarray "^0.0.6"
402 |
403 | console-browserify@^1.1.0:
404 | version "1.2.0"
405 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
406 | integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
407 |
408 | constants-browserify@~1.0.0:
409 | version "1.0.0"
410 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
411 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
412 |
413 | convert-source-map@~1.1.0:
414 | version "1.1.3"
415 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860"
416 | integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=
417 |
418 | core-util-is@~1.0.0:
419 | version "1.0.2"
420 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
421 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
422 |
423 | create-ecdh@^4.0.0:
424 | version "4.0.4"
425 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
426 | integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
427 | dependencies:
428 | bn.js "^4.1.0"
429 | elliptic "^6.5.3"
430 |
431 | create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
432 | version "1.2.0"
433 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
434 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
435 | dependencies:
436 | cipher-base "^1.0.1"
437 | inherits "^2.0.1"
438 | md5.js "^1.3.4"
439 | ripemd160 "^2.0.1"
440 | sha.js "^2.4.0"
441 |
442 | create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
443 | version "1.1.7"
444 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
445 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
446 | dependencies:
447 | cipher-base "^1.0.3"
448 | create-hash "^1.1.0"
449 | inherits "^2.0.1"
450 | ripemd160 "^2.0.0"
451 | safe-buffer "^5.0.1"
452 | sha.js "^2.4.8"
453 |
454 | crypto-browserify@^3.0.0:
455 | version "3.12.0"
456 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
457 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
458 | dependencies:
459 | browserify-cipher "^1.0.0"
460 | browserify-sign "^4.0.0"
461 | create-ecdh "^4.0.0"
462 | create-hash "^1.1.0"
463 | create-hmac "^1.1.0"
464 | diffie-hellman "^5.0.0"
465 | inherits "^2.0.1"
466 | pbkdf2 "^3.0.3"
467 | public-encrypt "^4.0.0"
468 | randombytes "^2.0.0"
469 | randomfill "^1.0.3"
470 |
471 | crypto-random-string@^4.0.0:
472 | version "4.0.0"
473 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2"
474 | integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==
475 | dependencies:
476 | type-fest "^1.0.1"
477 |
478 | dash-ast@^1.0.0:
479 | version "1.0.0"
480 | resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37"
481 | integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==
482 |
483 | decamelize-keys@^1.1.0:
484 | version "1.1.0"
485 | resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
486 | integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=
487 | dependencies:
488 | decamelize "^1.1.0"
489 | map-obj "^1.0.0"
490 |
491 | decamelize@^1.1.0:
492 | version "1.2.0"
493 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
494 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
495 |
496 | decamelize@^5.0.0:
497 | version "5.0.0"
498 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.0.tgz#88358157b010ef133febfd27c18994bd80c6215b"
499 | integrity sha512-U75DcT5hrio3KNtvdULAWnLiAPbFUC4191ldxMmj4FA/mRuBnmDwU0boNfPyFRhnan+Jm+haLeSn3P0afcBn4w==
500 |
501 | define-lazy-prop@^2.0.0:
502 | version "2.0.0"
503 | resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
504 | integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
505 |
506 | define-properties@^1.1.3:
507 | version "1.1.3"
508 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
509 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
510 | dependencies:
511 | object-keys "^1.0.12"
512 |
513 | defined@^1.0.0:
514 | version "1.0.0"
515 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
516 | integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
517 |
518 | deps-sort@^2.0.1:
519 | version "2.0.1"
520 | resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d"
521 | integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==
522 | dependencies:
523 | JSONStream "^1.0.3"
524 | shasum-object "^1.0.0"
525 | subarg "^1.0.0"
526 | through2 "^2.0.0"
527 |
528 | des.js@^1.0.0:
529 | version "1.0.1"
530 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
531 | integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
532 | dependencies:
533 | inherits "^2.0.1"
534 | minimalistic-assert "^1.0.0"
535 |
536 | detective@^5.2.0:
537 | version "5.2.0"
538 | resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
539 | integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
540 | dependencies:
541 | acorn-node "^1.6.1"
542 | defined "^1.0.0"
543 | minimist "^1.1.1"
544 |
545 | diffie-hellman@^5.0.0:
546 | version "5.0.3"
547 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
548 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
549 | dependencies:
550 | bn.js "^4.1.0"
551 | miller-rabin "^4.0.0"
552 | randombytes "^2.0.0"
553 |
554 | domain-browser@^1.2.0:
555 | version "1.2.0"
556 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
557 | integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
558 |
559 | duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2:
560 | version "0.1.4"
561 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
562 | integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=
563 | dependencies:
564 | readable-stream "^2.0.2"
565 |
566 | elliptic@^6.5.3:
567 | version "6.5.4"
568 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
569 | integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
570 | dependencies:
571 | bn.js "^4.11.9"
572 | brorand "^1.1.0"
573 | hash.js "^1.0.0"
574 | hmac-drbg "^1.0.1"
575 | inherits "^2.0.4"
576 | minimalistic-assert "^1.0.1"
577 | minimalistic-crypto-utils "^1.0.1"
578 |
579 | error-ex@^1.3.1:
580 | version "1.3.2"
581 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
582 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
583 | dependencies:
584 | is-arrayish "^0.2.1"
585 |
586 | es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2:
587 | version "1.18.3"
588 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0"
589 | integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==
590 | dependencies:
591 | call-bind "^1.0.2"
592 | es-to-primitive "^1.2.1"
593 | function-bind "^1.1.1"
594 | get-intrinsic "^1.1.1"
595 | has "^1.0.3"
596 | has-symbols "^1.0.2"
597 | is-callable "^1.2.3"
598 | is-negative-zero "^2.0.1"
599 | is-regex "^1.1.3"
600 | is-string "^1.0.6"
601 | object-inspect "^1.10.3"
602 | object-keys "^1.1.1"
603 | object.assign "^4.1.2"
604 | string.prototype.trimend "^1.0.4"
605 | string.prototype.trimstart "^1.0.4"
606 | unbox-primitive "^1.0.1"
607 |
608 | es-to-primitive@^1.2.1:
609 | version "1.2.1"
610 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
611 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
612 | dependencies:
613 | is-callable "^1.1.4"
614 | is-date-object "^1.0.1"
615 | is-symbol "^1.0.2"
616 |
617 | escape-string-regexp@^1.0.5:
618 | version "1.0.5"
619 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
620 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
621 |
622 | events@^3.0.0:
623 | version "3.3.0"
624 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
625 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
626 |
627 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
628 | version "1.0.3"
629 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
630 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
631 | dependencies:
632 | md5.js "^1.3.4"
633 | safe-buffer "^5.1.1"
634 |
635 | fast-safe-stringify@^2.0.7:
636 | version "2.0.8"
637 | resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f"
638 | integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==
639 |
640 | file-type@^18.0.0:
641 | version "18.0.0"
642 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.0.0.tgz#7a39378f8657ddc02807a0c62cb77cb4dc318197"
643 | integrity sha512-jjMwFpnW8PKofLE/4ohlhqwDk5k0NC6iy0UHAJFKoY1fQeGMN0GDdLgHQrvCbSpMwbqzoCZhRI5dETCZna5qVA==
644 | dependencies:
645 | readable-web-to-node-stream "^3.0.2"
646 | strtok3 "^7.0.0"
647 | token-types "^5.0.1"
648 |
649 | find-up@^5.0.0:
650 | version "5.0.0"
651 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
652 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
653 | dependencies:
654 | locate-path "^6.0.0"
655 | path-exists "^4.0.0"
656 |
657 | foreach@^2.0.5:
658 | version "2.0.5"
659 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
660 | integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
661 |
662 | fs.realpath@^1.0.0:
663 | version "1.0.0"
664 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
665 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
666 |
667 | function-bind@^1.1.1:
668 | version "1.1.1"
669 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
670 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
671 |
672 | get-assigned-identifiers@^1.2.0:
673 | version "1.2.0"
674 | resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1"
675 | integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==
676 |
677 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.1:
678 | version "1.1.1"
679 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
680 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
681 | dependencies:
682 | function-bind "^1.1.1"
683 | has "^1.0.3"
684 | has-symbols "^1.0.1"
685 |
686 | get-stdin@^9.0.0:
687 | version "9.0.0"
688 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575"
689 | integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==
690 |
691 | glob@^7.1.0:
692 | version "7.1.7"
693 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
694 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
695 | dependencies:
696 | fs.realpath "^1.0.0"
697 | inflight "^1.0.4"
698 | inherits "2"
699 | minimatch "^3.0.4"
700 | once "^1.3.0"
701 | path-is-absolute "^1.0.0"
702 |
703 | hard-rejection@^2.1.0:
704 | version "2.1.0"
705 | resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883"
706 | integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==
707 |
708 | has-bigints@^1.0.1:
709 | version "1.0.1"
710 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
711 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
712 |
713 | has-flag@^3.0.0:
714 | version "3.0.0"
715 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
716 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
717 |
718 | has-symbols@^1.0.1, has-symbols@^1.0.2:
719 | version "1.0.2"
720 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
721 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
722 |
723 | has@^1.0.0, has@^1.0.3:
724 | version "1.0.3"
725 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
726 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
727 | dependencies:
728 | function-bind "^1.1.1"
729 |
730 | hash-base@^3.0.0:
731 | version "3.1.0"
732 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
733 | integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
734 | dependencies:
735 | inherits "^2.0.4"
736 | readable-stream "^3.6.0"
737 | safe-buffer "^5.2.0"
738 |
739 | hash.js@^1.0.0, hash.js@^1.0.3:
740 | version "1.1.7"
741 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
742 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
743 | dependencies:
744 | inherits "^2.0.3"
745 | minimalistic-assert "^1.0.1"
746 |
747 | hmac-drbg@^1.0.1:
748 | version "1.0.1"
749 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
750 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
751 | dependencies:
752 | hash.js "^1.0.3"
753 | minimalistic-assert "^1.0.0"
754 | minimalistic-crypto-utils "^1.0.1"
755 |
756 | hosted-git-info@^4.0.1:
757 | version "4.0.2"
758 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961"
759 | integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==
760 | dependencies:
761 | lru-cache "^6.0.0"
762 |
763 | htmlescape@^1.1.0:
764 | version "1.1.1"
765 | resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351"
766 | integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=
767 |
768 | https-browserify@^1.0.0:
769 | version "1.0.0"
770 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
771 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
772 |
773 | ieee754@^1.1.4, ieee754@^1.2.1:
774 | version "1.2.1"
775 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
776 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
777 |
778 | indent-string@^5.0.0:
779 | version "5.0.0"
780 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5"
781 | integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==
782 |
783 | inflight@^1.0.4:
784 | version "1.0.6"
785 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
786 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
787 | dependencies:
788 | once "^1.3.0"
789 | wrappy "1"
790 |
791 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4:
792 | version "2.0.4"
793 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
794 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
795 |
796 | inherits@2.0.1:
797 | version "2.0.1"
798 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
799 | integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
800 |
801 | inline-source-map@~0.6.0:
802 | version "0.6.2"
803 | resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5"
804 | integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=
805 | dependencies:
806 | source-map "~0.5.3"
807 |
808 | insert-module-globals@^7.2.1:
809 | version "7.2.1"
810 | resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3"
811 | integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==
812 | dependencies:
813 | JSONStream "^1.0.3"
814 | acorn-node "^1.5.2"
815 | combine-source-map "^0.8.0"
816 | concat-stream "^1.6.1"
817 | is-buffer "^1.1.0"
818 | path-is-absolute "^1.0.1"
819 | process "~0.11.0"
820 | through2 "^2.0.0"
821 | undeclared-identifiers "^1.1.2"
822 | xtend "^4.0.0"
823 |
824 | is-arguments@^1.0.4:
825 | version "1.1.0"
826 | resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9"
827 | integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==
828 | dependencies:
829 | call-bind "^1.0.0"
830 |
831 | is-arrayish@^0.2.1:
832 | version "0.2.1"
833 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
834 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
835 |
836 | is-bigint@^1.0.1:
837 | version "1.0.2"
838 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a"
839 | integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==
840 |
841 | is-boolean-object@^1.1.0:
842 | version "1.1.1"
843 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8"
844 | integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==
845 | dependencies:
846 | call-bind "^1.0.2"
847 |
848 | is-buffer@^1.1.0:
849 | version "1.1.6"
850 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
851 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
852 |
853 | is-callable@^1.1.4, is-callable@^1.2.3:
854 | version "1.2.3"
855 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
856 | integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==
857 |
858 | is-core-module@^2.2.0:
859 | version "2.4.0"
860 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"
861 | integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==
862 | dependencies:
863 | has "^1.0.3"
864 |
865 | is-date-object@^1.0.1:
866 | version "1.0.4"
867 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5"
868 | integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==
869 |
870 | is-docker@^2.0.0, is-docker@^2.1.1:
871 | version "2.2.1"
872 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
873 | integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
874 |
875 | is-generator-function@^1.0.7:
876 | version "1.0.9"
877 | resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c"
878 | integrity sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==
879 |
880 | is-negative-zero@^2.0.1:
881 | version "2.0.1"
882 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
883 | integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
884 |
885 | is-number-object@^1.0.4:
886 | version "1.0.5"
887 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb"
888 | integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==
889 |
890 | is-plain-obj@^1.1.0:
891 | version "1.1.0"
892 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
893 | integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
894 |
895 | is-regex@^1.1.3:
896 | version "1.1.3"
897 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f"
898 | integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==
899 | dependencies:
900 | call-bind "^1.0.2"
901 | has-symbols "^1.0.2"
902 |
903 | is-stream@^3.0.0:
904 | version "3.0.0"
905 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
906 | integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
907 |
908 | is-string@^1.0.5, is-string@^1.0.6:
909 | version "1.0.6"
910 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f"
911 | integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==
912 |
913 | is-symbol@^1.0.2, is-symbol@^1.0.3:
914 | version "1.0.4"
915 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
916 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
917 | dependencies:
918 | has-symbols "^1.0.2"
919 |
920 | is-typed-array@^1.1.3:
921 | version "1.1.5"
922 | resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e"
923 | integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==
924 | dependencies:
925 | available-typed-arrays "^1.0.2"
926 | call-bind "^1.0.2"
927 | es-abstract "^1.18.0-next.2"
928 | foreach "^2.0.5"
929 | has-symbols "^1.0.1"
930 |
931 | is-wsl@^2.2.0:
932 | version "2.2.0"
933 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
934 | integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
935 | dependencies:
936 | is-docker "^2.0.0"
937 |
938 | isarray@~1.0.0:
939 | version "1.0.0"
940 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
941 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
942 |
943 | js-tokens@^4.0.0:
944 | version "4.0.0"
945 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
946 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
947 |
948 | json-parse-even-better-errors@^2.3.0:
949 | version "2.3.1"
950 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
951 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
952 |
953 | jsonparse@^1.2.0:
954 | version "1.3.1"
955 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
956 | integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
957 |
958 | kind-of@^6.0.3:
959 | version "6.0.3"
960 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
961 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
962 |
963 | labeled-stream-splicer@^2.0.0:
964 | version "2.0.2"
965 | resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21"
966 | integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==
967 | dependencies:
968 | inherits "^2.0.1"
969 | stream-splicer "^2.0.0"
970 |
971 | lines-and-columns@^1.1.6:
972 | version "1.1.6"
973 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
974 | integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
975 |
976 | locate-path@^6.0.0:
977 | version "6.0.0"
978 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
979 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
980 | dependencies:
981 | p-locate "^5.0.0"
982 |
983 | lodash.memoize@~3.0.3:
984 | version "3.0.4"
985 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f"
986 | integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=
987 |
988 | lodash@^4.17.4:
989 | version "4.17.21"
990 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
991 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
992 |
993 | lru-cache@^6.0.0:
994 | version "6.0.0"
995 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
996 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
997 | dependencies:
998 | yallist "^4.0.0"
999 |
1000 | map-obj@^1.0.0:
1001 | version "1.0.1"
1002 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
1003 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
1004 |
1005 | map-obj@^4.1.0:
1006 | version "4.3.0"
1007 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a"
1008 | integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==
1009 |
1010 | md5.js@^1.3.4:
1011 | version "1.3.5"
1012 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
1013 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
1014 | dependencies:
1015 | hash-base "^3.0.0"
1016 | inherits "^2.0.1"
1017 | safe-buffer "^5.1.2"
1018 |
1019 | meow@^10.1.5:
1020 | version "10.1.5"
1021 | resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f"
1022 | integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==
1023 | dependencies:
1024 | "@types/minimist" "^1.2.2"
1025 | camelcase-keys "^7.0.0"
1026 | decamelize "^5.0.0"
1027 | decamelize-keys "^1.1.0"
1028 | hard-rejection "^2.1.0"
1029 | minimist-options "4.1.0"
1030 | normalize-package-data "^3.0.2"
1031 | read-pkg-up "^8.0.0"
1032 | redent "^4.0.0"
1033 | trim-newlines "^4.0.2"
1034 | type-fest "^1.2.2"
1035 | yargs-parser "^20.2.9"
1036 |
1037 | miller-rabin@^4.0.0:
1038 | version "4.0.1"
1039 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
1040 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
1041 | dependencies:
1042 | bn.js "^4.0.0"
1043 | brorand "^1.0.1"
1044 |
1045 | min-indent@^1.0.1:
1046 | version "1.0.1"
1047 | resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
1048 | integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
1049 |
1050 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
1051 | version "1.0.1"
1052 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
1053 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
1054 |
1055 | minimalistic-crypto-utils@^1.0.1:
1056 | version "1.0.1"
1057 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
1058 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
1059 |
1060 | minimatch@^3.0.4:
1061 | version "3.1.2"
1062 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
1063 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1064 | dependencies:
1065 | brace-expansion "^1.1.7"
1066 |
1067 | minimist-options@4.1.0:
1068 | version "4.1.0"
1069 | resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
1070 | integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==
1071 | dependencies:
1072 | arrify "^1.0.1"
1073 | is-plain-obj "^1.1.0"
1074 | kind-of "^6.0.3"
1075 |
1076 | minimist@^1.1.0, minimist@^1.1.1:
1077 | version "1.2.6"
1078 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
1079 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
1080 |
1081 | mkdirp-classic@^0.5.2:
1082 | version "0.5.3"
1083 | resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
1084 | integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
1085 |
1086 | module-deps@^6.2.3:
1087 | version "6.2.3"
1088 | resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee"
1089 | integrity sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==
1090 | dependencies:
1091 | JSONStream "^1.0.3"
1092 | browser-resolve "^2.0.0"
1093 | cached-path-relative "^1.0.2"
1094 | concat-stream "~1.6.0"
1095 | defined "^1.0.0"
1096 | detective "^5.2.0"
1097 | duplexer2 "^0.1.2"
1098 | inherits "^2.0.1"
1099 | parents "^1.0.0"
1100 | readable-stream "^2.0.2"
1101 | resolve "^1.4.0"
1102 | stream-combiner2 "^1.1.1"
1103 | subarg "^1.0.0"
1104 | through2 "^2.0.0"
1105 | xtend "^4.0.0"
1106 |
1107 | normalize-package-data@^3.0.2:
1108 | version "3.0.2"
1109 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.2.tgz#cae5c410ae2434f9a6c1baa65d5bc3b9366c8699"
1110 | integrity sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==
1111 | dependencies:
1112 | hosted-git-info "^4.0.1"
1113 | resolve "^1.20.0"
1114 | semver "^7.3.4"
1115 | validate-npm-package-license "^3.0.1"
1116 |
1117 | object-assign@^4.1.1:
1118 | version "4.1.1"
1119 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1120 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
1121 |
1122 | object-inspect@^1.10.3:
1123 | version "1.10.3"
1124 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369"
1125 | integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==
1126 |
1127 | object-keys@^1.0.12, object-keys@^1.1.1:
1128 | version "1.1.1"
1129 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1130 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1131 |
1132 | object.assign@^4.1.2:
1133 | version "4.1.2"
1134 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
1135 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
1136 | dependencies:
1137 | call-bind "^1.0.0"
1138 | define-properties "^1.1.3"
1139 | has-symbols "^1.0.1"
1140 | object-keys "^1.1.1"
1141 |
1142 | once@^1.3.0:
1143 | version "1.4.0"
1144 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1145 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1146 | dependencies:
1147 | wrappy "1"
1148 |
1149 | open-cli@^7.1.0:
1150 | version "7.1.0"
1151 | resolved "https://registry.yarnpkg.com/open-cli/-/open-cli-7.1.0.tgz#1c83d6ca9ed102bcc964144c534e03235c5cbb63"
1152 | integrity sha512-Xnn/B7WY9ygV47oK+LlYp5WU8xr0tEL6SEw9jMX8n6ceElOs2AzVXFXI87/O0+b+LwLokQBZVxBMzGZHCYVppw==
1153 | dependencies:
1154 | file-type "^18.0.0"
1155 | get-stdin "^9.0.0"
1156 | meow "^10.1.5"
1157 | open "^8.4.0"
1158 | tempy "^3.0.0"
1159 |
1160 | open@^8.4.0:
1161 | version "8.4.0"
1162 | resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
1163 | integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==
1164 | dependencies:
1165 | define-lazy-prop "^2.0.0"
1166 | is-docker "^2.1.1"
1167 | is-wsl "^2.2.0"
1168 |
1169 | os-browserify@~0.3.0:
1170 | version "0.3.0"
1171 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
1172 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
1173 |
1174 | p-limit@^3.0.2:
1175 | version "3.1.0"
1176 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
1177 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1178 | dependencies:
1179 | yocto-queue "^0.1.0"
1180 |
1181 | p-locate@^5.0.0:
1182 | version "5.0.0"
1183 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
1184 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
1185 | dependencies:
1186 | p-limit "^3.0.2"
1187 |
1188 | pako@~1.0.5:
1189 | version "1.0.11"
1190 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
1191 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
1192 |
1193 | parents@^1.0.0, parents@^1.0.1:
1194 | version "1.0.1"
1195 | resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751"
1196 | integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=
1197 | dependencies:
1198 | path-platform "~0.11.15"
1199 |
1200 | parse-asn1@^5.0.0, parse-asn1@^5.1.5:
1201 | version "5.1.6"
1202 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
1203 | integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
1204 | dependencies:
1205 | asn1.js "^5.2.0"
1206 | browserify-aes "^1.0.0"
1207 | evp_bytestokey "^1.0.0"
1208 | pbkdf2 "^3.0.3"
1209 | safe-buffer "^5.1.1"
1210 |
1211 | parse-json@^5.2.0:
1212 | version "5.2.0"
1213 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
1214 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
1215 | dependencies:
1216 | "@babel/code-frame" "^7.0.0"
1217 | error-ex "^1.3.1"
1218 | json-parse-even-better-errors "^2.3.0"
1219 | lines-and-columns "^1.1.6"
1220 |
1221 | path-browserify@^1.0.0:
1222 | version "1.0.1"
1223 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
1224 | integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
1225 |
1226 | path-exists@^4.0.0:
1227 | version "4.0.0"
1228 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1229 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1230 |
1231 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
1232 | version "1.0.1"
1233 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1234 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1235 |
1236 | path-parse@^1.0.6:
1237 | version "1.0.7"
1238 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1239 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1240 |
1241 | path-platform@~0.11.15:
1242 | version "0.11.15"
1243 | resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2"
1244 | integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=
1245 |
1246 | pbkdf2@^3.0.3:
1247 | version "3.1.2"
1248 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
1249 | integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
1250 | dependencies:
1251 | create-hash "^1.1.2"
1252 | create-hmac "^1.1.4"
1253 | ripemd160 "^2.0.1"
1254 | safe-buffer "^5.0.1"
1255 | sha.js "^2.4.8"
1256 |
1257 | peek-readable@^5.0.0:
1258 | version "5.0.0"
1259 | resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0.tgz#7ead2aff25dc40458c60347ea76cfdfd63efdfec"
1260 | integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==
1261 |
1262 | platform@^1.3.3:
1263 | version "1.3.6"
1264 | resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7"
1265 | integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==
1266 |
1267 | process-nextick-args@~2.0.0:
1268 | version "2.0.1"
1269 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
1270 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
1271 |
1272 | process@~0.11.0:
1273 | version "0.11.10"
1274 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
1275 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
1276 |
1277 | public-encrypt@^4.0.0:
1278 | version "4.0.3"
1279 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
1280 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
1281 | dependencies:
1282 | bn.js "^4.1.0"
1283 | browserify-rsa "^4.0.0"
1284 | create-hash "^1.1.0"
1285 | parse-asn1 "^5.0.0"
1286 | randombytes "^2.0.1"
1287 | safe-buffer "^5.1.2"
1288 |
1289 | punycode@1.3.2:
1290 | version "1.3.2"
1291 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
1292 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
1293 |
1294 | punycode@^1.3.2:
1295 | version "1.4.1"
1296 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
1297 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
1298 |
1299 | querystring-es3@~0.2.0:
1300 | version "0.2.1"
1301 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
1302 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
1303 |
1304 | querystring@0.2.0:
1305 | version "0.2.0"
1306 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
1307 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
1308 |
1309 | quick-lru@^5.1.1:
1310 | version "5.1.1"
1311 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
1312 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
1313 |
1314 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
1315 | version "2.1.0"
1316 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
1317 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
1318 | dependencies:
1319 | safe-buffer "^5.1.0"
1320 |
1321 | randomfill@^1.0.3:
1322 | version "1.0.4"
1323 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
1324 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
1325 | dependencies:
1326 | randombytes "^2.0.5"
1327 | safe-buffer "^5.1.0"
1328 |
1329 | read-only-stream@^2.0.0:
1330 | version "2.0.0"
1331 | resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0"
1332 | integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=
1333 | dependencies:
1334 | readable-stream "^2.0.2"
1335 |
1336 | read-pkg-up@^8.0.0:
1337 | version "8.0.0"
1338 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670"
1339 | integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==
1340 | dependencies:
1341 | find-up "^5.0.0"
1342 | read-pkg "^6.0.0"
1343 | type-fest "^1.0.1"
1344 |
1345 | read-pkg@^6.0.0:
1346 | version "6.0.0"
1347 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c"
1348 | integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==
1349 | dependencies:
1350 | "@types/normalize-package-data" "^2.4.0"
1351 | normalize-package-data "^3.0.2"
1352 | parse-json "^5.2.0"
1353 | type-fest "^1.0.1"
1354 |
1355 | readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@~2.3.6:
1356 | version "2.3.7"
1357 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
1358 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
1359 | dependencies:
1360 | core-util-is "~1.0.0"
1361 | inherits "~2.0.3"
1362 | isarray "~1.0.0"
1363 | process-nextick-args "~2.0.0"
1364 | safe-buffer "~5.1.1"
1365 | string_decoder "~1.1.1"
1366 | util-deprecate "~1.0.1"
1367 |
1368 | readable-stream@^3.5.0, readable-stream@^3.6.0:
1369 | version "3.6.0"
1370 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
1371 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
1372 | dependencies:
1373 | inherits "^2.0.3"
1374 | string_decoder "^1.1.1"
1375 | util-deprecate "^1.0.1"
1376 |
1377 | readable-web-to-node-stream@^3.0.2:
1378 | version "3.0.2"
1379 | resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb"
1380 | integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==
1381 | dependencies:
1382 | readable-stream "^3.6.0"
1383 |
1384 | redent@^4.0.0:
1385 | version "4.0.0"
1386 | resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9"
1387 | integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==
1388 | dependencies:
1389 | indent-string "^5.0.0"
1390 | strip-indent "^4.0.0"
1391 |
1392 | resolve@^1.1.4, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.4.0:
1393 | version "1.20.0"
1394 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
1395 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
1396 | dependencies:
1397 | is-core-module "^2.2.0"
1398 | path-parse "^1.0.6"
1399 |
1400 | ripemd160@^2.0.0, ripemd160@^2.0.1:
1401 | version "2.0.2"
1402 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
1403 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
1404 | dependencies:
1405 | hash-base "^3.0.0"
1406 | inherits "^2.0.1"
1407 |
1408 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
1409 | version "5.2.1"
1410 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1411 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1412 |
1413 | safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1414 | version "5.1.2"
1415 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1416 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1417 |
1418 | safer-buffer@^2.1.0:
1419 | version "2.1.2"
1420 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1421 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1422 |
1423 | semver@^7.3.4:
1424 | version "7.5.3"
1425 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e"
1426 | integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==
1427 | dependencies:
1428 | lru-cache "^6.0.0"
1429 |
1430 | sha.js@^2.4.0, sha.js@^2.4.8:
1431 | version "2.4.11"
1432 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
1433 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
1434 | dependencies:
1435 | inherits "^2.0.1"
1436 | safe-buffer "^5.0.1"
1437 |
1438 | shasum-object@^1.0.0:
1439 | version "1.0.0"
1440 | resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e"
1441 | integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==
1442 | dependencies:
1443 | fast-safe-stringify "^2.0.7"
1444 |
1445 | shell-quote@^1.6.1:
1446 | version "1.7.3"
1447 | resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123"
1448 | integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==
1449 |
1450 | simple-concat@^1.0.0:
1451 | version "1.0.1"
1452 | resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
1453 | integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
1454 |
1455 | source-map@~0.5.3:
1456 | version "0.5.7"
1457 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1458 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1459 |
1460 | spdx-correct@^3.0.0:
1461 | version "3.1.1"
1462 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
1463 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
1464 | dependencies:
1465 | spdx-expression-parse "^3.0.0"
1466 | spdx-license-ids "^3.0.0"
1467 |
1468 | spdx-exceptions@^2.1.0:
1469 | version "2.3.0"
1470 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
1471 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
1472 |
1473 | spdx-expression-parse@^3.0.0:
1474 | version "3.0.1"
1475 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
1476 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
1477 | dependencies:
1478 | spdx-exceptions "^2.1.0"
1479 | spdx-license-ids "^3.0.0"
1480 |
1481 | spdx-license-ids@^3.0.0:
1482 | version "3.0.9"
1483 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f"
1484 | integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==
1485 |
1486 | stream-browserify@^3.0.0:
1487 | version "3.0.0"
1488 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f"
1489 | integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==
1490 | dependencies:
1491 | inherits "~2.0.4"
1492 | readable-stream "^3.5.0"
1493 |
1494 | stream-combiner2@^1.1.1:
1495 | version "1.1.1"
1496 | resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
1497 | integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4=
1498 | dependencies:
1499 | duplexer2 "~0.1.0"
1500 | readable-stream "^2.0.2"
1501 |
1502 | stream-http@^3.0.0:
1503 | version "3.2.0"
1504 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5"
1505 | integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==
1506 | dependencies:
1507 | builtin-status-codes "^3.0.0"
1508 | inherits "^2.0.4"
1509 | readable-stream "^3.6.0"
1510 | xtend "^4.0.2"
1511 |
1512 | stream-splicer@^2.0.0:
1513 | version "2.0.1"
1514 | resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd"
1515 | integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==
1516 | dependencies:
1517 | inherits "^2.0.1"
1518 | readable-stream "^2.0.2"
1519 |
1520 | string.prototype.trimend@^1.0.4:
1521 | version "1.0.4"
1522 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
1523 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
1524 | dependencies:
1525 | call-bind "^1.0.2"
1526 | define-properties "^1.1.3"
1527 |
1528 | string.prototype.trimstart@^1.0.4:
1529 | version "1.0.4"
1530 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
1531 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
1532 | dependencies:
1533 | call-bind "^1.0.2"
1534 | define-properties "^1.1.3"
1535 |
1536 | string_decoder@^1.1.1:
1537 | version "1.3.0"
1538 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
1539 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
1540 | dependencies:
1541 | safe-buffer "~5.2.0"
1542 |
1543 | string_decoder@~1.1.1:
1544 | version "1.1.1"
1545 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
1546 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
1547 | dependencies:
1548 | safe-buffer "~5.1.0"
1549 |
1550 | strip-indent@^4.0.0:
1551 | version "4.0.0"
1552 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853"
1553 | integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==
1554 | dependencies:
1555 | min-indent "^1.0.1"
1556 |
1557 | strtok3@^7.0.0:
1558 | version "7.0.0"
1559 | resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0.tgz#868c428b4ade64a8fd8fee7364256001c1a4cbe5"
1560 | integrity sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==
1561 | dependencies:
1562 | "@tokenizer/token" "^0.3.0"
1563 | peek-readable "^5.0.0"
1564 |
1565 | subarg@^1.0.0:
1566 | version "1.0.0"
1567 | resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2"
1568 | integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI=
1569 | dependencies:
1570 | minimist "^1.1.0"
1571 |
1572 | supports-color@^5.3.0:
1573 | version "5.5.0"
1574 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1575 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1576 | dependencies:
1577 | has-flag "^3.0.0"
1578 |
1579 | syntax-error@^1.1.1:
1580 | version "1.4.0"
1581 | resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c"
1582 | integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==
1583 | dependencies:
1584 | acorn-node "^1.2.0"
1585 |
1586 | temp-dir@^2.0.0:
1587 | version "2.0.0"
1588 | resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
1589 | integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
1590 |
1591 | tempy@^3.0.0:
1592 | version "3.0.0"
1593 | resolved "https://registry.yarnpkg.com/tempy/-/tempy-3.0.0.tgz#a6c0a15f5534a820e92c3e1369f1c1e87ebd6b68"
1594 | integrity sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==
1595 | dependencies:
1596 | is-stream "^3.0.0"
1597 | temp-dir "^2.0.0"
1598 | type-fest "^2.12.2"
1599 | unique-string "^3.0.0"
1600 |
1601 | through2@^2.0.0:
1602 | version "2.0.5"
1603 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
1604 | integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
1605 | dependencies:
1606 | readable-stream "~2.3.6"
1607 | xtend "~4.0.1"
1608 |
1609 | "through@>=2.2.7 <3":
1610 | version "2.3.8"
1611 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
1612 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
1613 |
1614 | timers-browserify@^1.0.1:
1615 | version "1.4.2"
1616 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d"
1617 | integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=
1618 | dependencies:
1619 | process "~0.11.0"
1620 |
1621 | token-types@^5.0.1:
1622 | version "5.0.1"
1623 | resolved "https://registry.yarnpkg.com/token-types/-/token-types-5.0.1.tgz#aa9d9e6b23c420a675e55413b180635b86a093b4"
1624 | integrity sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==
1625 | dependencies:
1626 | "@tokenizer/token" "^0.3.0"
1627 | ieee754 "^1.2.1"
1628 |
1629 | trim-newlines@^4.0.2:
1630 | version "4.0.2"
1631 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.0.2.tgz#d6aaaf6a0df1b4b536d183879a6b939489808c7c"
1632 | integrity sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==
1633 |
1634 | tty-browserify@0.0.1:
1635 | version "0.0.1"
1636 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"
1637 | integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==
1638 |
1639 | type-fest@^1.0.1:
1640 | version "1.2.2"
1641 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.2.2.tgz#1930bc36b2064f7ab4aa307a6d1b65965199c698"
1642 | integrity sha512-pfkPYCcuV0TJoo/jlsUeWNV8rk7uMU6ocnYNvca1Vu+pyKi8Rl8Zo2scPt9O72gCsXIm+dMxOOWuA3VFDSdzWA==
1643 |
1644 | type-fest@^1.2.1, type-fest@^1.2.2:
1645 | version "1.4.0"
1646 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1"
1647 | integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
1648 |
1649 | type-fest@^2.12.2:
1650 | version "2.19.0"
1651 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
1652 | integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
1653 |
1654 | typedarray@^0.0.6:
1655 | version "0.0.6"
1656 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
1657 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
1658 |
1659 | umd@^3.0.0:
1660 | version "3.0.3"
1661 | resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf"
1662 | integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==
1663 |
1664 | unbox-primitive@^1.0.1:
1665 | version "1.0.1"
1666 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
1667 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
1668 | dependencies:
1669 | function-bind "^1.1.1"
1670 | has-bigints "^1.0.1"
1671 | has-symbols "^1.0.2"
1672 | which-boxed-primitive "^1.0.2"
1673 |
1674 | undeclared-identifiers@^1.1.2:
1675 | version "1.1.3"
1676 | resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f"
1677 | integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==
1678 | dependencies:
1679 | acorn-node "^1.3.0"
1680 | dash-ast "^1.0.0"
1681 | get-assigned-identifiers "^1.2.0"
1682 | simple-concat "^1.0.0"
1683 | xtend "^4.0.1"
1684 |
1685 | unique-string@^3.0.0:
1686 | version "3.0.0"
1687 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a"
1688 | integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==
1689 | dependencies:
1690 | crypto-random-string "^4.0.0"
1691 |
1692 | url@~0.11.0:
1693 | version "0.11.0"
1694 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
1695 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
1696 | dependencies:
1697 | punycode "1.3.2"
1698 | querystring "0.2.0"
1699 |
1700 | util-deprecate@^1.0.1, util-deprecate@~1.0.1:
1701 | version "1.0.2"
1702 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1703 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
1704 |
1705 | util@0.10.3:
1706 | version "0.10.3"
1707 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
1708 | integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
1709 | dependencies:
1710 | inherits "2.0.1"
1711 |
1712 | util@~0.12.0:
1713 | version "0.12.4"
1714 | resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253"
1715 | integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==
1716 | dependencies:
1717 | inherits "^2.0.3"
1718 | is-arguments "^1.0.4"
1719 | is-generator-function "^1.0.7"
1720 | is-typed-array "^1.1.3"
1721 | safe-buffer "^5.1.2"
1722 | which-typed-array "^1.1.2"
1723 |
1724 | validate-npm-package-license@^3.0.1:
1725 | version "3.0.4"
1726 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
1727 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
1728 | dependencies:
1729 | spdx-correct "^3.0.0"
1730 | spdx-expression-parse "^3.0.0"
1731 |
1732 | vm-browserify@^1.0.0:
1733 | version "1.1.2"
1734 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
1735 | integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
1736 |
1737 | which-boxed-primitive@^1.0.2:
1738 | version "1.0.2"
1739 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
1740 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
1741 | dependencies:
1742 | is-bigint "^1.0.1"
1743 | is-boolean-object "^1.1.0"
1744 | is-number-object "^1.0.4"
1745 | is-string "^1.0.5"
1746 | is-symbol "^1.0.3"
1747 |
1748 | which-typed-array@^1.1.2:
1749 | version "1.1.4"
1750 | resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff"
1751 | integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==
1752 | dependencies:
1753 | available-typed-arrays "^1.0.2"
1754 | call-bind "^1.0.0"
1755 | es-abstract "^1.18.0-next.1"
1756 | foreach "^2.0.5"
1757 | function-bind "^1.1.1"
1758 | has-symbols "^1.0.1"
1759 | is-typed-array "^1.1.3"
1760 |
1761 | wrappy@1:
1762 | version "1.0.2"
1763 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1764 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1765 |
1766 | xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1:
1767 | version "4.0.2"
1768 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
1769 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
1770 |
1771 | yallist@^4.0.0:
1772 | version "4.0.0"
1773 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1774 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1775 |
1776 | yargs-parser@^20.2.9:
1777 | version "20.2.9"
1778 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
1779 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
1780 |
1781 | yocto-queue@^0.1.0:
1782 | version "0.1.0"
1783 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
1784 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
1785 |
--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | preset: 'ts-jest',
3 | testEnvironment: 'node',
4 | coverageDirectory: './coverage',
5 | collectCoverage: true,
6 | collectCoverageFrom: ['src/**/*.ts'],
7 | globals: {
8 | 'ts-jest': {
9 | diagnostics: {
10 | ignoreCodes: [151001],
11 | },
12 | },
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cnbuilder",
3 | "description": "Yet another classname string builder (the fastest one)",
4 | "version": "3.1.0",
5 | "files": [
6 | "cjs",
7 | "esm",
8 | "esnext"
9 | ],
10 | "main": "cjs/index.js",
11 | "esnext": "esnext/index.js",
12 | "types": "cjs/index.d.ts",
13 | "module": "esm/index.js",
14 | "sideEffects": false,
15 | "keywords": [
16 | "classname",
17 | "class",
18 | "classlist",
19 | "builder",
20 | "attr",
21 | "attribute",
22 | "concat"
23 | ],
24 | "funding": {
25 | "type": "patreon",
26 | "url": "https://www.patreon.com/xobotyi"
27 | },
28 | "repository": {
29 | "type": "git",
30 | "url": "https://github.com/xobotyi/cnbuilder.git"
31 | },
32 | "bugs": {
33 | "url": "https://github.com/xobotyi/cnbuilder/issues"
34 | },
35 | "homepage": "https://github.com/xobotyi/cnbuilder",
36 | "author": "Anton Zinovyev",
37 | "license": "MIT",
38 | "dependencies": {},
39 | "devDependencies": {
40 | "@jamesacarr/eslint-formatter-github-actions": "^0.2.0",
41 | "@jamesacarr/jest-reporter-github-actions": "^0.0.4",
42 | "@semantic-release/changelog": "^6.0.0",
43 | "@semantic-release/git": "^10.0.0",
44 | "@semantic-release/npm": "^9.0.0",
45 | "@types/jest": "^27.0.0",
46 | "@xobotyi/eslint-config": "^2.3.0",
47 | "@xobotyi/preset-typescript": "^1.0.0",
48 | "concurrently": "^8.0.1",
49 | "eslint": "^8.5.0",
50 | "husky": "7.0.4",
51 | "jest": "^27.0.6",
52 | "lint-staged": "^13.0.0",
53 | "prettier": "^2.0.5",
54 | "rimraf": "^5.0.0",
55 | "semantic-release": "^19.0.2",
56 | "ts-jest": "^27.0.3",
57 | "ts-node": "^10.1.0",
58 | "ttypescript": "^1.5.12",
59 | "typescript": "^4.0.2"
60 | },
61 | "scripts": {
62 | "prepare": "husky install",
63 | "build": "yarn build:cleanup && concurrently yarn:build:cjs yarn:build:esm yarn:build:esnext --kill-others-on-fail",
64 | "build:cleanup": "rimraf ./cjs ./esm ./esnext ./types",
65 | "build:cjs": "ttsc -p ./tsconfig.build.json --module CommonJS --target ES5 --outDir ./cjs",
66 | "build:esm": "ttsc -p ./tsconfig.build.json --module ES6 --target ES5 --outDir ./esm",
67 | "build:esnext": "ttsc -p ./tsconfig.build.json --module ESNext --target ESNext --outDir ./esnext",
68 | "lint": "eslint ./{src,tests}/**/*.ts ./*.{ts,js}",
69 | "lint:fix": "yarn lint --fix",
70 | "test": "jest --coverage=false",
71 | "test:coverage": "jest --coverage"
72 | },
73 | "lint-staged": {
74 | "./{src,tests}/**/*.ts": [
75 | "yarn lint:fix"
76 | ],
77 | "./*.{ts,js}": [
78 | "yarn lint:fix"
79 | ]
80 | },
81 | "release": {
82 | "plugins": [
83 | "@semantic-release/commit-analyzer",
84 | "@semantic-release/release-notes-generator",
85 | "@semantic-release/changelog",
86 | "@semantic-release/npm",
87 | "@semantic-release/git",
88 | "@semantic-release/github"
89 | ]
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/src/cnb.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-cond-assign */
2 | export type ClassValue =
3 | | string
4 | | null
5 | | boolean
6 | | undefined
7 | | IClassListDictionary
8 | | ClassListArray;
9 |
10 | export type ClassListArray = ClassValue[];
11 |
12 | export interface IClassListDictionary {
13 | [cn: string]: any; // it can be anything
14 | }
15 |
16 | const { isArray } = Array;
17 |
18 | const toClassName = (val: any): string => {
19 | let str = '';
20 |
21 | if (typeof val === 'string') str += val;
22 | else if (typeof val === 'object') {
23 | let tmp;
24 |
25 | if (isArray(val)) {
26 | let i = 0;
27 | const l = val.length;
28 | while (i < l) {
29 | tmp = toClassName(val[i++]);
30 | if (tmp) {
31 | if (str) {
32 | str += ' ';
33 | }
34 | str += tmp;
35 | }
36 | }
37 | } else {
38 | // eslint-disable-next-line guard-for-in
39 | for (tmp in val) {
40 | if (tmp && val[tmp]) {
41 | if (str) {
42 | str += ' ';
43 | }
44 | str += tmp;
45 | }
46 | }
47 | }
48 | }
49 |
50 | return str;
51 | };
52 |
53 | export function cnb(...args: ClassListArray): string;
54 | export function cnb(): string {
55 | const l = arguments.length;
56 | let i = 0;
57 | let n;
58 | let tmp;
59 | let str = '';
60 |
61 | while (i < l) {
62 | n = arguments[i++];
63 | if (n) {
64 | tmp = toClassName(n);
65 | if (tmp) {
66 | if (str) {
67 | str += ' ';
68 | }
69 | str += tmp;
70 | }
71 | }
72 | }
73 |
74 | return str;
75 | }
76 |
--------------------------------------------------------------------------------
/src/dcnb.ts:
--------------------------------------------------------------------------------
1 | import type { ClassListArray, ClassValue } from './cnb';
2 |
3 | const SPACE_REGEX = /\s+/;
4 | const { create } = Object;
5 | const { isArray } = Array;
6 |
7 | /* istanbul ignore next */
8 |
9 | // eslint-disable-next-line @typescript-eslint/no-empty-function
10 | function Storage(): void {}
11 |
12 | /* istanbul ignore next */
13 | Storage.prototype = create(null);
14 |
15 | function addVal(val: ClassValue, storage: Record): void {
16 | if (!val) return;
17 |
18 | let l;
19 |
20 | if (typeof val === 'string') {
21 | val = val.split(SPACE_REGEX);
22 | l = val.length;
23 |
24 | for (let i = 0; i < l; i++) storage[val[i] as string] = true;
25 |
26 | return;
27 | }
28 |
29 | if (typeof val !== 'object') return;
30 |
31 | if (isArray(val)) {
32 | l = val.length;
33 |
34 | // eslint-disable-next-line @typescript-eslint/no-use-before-define
35 | for (let i = 0; i < l; i++) addVal(val[i], storage);
36 |
37 | return;
38 | }
39 |
40 | let i;
41 | // eslint-disable-next-line guard-for-in
42 | for (i in val) storage[i] = !!val[i];
43 | }
44 |
45 | export function dcnb(...args: ClassListArray): string;
46 | export function dcnb(): string {
47 | const storage = new Storage();
48 | let i: number | string = 0;
49 | const l = arguments.length;
50 |
51 | while (i < l) {
52 | addVal(arguments[i++], storage);
53 | }
54 |
55 | let str = '';
56 |
57 | for (i in storage) {
58 | if (storage[i] && i) {
59 | if (str) {
60 | str += ' ';
61 | }
62 | str += i;
63 | }
64 | }
65 |
66 | return str;
67 | }
68 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export { cnb, ClassValue } from './cnb';
2 | export { dcnb } from './dcnb';
3 |
--------------------------------------------------------------------------------
/tests/cnb.spec.ts:
--------------------------------------------------------------------------------
1 | import { cnb } from '../src';
2 |
3 | describe('cnb', () => {
4 | it('should be defined', () => {
5 | expect(cnb).toBeDefined();
6 | });
7 |
8 | it('should not include falsy entries', () => {
9 | expect(cnb('')).toBe('');
10 | expect(cnb([''])).toBe('');
11 | expect(cnb('a', 'b', 'c', '')).toBe('a b c');
12 | expect(cnb(['a'], ['b', 'c'], [''])).toBe('a b c');
13 | expect(cnb({ a: true }, { b: true, c: true }, { '': true })).toBe('a b c');
14 | expect(cnb({ a: true, d: false }, { b: true, c: true }, { '': true })).toBe(
15 | 'a b c'
16 | );
17 | });
18 |
19 | it('should return empty string if called w/o arguments', () => {
20 | expect(cnb()).toBe('');
21 | });
22 |
23 | it('should build from various amount of strings', () => {
24 | expect(cnb('a')).toBe('a');
25 | expect(cnb('a', 'b', 'c')).toBe('a b c');
26 | });
27 |
28 | it('should build from various amount of arrays', () => {
29 | expect(cnb([])).toBe('');
30 | expect(cnb(['a'])).toBe('a');
31 | expect(cnb(['a', 'b'], ['c'])).toBe('a b c');
32 | });
33 |
34 | it('should build from various amount of objects', () => {
35 | expect(cnb({ '': true })).toBe('');
36 | expect(cnb({ a: true })).toBe('a');
37 | // eslint-disable-next-line @typescript-eslint/no-empty-function
38 | expect(cnb({ a: true, b: true }, { c: true, d: () => {} })).toBe('a b c d');
39 | });
40 |
41 | it('should ignore invalid entries', () => {
42 | // eslint-disable-next-line @typescript-eslint/ban-ts-comment
43 | // @ts-ignore
44 | // eslint-disable-next-line @typescript-eslint/no-empty-function
45 | expect(cnb(NaN, undefined, null, 123, () => {}, [null, NaN])).toBe('');
46 | });
47 | });
48 |
--------------------------------------------------------------------------------
/tests/dcnb.spec.ts:
--------------------------------------------------------------------------------
1 | import { dcnb } from '../src';
2 |
3 | describe('dcnb', () => {
4 | it('should be defined', () => {
5 | expect(dcnb).toBeDefined();
6 | });
7 |
8 | it('should not include falsy entries', () => {
9 | expect(dcnb('')).toBe('');
10 | expect(dcnb([''])).toBe('');
11 | expect(dcnb('a', 'b', 'c', '')).toBe('a b c');
12 | expect(dcnb(['a'], ['b', 'c'], [''])).toBe('a b c');
13 | expect(dcnb({ a: true }, { b: true, c: true }, { '': true })).toBe('a b c');
14 | expect(
15 | dcnb({ a: true, d: false }, { b: true, c: true }, { '': true })
16 | ).toBe('a b c');
17 | });
18 |
19 | it('should return empty string if called w/o arguments', () => {
20 | expect(dcnb()).toBe('');
21 | });
22 |
23 | it('should build from various amount of strings', () => {
24 | expect(dcnb('a a a')).toBe('a');
25 | expect(dcnb('a b', 'b c', 'c a')).toBe('a b c');
26 | });
27 |
28 | it('should build from various amount of arrays', () => {
29 | expect(dcnb([])).toBe('');
30 | expect(dcnb(['a a a'])).toBe('a');
31 | expect(dcnb(['a', 'b a'], ['c b'])).toBe('a b c');
32 | });
33 |
34 | it('should build from various amount of objects', () => {
35 | expect(dcnb({ '': true })).toBe('');
36 | expect(dcnb({ a: true })).toBe('a');
37 | expect(
38 | dcnb(
39 | { a: true, b: true, d: true },
40 | { c: true, d: false },
41 | {
42 | // eslint-disable-next-line @typescript-eslint/no-empty-function
43 | d: () => {},
44 | }
45 | )
46 | ).toBe('a b d c');
47 | });
48 |
49 | it('should ignore invalid entries', () => {
50 | // eslint-disable-next-line @typescript-eslint/ban-ts-comment
51 | // @ts-ignore
52 | // eslint-disable-next-line @typescript-eslint/no-empty-function
53 | expect(dcnb(NaN, undefined, null, 123, () => {}, [null, NaN])).toBe('');
54 | });
55 | });
56 |
--------------------------------------------------------------------------------
/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "include": [
4 | "src/index.ts"
5 | ],
6 | "compilerOptions": {
7 | "noEmit": false,
8 | "outDir": "./cjs",
9 | "declaration": true,
10 | "target": "ES5",
11 | "module": "CommonJS",
12 | "moduleResolution": "Node",
13 | "plugins": [
14 | {
15 | "transform": "./utility/ts-transformer-js-ext.ts",
16 | "after": true
17 | }
18 | ]
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "exclude": [
4 | "./dist",
5 | "./coverage",
6 | "./node_modules"
7 | ],
8 | "include": [
9 | ".eslintrc.js",
10 | "**/*.js",
11 | "**/*.ts"
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@xobotyi/preset-typescript/tsconfig.json",
3 | "compilerOptions": {
4 | "strict": true,
5 | "alwaysStrict": true,
6 | "module": "ESNext",
7 | "moduleResolution": "Node",
8 | "target": "ESNext",
9 | "noEmit": true,
10 | "sourceMap": false
11 | },
12 | "include": [
13 | "./src/**/*.ts"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/utility/ts-transformer-js-ext.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable import/no-extraneous-dependencies, import/no-default-export */
2 | import * as ts from 'typescript';
3 | import * as path from 'path';
4 |
5 | function shouldUpdateImportDeclaration(
6 | node: ts.Node
7 | ): node is (ts.ImportDeclaration | ts.ExportDeclaration) & { moduleSpecifier: ts.StringLiteral } {
8 | if (!ts.isImportDeclaration(node) && !ts.isExportDeclaration(node)) {
9 | return false;
10 | }
11 | if (node.moduleSpecifier === undefined) {
12 | return false;
13 | }
14 | if (!ts.isStringLiteral(node.moduleSpecifier)) {
15 | return false;
16 | }
17 | if (!node.moduleSpecifier.text.startsWith('./') && !node.moduleSpecifier.text.startsWith('../')) {
18 | return false;
19 | }
20 |
21 | return path.extname(node.moduleSpecifier.text) === '';
22 | }
23 |
24 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
25 | export default function transformer(_: ts.Program): ts.TransformerFactory {
26 | return (context) => (sourceFile) => {
27 | const fac = context.factory;
28 | const visitor = (node: ts.Node): ts.VisitResult => {
29 | if (shouldUpdateImportDeclaration(node)) {
30 | if (ts.isImportDeclaration(node)) {
31 | const newModuleSpecifier = fac.createStringLiteral(`${node.moduleSpecifier.text}.js`);
32 | return fac.updateImportDeclaration(
33 | node,
34 | node.decorators,
35 | node.modifiers,
36 | node.importClause,
37 | newModuleSpecifier
38 | );
39 | }
40 | if (ts.isExportDeclaration(node)) {
41 | const newModuleSpecifier = fac.createStringLiteral(`${node.moduleSpecifier.text}.js`);
42 | return fac.updateExportDeclaration(
43 | node,
44 | node.decorators,
45 | node.modifiers,
46 | false,
47 | node.exportClause,
48 | newModuleSpecifier
49 | );
50 | }
51 | }
52 |
53 | return ts.visitEachChild(node, visitor, context);
54 | };
55 |
56 | return ts.visitNode(sourceFile, visitor);
57 | };
58 | }
59 |
--------------------------------------------------------------------------------