diff --git a/.commitlintrc b/.commitlintrc new file mode 100644 index 0000000..0df1d25 --- /dev/null +++ b/.commitlintrc @@ -0,0 +1,5 @@ +{ + "extends": [ + "@commitlint/config-conventional" + ] +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f1cc3ad --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +# http://editorconfig.org + +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..1e27205 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,6 @@ +src/components.d.ts +**/*.spec.ts +**/*.spec.tsx +**/*.e2e.ts +**/*.d.ts +stencil.config.ts diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..3ba5258 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,10 @@ +{ + "extends": ["plugin:@typescript-eslint/recommended", "prettier"], + "parserOptions": { + "project": ["./tsconfig.json"] + }, + "plugins": ["@typescript-eslint"], + "rules": { + "@typescript-eslint/no-explicit-any": "warn" + } +} diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..2f04798 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,7 @@ +# read more about codeowners file here + +# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners + +# Global owners + +- @Kajabi/dss-devs diff --git a/.github/ISSUE_TEMPLATE/accessibility.md b/.github/ISSUE_TEMPLATE/accessibility.md new file mode 100644 index 0000000..84b1d4d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/accessibility.md @@ -0,0 +1,32 @@ +--- +name: Accessibility Issue +about: Report an accessibility or usability issue +title: '[a11y] ' +labels: 'a11y' +assignees: '' + +--- + +## Environment + +- OS: +- Browser: +- Testing tool used: +- Assistive technology used to verify: + +## Detailed description + +- What did you expect to happen? +- What happened instead? +- What WCAG 2.1 success criteria does the issue violate? + +## Steps to reproduce the issue + +1. Go to '...' +2. Click on '...' +3. Scroll down to '... + +## Additional Information + +- Screenshots or code +- Notes diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..10b2636 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,42 @@ +--- +name: Bug Report 🐛 +about: Something isn't working as expected? Here is the right place to report. +title: "[BUG] " +labels: "bug" +assignees: "" +--- + +## Detailed description + +A clear and concise description of what the bug is + +## Steps to reproduce + +Describe the steps to reproduce the behavior: + +1. Go to '...' +2. Click on '...' +3. Scroll down to '... + +## Expected behavior + +A clear and concise description of what you expected to happen. + +## Actual behavior + +A clear and concise description of what actually happens. + +## Screenshots + +If applicable, provide screenshots, videos, or gifs of issue. + +## Details about device, OS, browser (including versions) + +- Device: +- OS: +- Browser: +- Version: + +## Additional context + +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..e58a70a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '[FEATURE]' +labels: 'feature' +assignees: '' + +--- + +## Is your feature request related to a problem? Please describe. +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +## Describe the solution you'd like +A clear and concise description of what you want to happen. + +## Describe alternatives you've considered +A clear and concise description of any alternative solutions or features you've considered. + +## Additional context +Add any other context or screenshots about the feature request here. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..a5317f5 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,50 @@ +# Description + +Please include a summary of the change and which issue is fixed. +Please also include relevant motivation and context. +List any new dependencies or updates that are required for this change. + +Fixes #(issue) + +## Type of change + +Please delete options that are not relevant. +If your type of change is not present, add that option. + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] This change requires a documentation update + +# How Has This Been Tested? + +Please describe the tests you've added and run to verify your changes. +Provide instructions so that we can reproduce. +Please also list any relevant details for your test configuration. + +- [ ] unit tests +- [ ] e2e tests +- [ ] accessibility tests +- [ ] tested manually +- [ ] other: + +**Test Configuration**: + +- Pine versions: +- OS: +- Browsers: +- Screen readers: +- Misc: + +# Checklist: + +If not applicable, leave options unchecked. + +- [ ] My code follows the style guidelines of this project +- [ ] I have performed a self-review of my code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] I have made corresponding changes to the documentation +- [ ] My changes generate no new warnings +- [ ] I have added tests that prove my fix is effective or that my feature works +- [ ] New and existing tests pass locally with my changes +- [ ] Design has QA'ed and approved this PR diff --git a/.github/workflows/actions/build-icons/action.yml b/.github/workflows/actions/build-icons/action.yml new file mode 100644 index 0000000..0dcfd50 --- /dev/null +++ b/.github/workflows/actions/build-icons/action.yml @@ -0,0 +1,66 @@ +name: 'Build Pine Icons' +description: 'Build Pine Icon library' + +inputs: + node-version: + description: 'The version of node to use' + required: true + +runs: + using: 'composite' + steps: + - name: Check out latest + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + + - uses: actions/setup-node@v3 + with: + node-version: ${{ inputs.node-version }} + + - name: Verify NPM Cache + shell: bash + run: npm cache verify + + - name: Get NPM cache directory + id: npm-cache-dir + shell: bash + run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} + + - name: Cache node_modules + uses: actions/cache@v3 + id: cache-node-modules + env: + cache-name: cache-node-modules + with: + path: ${{ steps.npm-cache-dir.outputs.dir }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}- + + - name: Set SHA + uses: nrwl/nx-set-shas@v3 + + - name: Install Dependencies + if: steps.cache-node-modules.ouputs.cache-hit != true + run: npm ci + shell: bash + + - name: Build Icons + run: npx nx run icons:build + shell: bash + + - name: Upload Icons Build Archive + uses: ./.github/workflows/actions/upload-archive + with: + name: icons-build + output: IconsBuild.zip + paths: dist components icons www + + - name: Upload Icons Source + uses: ./.github/workflows/actions/upload-archive + with: + name: icons-src + output: IconsSrc.zip + paths: src diff --git a/.github/workflows/actions/download-archive/action.yml b/.github/workflows/actions/download-archive/action.yml new file mode 100644 index 0000000..a458f7e --- /dev/null +++ b/.github/workflows/actions/download-archive/action.yml @@ -0,0 +1,22 @@ +name: 'Download Archive' +description: 'Downloads and unzips an archive that was uploaded' + +inputs: + path: + description: 'Input archive name' + filename: + description: 'Input the name of the file' + name: + description: 'Zip file name' + +runs: + using: 'composite' + steps: + - uses: actions/download-artifact@v3 + with: + name: ${{ inputs.name }} + path: ${{ inputs. path }} + + - name: Extract the Archive + run: unzip -q -o ${{ inputs.path }}/${{ inputs.filename }} + shel: bash diff --git a/.github/workflows/actions/publish-npm/action.yml b/.github/workflows/actions/publish-npm/action.yml new file mode 100644 index 0000000..3bab189 --- /dev/null +++ b/.github/workflows/actions/publish-npm/action.yml @@ -0,0 +1,59 @@ +name: Publish +description: Publishes a package + +inputs: + folder: + default: './' + description: 'A folder containing a package.json file.' + + preid: + default: '' + description: 'The prerelease id used when doing a prerelease.' + + project: + description: 'The name of the project based on Nx naming.' + + tag: + description: 'The tag to publish on NPM.' + + token: + description: The NPM authentication token required to publish. + + version: + description: The type of version to release. + + working-directory: + description: 'The directory of the package.' + +runs: + using: 'composite' + steps: + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: 20.x + registry-url: 'https://registry.npmjs.org' + + - name: Install Dependencies + run: npm ci --ignore-scripts + shell: bash + + - name: Update Version + run: npm version ${{ inputs.version }} --git-tag-version false --preid=${{ inputs.preid }} + shell: bash + working-directory: ${{ inputs.working-directory }} + + - name: Run Build + run: npx nx run ${{ inputs.project }}:build + shell: bash + + - name: Prepare NPM Token + run: echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} >> .npmrc + shell: bash + env: + NPM_TOKEN: ${{ inputs.token }} + + - name: Publish to NPM + run: npm publish ${{ inputs.folder }} --tag ${{ inputs.tag }} --provenance --access public + shell: bash + working-directory: ${{ inputs.working-directory }} diff --git a/.github/workflows/actions/test-lint/action.yml b/.github/workflows/actions/test-lint/action.yml new file mode 100644 index 0000000..0e7842d --- /dev/null +++ b/.github/workflows/actions/test-lint/action.yml @@ -0,0 +1,40 @@ +name: 'Test Lint' +descriptions: 'Runs lint for affected projects' + +inputs: + node-version: + description: 'The version of node to use' + required: true + +runs: + using: 'composite' + steps: + - name: Check out latest + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + + - uses: actions/setup-node@v3 + with: + node-version: ${{ inputs.node-version }} + + - name: Cache node_modules + uses: actions/cache@v3 + id: cache-node-modules + env: + cache-name: cache-node-modules + with: + path: ${{ steps.npm-cache-dir.outputs.dir }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}- + + - name: Install Dependencies + if: steps.cache-node-modules.ouputs.cache-hit != true + run: npm ci + shell: bash + + - name: Lint + run : npx nx affected --target=lint --parallel=3 + shell: bash diff --git a/.github/workflows/actions/test-spec/action.yml b/.github/workflows/actions/test-spec/action.yml new file mode 100644 index 0000000..56753e1 --- /dev/null +++ b/.github/workflows/actions/test-spec/action.yml @@ -0,0 +1,40 @@ +name: 'Test Specs' +descriptions: 'Runs specs for affected projects' + +inputs: + node-version: + description: 'The version of node to use' + required: true + +runs: + using: 'composite' + steps: + - name: Check out latest + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + + - uses: actions/setup-node@v3 + with: + node-version: ${{ inputs.node-version }} + + - name: Cache node_modules + uses: actions/cache@v3 + id: cache-node-modules + env: + cache-name: cache-node-modules + with: + path: ${{ steps.npm-cache-dir.outputs.dir }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}- + + - name: Install Dependencies + if: steps.cache-node-modules.ouputs.cache-hit != true + run: npm ci + shell: bash + + - name: Lint + run : npx nx affected --target=test --parallel=3 --ci --coverage + shell: bash diff --git a/.github/workflows/actions/upload-archive/action.yml b/.github/workflows/actions/upload-archive/action.yml new file mode 100644 index 0000000..6b2af81 --- /dev/null +++ b/.github/workflows/actions/upload-archive/action.yml @@ -0,0 +1,22 @@ +name: 'Archive Upload' +description: 'Zips and uploads an archive to be reused. Leverages Github upload-artifact' + +inputs: + paths: + description: 'Paths to files or directories to archive' + output: + description: 'The name of the output file' + name: + description: 'Zip filename' + +runs: + using: 'composite' + steps: + - name: Create Archive + run: zip -q -r ${{ inputs.output }} ${{ inputs.paths }} + shell: bash + + - uses: actions/upload-artifact@v3 + with: + name: ${{ inputs.name }} + path: ${{ inputs.output }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..713429d --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,55 @@ +name: 'Pine Framework Build' + +on: + push: + branches: [main, next] + pull_request: + branches: [ "**" ] + +# When pushing a new commit we should cancel +# the previous run +concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + +jobs: + build-icons: + runs-on: ubuntu-latest + strategy: + matrix: + node: ${{ fromJSON(vars.NODE_VERSIONS) }} + + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + - uses: ./.github/workflows/actions/build-icons + with: + node-version: ${{ matrix.node }} + + + test-lint: + needs: [build-icons] + runs-on: ubuntu-latest + strategy: + matrix: + node: ${{ fromJSON(vars.NODE_VERSIONS) }} + + steps: + - uses: actions/checkout@v3 + - uses: ./.github/workflows/actions/test-lint + with: + node-version: ${{ matrix.node }} + + test-specs: + needs: [build-icons] + runs-on: ubuntu-latest + strategy: + matrix: + node: ${{ fromJSON(vars.NODE_VERSIONS) }} + + steps: + - uses: actions/checkout@v3 + - uses: ./.github/workflows/actions/test-spec + with: + node-version: ${{ matrix.node }} diff --git a/.github/workflows/icon-export.yml b/.github/workflows/icon-export.yml new file mode 100644 index 0000000..5498a04 --- /dev/null +++ b/.github/workflows/icon-export.yml @@ -0,0 +1,116 @@ +name: 'Run Icon Update' + +on: + workflow_call: + inputs: + preid: + description: 'The prerelease id used when doing a prerelease.' + type: string + default: '' + + tag: + description: 'The tag to publish to NPM' + type: string + default: latest + + version: + description: The type of version to release. + type: string + + secrets: + FIGMA_ACCESS_TOKEN: + description: "The personal access token created in Figma" + required: true + + FIGMA_FILE_ID: + description: "The file id for the Figma file" + required: true + +jobs: + update-icons: + runs-on: ubuntu-latest + permissions: + contents: write + id-token: write + outputs: + versionInfo: ${{ steps.version-type-info.outputs.VERSION_INFO }} + nextVersionType: ${{ steps.split-version-info.outputs._0 }} + preid: ${{ steps.split-version-info.outputs._1 }} + latestSha: ${{ steps.latest-sha.outputs.LATEST_SHA}} + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 20.x + + - name: Configure user + run: | + git config user.name "Kajabi Automation Bot" + git config user.email "dev+github-bot@kajabi.com" + + - name: Get npm cache directory + id: npm-cache-dir + shell: bash + run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} + + - name: Cache node_modules + uses: actions/cache@v3 + id: cache-node-modules + env: + cache-name: cache-node-modules + with: + path: ${{ steps.npm-cache-dir.outputs.dir }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}- + + - name: Install Dependencies + run: npm ci + shell: bash + + - name: Running Icon Export + run: npx nx run ideal-octo-sniffle:update + env: + FIGMA_ACCESS_TOKEN: ${{ secrets.FIGMA_ACCESS_TOKEN }} + FIGMA_FILE_ID: ${{ secrets.FIGMA_FILE_ID }} + + - name: Determine next version type + id: version-type-info + run: | + echo "VERSION_INFO=$(node ./.scripts/update-icon-version.js '${{ inputs.version }}' '${{ inputs.preid }}')" >> $GITHUB_OUTPUT + shell: bash + + - name: Push Icon changes and Tags + if: ${{ success() }} + run: git push --follow-tags + shell: bash + + - name: Output latest SHA + id: latest-sha + run: echo "LATEST_SHA=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + + - name: Split version info + uses: xom9ikk/split@v1.1 + id: split-version-info + with: + string: ${{ steps.version-type-info.outputs.VERSION_INFO }} + separator: ',' + limit: 2 + + release: + needs: update-icons + uses: ./.github/workflows/release-icons.yml + if: ${{ needs.update-icons.outputs.nextVersionType != '' }} + with: + preid: ${{ needs.update-icons.outputs.preid }} + ref: 'main' + tag: ${{ inputs.tag }} + version: ${{ needs.update-icons.outputs.nextVersionType }} + secrets: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 0000000..7030e4e --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,48 @@ +name: "Pine Nightly Automations" + +on: + schedule: + - cron: '00 11 * * 1-5' # 11 am UTC Mon-Fri + + workflow_dispatch: + inputs: + preid: + type: choice + description: Which prerelease id should be used? This is only needed when a version is "prepatch", "preminor", "premajor", or "prerelease". + options: + - '' + - alpha + - beta + - rc + - next + + tag: + type: choice + required: true + description: Which npm tag should this be published to + options: + - latest + - next + - dev + + version: + type: choice + description: Which version should be published? + options: + - '' + - patch + - minor + - major + - prepatch + - preminor + - premajor + - prerelease + +jobs: + export-icons: + uses: ./.github/workflows/icon-export.yml + with: + preid: ${{ inputs.preid || '' }} + tag: ${{ inputs.tag || 'nightly' }} + version: ${{inputs.version || '' }} + secrets: inherit diff --git a/.github/workflows/release-icons.yml b/.github/workflows/release-icons.yml new file mode 100644 index 0000000..79ef6fc --- /dev/null +++ b/.github/workflows/release-icons.yml @@ -0,0 +1,63 @@ +name: 'Release Icons' + +on: + workflow_call: + inputs: + preid: + description: 'The prerelease id used when doing a prerelease. e.g prerelease, premajor, preminor, etc.' + type: string + default: '' + + ref: + description: 'This could be the SHA generated from update-icon-version in Icon Export job or the Branch name.' + type: string + default: '' + + tag: + description: 'The tag to publish on NPM.' + required: true + type: string + + version: + description: 'The type of version to release.' + required: true + type: string + + secrets: + NPM_TOKEN: + required: true + +jobs: + release-icons: + runs-on: ubuntu-latest + permissions: + contents: write + id-token: write + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ inputs.ref }} + + - name: Configure user + run: | + git config user.name "Kajabi Automation Bot" + git config user.email "dev+github-bot@kajabi.com" + + - name: Publish Icons + uses: ./.github/workflows/actions/publish-npm + with: + preid: ${{ inputs.preid }} + project: 'ideal-octo-sniffle' + tag: ${{ inputs.tag }} + token: ${{ secrets.NPM_TOKEN }} + version: ${{ inputs.version }} + working-directory: './' + + - name: Commmit version bump + run: | + git add package.json package-lock.json + git commit -m "chore: update package lock files for version bump" + git push --follow-tags + shell: bash diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..92ed666 --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +dist/ +www/ +loader/ +/components/ +icons/ +scripts/**/*.js + +*~ +*.sw[mnpcod] +*.log +*.lock +*.tmp +*.tmp.* +log.txt +*.sublime-project +*.sublime-workspace + +.stencil/ +.idea/ +.vscode/ +.sass-cache/ +.versions/ +node_modules/ +$RECYCLE.BIN/ + +.DS_Store +Thumbs.db +UserInterfaceState.xcuserstate +.env + + diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 0000000..e998e31 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx --no -- commitlint --edit "${1}" diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..2718a1d --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx lint-staged --relative diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100755 index 0000000..0c71b94 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx validate-branch-name diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..209e3ef --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..b96c8cb --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,12 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "jsxSingleQuote": false, + "printWidth": 180, + "quoteProps": "consistent", + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "all", + "useTabs": false +} diff --git a/.scripts/prepare.js b/.scripts/prepare.js new file mode 100644 index 0000000..2ab7017 --- /dev/null +++ b/.scripts/prepare.js @@ -0,0 +1,4 @@ +const isCi = process.env.CI !== undefined +if (!isCi) { + require('husky').install; +} diff --git a/.scripts/update-icon-version.js b/.scripts/update-icon-version.js new file mode 100644 index 0000000..04fcc39 --- /dev/null +++ b/.scripts/update-icon-version.js @@ -0,0 +1,138 @@ +const simpleGit = require('simple-git'); +const path = require('path'); +const { execSync } = require('node:child_process') +const fs = require('fs-extra'); + +const baseIconsPath = path.join(process.cwd()) +const srcIconsBasePath = path.join(baseIconsPath, 'src'); +const srcSvgBasePath = path.join(srcIconsBasePath, 'svg'); +const changelogsPath = path.join(baseIconsPath, 'changelogs'); + +/** + * Creates an instance of the SimpleGit object + * @param options - list of SimpleGitOptions + * @returns SimpleGit client + */ +const gitClient = (options={baseDir: srcSvgBasePath, binary: 'git'} ) => { + return simpleGit(options); +} + +/** + * + * @param {*} nextVersionType - The type of version that will be performed + * @param {*} preid - The prereleaese identifier if type is `pre*` + */ +const run = async (nextVersionType = null, preid='') => { + let git = gitClient(); + + await git.add(srcSvgBasePath); + const statusResults = await git.status([srcSvgBasePath]); + + const { created, deleted, modified, renamed } = statusResults; + + if ( nextVersionType === null ) { + if ( deleted.length > 0 || renamed.length > 0) { + nextVersionType = 'major'; + } else if (modified.length > 0 || created.length > 0 ) { + nextVersionType = 'minor'; + } + } + + try { + if (nextVersionType === null) { + console.error('Version has not been set please check raw logs to resolve issue'); + process.exit(); + } + + git = git.cwd(process.cwd()) + + await git.stash(['save', '--include-untracked']); + const iconPkgVersion = await getNextVersion(nextVersionType, preid); + await git.stash(['pop']); + + if (iconPkgVersion == null) + throw Error('Icon package version could not be determined') + + await updateChangelogFile(iconPkgVersion) + await git.add([ + srcSvgBasePath, // svgs + changelogsPath, // Changelogs + path.join(srcIconsBasePath, 'index.html'), // updated homepage with new changelog file + path.join(srcIconsBasePath, 'icon-data.json'), // icon data + ]) + + const msg = `created: ${created.length}, modified: ${modified.length}, renamed: ${renamed.length}, deleted: ${deleted.length}` + await git.commit(`ci(icons): v${iconPkgVersion}, ${msg}`) + await git.tag([`@pine-ds/icons@${iconPkgVersion}`, '-a', '-m', msg]); + + const output = [nextVersionType]; + if (preid != '' ) + output.push(preid) + + console.log(output.join(',')); + } + catch (e) { + console.error(`Error occurred: ${e}`); + process.exit(); + // await git.stash(['drop']); // Delete the stash created in the Run process; + } +} + +/** + * + * Will get the next version based on the type of + * version. + * @param nextVersionType - The type of version to run e.g major, minor + * @returns string - the next version that the package will be + */ +const getNextVersion = async (nextVersionType, preid) => { + let command = `npm version ${nextVersionType} --no-git-tag-version` + + if (nextVersionType.startsWith('pre')) { + command = command.concat(` --preid ${preid}`); + } + + try { + const _npmVersionProcess = execSync(command) + const packageJSON = path.join(process.cwd(), 'package.json') + const version = require(packageJSON).version; + + return version; + + } + catch (err) { + throw Error(`An Error occurred during Versioning: ${err.stderr.toString()}`); + } +} + +/** + * Adds the version number to the created Changelog + * + * @param iconPkgVersion - The version number that will be added to the Changelog header + */ +const updateChangelogFile = async (iconPkgVersion) => { + const date = new Date(); + const strDate = [date.getFullYear().toString(), (date.getMonth() + 1).toString().padStart(2,'0'), date.getDate().toString().padStart(2,'0')].join('-'); + + const changelogFilename = `${strDate}-changelog.html` + const fullChangelogFilename = path.join(changelogsPath, changelogFilename) + + const html = fs.readFileSync(fullChangelogFilename, 'utf8') + .replace(/{{version}}/g, `v${iconPkgVersion}`) + + // Write file to changelogs directory + fs.writeFileSync(fullChangelogFilename, html); +} + +let [,,versionType, preVersionId] = process.argv; + +if ((versionType?.startsWith('pre')) && (preVersionId === '' )) { + throw Error('When using a pre version type, you must include a preVersionId e.g alpha, beta, rc, etc') +} + +if (versionType !== '') { + run(versionType, preVersionId); +} +else { + run(); +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b442934 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/catalog-info.yaml b/catalog-info.yaml new file mode 100644 index 0000000..cf8e076 --- /dev/null +++ b/catalog-info.yaml @@ -0,0 +1,14 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: pine-icons + description: The icons library for the Pine design system + tags: + - javascript + - typescript +spec: + type: library + lifecycle: production + owner: design-system-services + system: pine + subcomponentOf: pine diff --git a/changelogs/.gitkeep b/changelogs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/changelogs/2023-10-03-changelog.html b/changelogs/2023-10-03-changelog.html new file mode 100644 index 0000000..29ab6d8 --- /dev/null +++ b/changelogs/2023-10-03-changelog.html @@ -0,0 +1,1397 @@ + + + + + 2023-10-03 - v1.0.0 Changelog + + + +

2023-10-03 - {{version}} Changelog

+ +Files: Modifed 0, Renamed 0, Deleted 0, Created 260 + + +

Info

+

Added icons are new icons that have been introduced in this version. You won't see these icons listed in the "before" column because they did not exist in the previous version.

+ +

Modified icons have undergone some changes since the previous version, which could be a visual change or a change to the code behind the icon. If an icon has undergone a visible change, +you will see the difference between the "before" and "after" columns. However, if the change was only to the code, you may not notice any difference in the icon's appearance, but it will +still be listed in the “modified” category

+ +

Deleted icons were present in the previous version but have been removed in this version. You will not see these icons listed in the "after" column because they are no longer available +in the current version.

+ +

Renamed icons were present in the previous version but have been renamed in this version. You will see a "Previous" and a "New" filename column. You will not see any visual change +in the "before" or "after" column.

+ +

Added

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileNameBeforeAfter
access-key.svg
add-circle.svg
add-image.svg
add-small.svg
add.svg
ai-sparkle.svg
ai-writer-filled.svg
ai-writer.svg
align-center.svg
align-justify.svg
align-left.svg
align-right.svg
analytics-filled.svg
analytics-outline.svg
app-store.svg
archive.svg
arrow-corner.svg
arrow-down.svg
arrow-left.svg
arrow-right.svg
arrow-up.svg
assessment.svg
at-sign.svg
attach.svg
automations.svg
ban.svg
bank.svg
bell.svg
blog.svg
bold.svg
broadcast.svg
calendar-date.svg
calendar-schedule.svg
calendar-simple.svg
card-bw-amex.svg
card-bw-apple-card.svg
card-bw-diners-club.svg
card-bw-discover.svg
card-bw-gpay-card.svg
card-bw-mastercard.svg
card-bw-paypal.svg
card-bw-stripe.svg
card-bw-visa.svg
card-update.svg
caret-down.svg
caret-left.svg
caret-right.svg
caret-up.svg
cart-add.svg
cart.svg
certificate.svg
check-circle-filled.svg
check-circle.svg
check.svg
circle-1.svg
circle-2.svg
circle-3.svg
circle-4.svg
circle-5.svg
circle-6.svg
circle-7.svg
circle-8.svg
circle-9.svg
clock.svg
closed-captions.svg
code.svg
color.svg
columns.svg
comment.svg
connect.svg
contact.svg
contacts-filled.svg
contacts-outline.svg
conversation.svg
copy.svg
coupon.svg
course.svg
creator-studio-filled.svg
creator-studio.svg
credit-card.svg
custom-field.svg
customize.svg
danger-filled.svg
danger.svg
dashboard-filled.svg
dashboard-outline.svg
delete-circle.svg
delete-key.svg
delete-x.svg
dollar-sign.svg
dot-menu-horizontal.svg
down-small.svg
download.svg
downsell.svg
draft.svg
drop.svg
duplicate.svg
email-activity.svg
emoji.svg
enlarge-vertical.svg
enlarge.svg
expand.svg
facebook-2.svg
facebook.svg
favorite.svg
feedback.svg
file-money.svg
file.svg
filter.svg
flag.svg
folder-group.svg
folder.svg
form-field.svg
form.svg
fullscreen.svg
funnel.svg
grant-offer.svg
handle-2-vertical.svg
handle-2.svg
handle.svg
hashtag.svg
heading-large.svg
heading-small.svg
headset.svg
help-filled.svg
help-outline.svg
home-alt.svg
horizontal-line.svg
image.svg
info-circle-filled.svg
info-circle.svg
instagram.svg
ios-battery.svg
ios-data.svg
ios-wifi.svg
italic.svg
kajabi-filled.svg
kajabi-outlined.svg
lab.svg
launch.svg
layout-grid.svg
layout-list.svg
left-small.svg
linkedin.svg
list-bullet.svg
list-numbers.svg
location.svg
lock-alt.svg
lock.svg
logo-afterpay.svg
loop.svg
mail.svg
mapped.svg
margin-left.svg
margin-right.svg
marker-filled.svg
marker.svg
marketing-filled.svg
marketing-outline.svg
menu-2.svg
menu-alt.svg
menu.svg
merge.svg
microphone-off.svg
microphone.svg
move-left.svg
move-right.svg
multi-pay.svg
newsletter.svg
one-off-session.svg
one-time.svg
partners-filled.svg
partners-outline.svg
pause-circle.svg
pause.svg
payout.svg
pen.svg
phone-portrait.svg
phone-toolbar.svg
play-circle.svg
play-outline.svg
play-store.svg
play.svg
plug.svg
present.svg
preview-off.svg
preview-on.svg
products-filled.svg
products-outline.svg
question-circle.svg
quote.svg
redo.svg
refresh.svg
remove-circle.svg
remove.svg
rename.svg
reset-password.svg
restore.svg
right-small.svg
round-dollar.svg
rows.svg
sales-filled.svg
sales-outline.svg
scissor.svg
screen-share-off.svg
screen-share-on.svg
search-small.svg
search.svg
send-message.svg
sequences.svg
series.svg
settings-filled.svg
settings-outline.svg
share.svg
skipped.svg
slash-divider.svg
sparkle-filled.svg
sparkle.svg
speaker.svg
stack.svg
star.svg
stop.svg
stopwatch.svg
strikethrough.svg
subscript.svg
subscriptions.svg
super-admin.svg
superscript.svg
sync.svg
tablet-landscape.svg
tablet-portrait.svg
text-styles.svg
theme-store.svg
thumbs-down-filled.svg
thumbs-down.svg
thumbs-up-filled.svg
thumbs-up.svg
tiktok.svg
trash.svg
twitter.svg
underline.svg
undo.svg
unlock.svg
unmapped.svg
up-small.svg
upload.svg
url.svg
user-filled.svg
user.svg
users-wm.svg
users.svg
video-off.svg
video-on.svg
warning-filled.svg
warning.svg
website-filled.svg
website-outline.svg
window-paragraph.svg
world.svg
youtube.svg
+ + + + + + diff --git a/figma-icon-config.json b/figma-icon-config.json new file mode 100644 index 0000000..9f64baa --- /dev/null +++ b/figma-icon-config.json @@ -0,0 +1,4 @@ +{ + "pageName": "Icons", + "downloadPath": "tmp/svg" +} diff --git a/lerna.json b/lerna.json new file mode 100644 index 0000000..2696e97 --- /dev/null +++ b/lerna.json @@ -0,0 +1,5 @@ +{ + "$schema": "node_modules/lerna/schemas/lerna-schema.json", + "useNx": true, + "version": "0.0.0" +} diff --git a/nx.json b/nx.json new file mode 100644 index 0000000..d070354 --- /dev/null +++ b/nx.json @@ -0,0 +1,41 @@ +{ + "affected": { + "defaultBase": "origin/main" + }, + "npmScope": "pine-ds", + "tasksRunnerOptions": { + "default": { + "runner": "nx/tasks-runners/default", + "options": { + "cacheableOperations": [ + "build", + "e2e", + "lint", + "test" + ] + } + } + }, + "targetDefaults": { + "build": { + "dependsOn": [ + "^build" + ], + "outputs": [ + "{projectRoot}/dist", + "{projectRoot}/loader", + "{projectRoot}/www" + ] + }, + "start": { + "dependsOn": [ + "build" + ] + }, + "test": { + "dependsOn": [ + "build" + ] + } + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..efbd40f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,13891 @@ +{ + "name": "@pine-ds/icons", + "version": "2.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@pine-ds/icons", + "version": "2.0.1", + "license": "MIT", + "workspaces": [ + "./" + ], + "dependencies": { + "@stencil/core": "^4.0.2" + }, + "devDependencies": { + "@commitlint/cli": "^17.7.2", + "@commitlint/config-conventional": "^17.7.0", + "@stencil/sass": "^2.0.0", + "@types/fs-extra": "^9.0.13", + "@types/jest": "^27.0.3", + "@types/mkdirp": "^1.0.2", + "@types/svgo": "^2.6.4", + "@typescript-eslint/eslint-plugin": "^6.7.4", + "@typescript-eslint/parser": "^6.7.4", + "axios": "^1.1.3", + "chalk": "^4.1.2", + "cliui": "^8.0.1", + "commitizen": "^4.3.0", + "eslint": "^8.27.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-storybook": "^0.6.14", + "fs-extra": "^10.1.0", + "husky": "^8.0.3", + "jest": "^27.4.5", + "jest-cli": "^27.4.5", + "lerna": "^7.3.0", + "lint-staged": "^14.0.1", + "mkdirp": "^1.0.4", + "npm-run-all": "^4.1.5", + "nx": "16.10.0", + "prettier": "^2.7.1", + "puppeteer": "^10.0.0", + "run-func": "^3.0.0", + "simple-git": "^3.16.0", + "svgo": "^3.0.0", + "typescript": "^5.1.6", + "validate-branch-name": "^1.3.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.20", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.0", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/cli": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/format": "^17.4.4", + "@commitlint/lint": "^17.7.0", + "@commitlint/load": "^17.7.2", + "@commitlint/read": "^17.5.1", + "@commitlint/types": "^17.4.4", + "execa": "^5.0.0", + "lodash.isfunction": "^3.0.9", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/cli/node_modules/yargs": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "17.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-conventionalcommits": "^6.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "17.6.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/config-validator/node_modules/ajv": { + "version": "8.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/ensure": { + "version": "17.6.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.4.4", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/format": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.4.4", + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/is-ignored": { + "version": "17.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.4.4", + "semver": "7.5.4" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/lint": { + "version": "17.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/is-ignored": "^17.7.0", + "@commitlint/parse": "^17.7.0", + "@commitlint/rules": "^17.7.0", + "@commitlint/types": "^17.4.4" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^17.6.7", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.6.7", + "@commitlint/types": "^17.4.4", + "@types/node": "20.5.1", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load/node_modules/@types/node": { + "version": "20.5.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=4" + } + }, + "node_modules/@commitlint/load/node_modules/ts-node": { + "version": "10.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/@commitlint/message": { + "version": "17.4.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/parse": { + "version": "17.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.4.4", + "conventional-changelog-angular": "^6.0.0", + "conventional-commits-parser": "^4.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/read": { + "version": "17.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/top-level": "^17.4.0", + "@commitlint/types": "^17.4.4", + "fs-extra": "^11.0.0", + "git-raw-commits": "^2.0.11", + "minimist": "^1.2.6" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/read/node_modules/fs-extra": { + "version": "11.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@commitlint/read/node_modules/git-raw-commits": { + "version": "2.0.11", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@commitlint/read/node_modules/through2": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "17.6.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^17.6.7", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/rules": { + "version": "17.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/ensure": "^17.6.7", + "@commitlint/message": "^17.4.2", + "@commitlint/to-lines": "^17.4.0", + "@commitlint/types": "^17.4.4", + "execa": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "17.4.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/top-level": { + "version": "17.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/types": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.9.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.50.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@lerna/child-process": { + "version": "7.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "execa": "^5.0.0", + "strong-log-transformer": "^2.1.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + } + }, + "node_modules/@lerna/create": { + "version": "7.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "7.3.0", + "@npmcli/run-script": "6.0.2", + "@nx/devkit": ">=16.5.1 < 17", + "@octokit/plugin-enterprise-rest": "6.0.1", + "@octokit/rest": "19.0.11", + "byte-size": "8.1.1", + "chalk": "4.1.0", + "clone-deep": "4.0.1", + "cmd-shim": "6.0.1", + "columnify": "1.6.0", + "conventional-changelog-core": "5.0.1", + "conventional-recommended-bump": "7.0.1", + "cosmiconfig": "^8.2.0", + "dedent": "0.7.0", + "execa": "5.0.0", + "fs-extra": "^11.1.1", + "get-stream": "6.0.0", + "git-url-parse": "13.1.0", + "glob-parent": "5.1.2", + "globby": "11.1.0", + "graceful-fs": "4.2.11", + "has-unicode": "2.0.1", + "ini": "^1.3.8", + "init-package-json": "5.0.0", + "inquirer": "^8.2.4", + "is-ci": "3.0.1", + "is-stream": "2.0.0", + "js-yaml": "4.1.0", + "libnpmpublish": "7.3.0", + "load-json-file": "6.2.0", + "lodash": "^4.17.21", + "make-dir": "4.0.0", + "minimatch": "3.0.5", + "multimatch": "5.0.0", + "node-fetch": "2.6.7", + "npm-package-arg": "8.1.1", + "npm-packlist": "5.1.1", + "npm-registry-fetch": "^14.0.5", + "npmlog": "^6.0.2", + "nx": ">=16.5.1 < 17", + "p-map": "4.0.0", + "p-map-series": "2.1.0", + "p-queue": "6.6.2", + "p-reduce": "^2.1.0", + "pacote": "^15.2.0", + "pify": "5.0.0", + "read-cmd-shim": "4.0.0", + "read-package-json": "6.0.4", + "resolve-from": "5.0.0", + "rimraf": "^4.4.1", + "semver": "^7.3.4", + "signal-exit": "3.0.7", + "slash": "^3.0.0", + "ssri": "^9.0.1", + "strong-log-transformer": "2.1.0", + "tar": "6.1.11", + "temp-dir": "1.0.0", + "upath": "2.0.1", + "uuid": "^9.0.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "5.0.0", + "write-file-atomic": "5.0.1", + "write-pkg": "4.0.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + } + }, + "node_modules/@lerna/create/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@lerna/create/node_modules/builtins": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@lerna/create/node_modules/chalk": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@lerna/create/node_modules/execa": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@lerna/create/node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@lerna/create/node_modules/execa/node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@lerna/create/node_modules/fs-extra": { + "version": "11.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@lerna/create/node_modules/get-stream": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@lerna/create/node_modules/hosted-git-info": { + "version": "3.0.8", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@lerna/create/node_modules/minimatch": { + "version": "3.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@lerna/create/node_modules/npm-package-arg": { + "version": "8.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^3.0.6", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@lerna/create/node_modules/npm-package-arg/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/@lerna/create/node_modules/pify": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@lerna/create/node_modules/rimraf": { + "version": "4.4.1", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@lerna/create/node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@lerna/create/node_modules/rimraf/node_modules/glob": { + "version": "9.3.5", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@lerna/create/node_modules/rimraf/node_modules/minimatch": { + "version": "8.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@lerna/create/node_modules/rimraf/node_modules/minipass": { + "version": "4.2.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/@lerna/create/node_modules/ssri": { + "version": "9.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@lerna/create/node_modules/tar": { + "version": "6.1.11", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@lerna/create/node_modules/yargs-parser": { + "version": "20.2.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^6.0.0", + "lru-cache": "^7.4.4", + "npm-pick-manifest": "^8.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents/node_modules/npm-bundled": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^6.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@nrwl/devkit": { + "version": "16.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/devkit": "16.10.0" + } + }, + "node_modules/@nrwl/tao": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-16.10.0.tgz", + "integrity": "sha512-QNAanpINbr+Pod6e1xNgFbzK1x5wmZl+jMocgiEFXZ67KHvmbD6MAQQr0MMz+GPhIu7EE4QCTLTyCEMlAG+K5Q==", + "dev": true, + "dependencies": { + "nx": "16.10.0", + "tslib": "^2.3.0" + }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nx/devkit": { + "version": "16.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@nrwl/devkit": "16.10.0", + "ejs": "^3.1.7", + "enquirer": "~2.3.6", + "ignore": "^5.0.4", + "semver": "7.5.3", + "tmp": "~0.2.1", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "nx": ">= 15 <= 17" + } + }, + "node_modules/@nx/devkit/node_modules/semver": { + "version": "7.5.3", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nx/nx-darwin-arm64": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.10.0.tgz", + "integrity": "sha512-YF+MIpeuwFkyvM5OwgY/rTNRpgVAI/YiR0yTYCZR+X3AAvP775IVlusNgQ3oedTBRUzyRnI4Tknj1WniENFsvQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-darwin-x64": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-16.10.0.tgz", + "integrity": "sha512-ypi6YxwXgb0kg2ixKXE3pwf5myVNUgWf1CsV5OzVccCM8NzheMO51KDXTDmEpXdzUsfT0AkO1sk5GZeCjhVONg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-freebsd-x64": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.10.0.tgz", + "integrity": "sha512-UeEYFDmdbbDkTQamqvtU8ibgu5jQLgFF1ruNb/U4Ywvwutw2d4ruOMl2e0u9hiNja9NFFAnDbvzrDcMo7jYqYw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.10.0.tgz", + "integrity": "sha512-WV3XUC2DB6/+bz1sx+d1Ai9q2Cdr+kTZRN50SOkfmZUQyEBaF6DRYpx/a4ahhxH3ktpNfyY8Maa9OEYxGCBkQA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.10.0.tgz", + "integrity": "sha512-aWIkOUw995V3ItfpAi5FuxQ+1e9EWLS1cjWM1jmeuo+5WtaKToJn5itgQOkvSlPz+HSLgM3VfXMvOFALNk125g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.10.0.tgz", + "integrity": "sha512-uO6Gg+irqpVcCKMcEPIQcTFZ+tDI02AZkqkP7koQAjniLEappd8DnUBSQdcn53T086pHpdc264X/ZEpXFfrKWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.10.0.tgz", + "integrity": "sha512-134PW/u/arNFAQKpqMJniC7irbChMPz+W+qtyKPAUXE0XFKPa7c1GtlI/wK2dvP9qJDZ6bKf0KtA0U/m2HMUOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-musl": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.10.0.tgz", + "integrity": "sha512-q8sINYLdIJxK/iUx9vRk5jWAWb/2O0PAbOJFwv4qkxBv4rLoN7y+otgCZ5v0xfx/zztFgk/oNY4lg5xYjIso2Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.10.0.tgz", + "integrity": "sha512-moJkL9kcqxUdJSRpG7dET3UeLIciwrfP08mzBQ12ewo8K8FzxU8ZUsTIVVdNrwt01CXOdXoweGfdQLjJ4qTURA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.10.0.tgz", + "integrity": "sha512-5iV2NKZnzxJwZZ4DM5JVbRG/nkhAbzEskKaLBB82PmYGKzaDHuMHP1lcPoD/rtYMlowZgNA/RQndfKvPBPwmXA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@octokit/auth-token": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/core": { + "version": "4.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/endpoint": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/graphql": { + "version": "5.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "18.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-enterprise-rest": { + "version": "6.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "6.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=4" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "7.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^10.0.0" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "10.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "6.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/request-error": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/request/node_modules/node-fetch": { + "version": "2.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@octokit/rest": { + "version": "19.0.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/core": "^4.2.1", + "@octokit/plugin-paginate-rest": "^6.1.2", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^7.1.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/tsconfig": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/types": { + "version": "9.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.0.4", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pine-ds/icons": { + "resolved": "", + "link": true + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@sigstore/bundle": { + "version": "1.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "1.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^1.1.0", + "@sigstore/protobuf-specs": "^0.2.0", + "make-fetch-happen": "^11.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "1.0.3", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.0", + "tuf-js": "^1.1.7" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@stencil/core": { + "version": "4.4.0", + "license": "MIT", + "bin": { + "stencil": "bin/stencil" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.10.0" + } + }, + "node_modules/@stencil/sass": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@stencil/core": ">=2.0.0 || >=3.0.0-beta.0" + } + }, + "node_modules/@storybook/csf": { + "version": "0.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@tufjs/canonical-json": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.5.2", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.13", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mkdirp": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.8.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/svgo": { + "version": "2.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/type-utils": "6.7.4", + "@typescript-eslint/utils": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.7.4", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "6.7.4", + "@typescript-eslint/utils": "6.7.4", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.7.4", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.7.4", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/@yarnpkg/parsers": { + "version": "3.0.0-rc.46", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.15.0" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@zkochan/js-yaml": { + "version": "0.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.10.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals/node_modules/acorn-walk": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-ify": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-add-module-exports": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bl": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/browserslist": { + "version": "4.22.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/builtins": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/byte-size": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/cacache": { + "version": "17.1.4", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/fs-minipass": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/minipass": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/map-obj": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001546", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cmd-shim": { + "version": "6.0.1", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/color-support": { + "version": "1.1.3", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "dev": true, + "license": "MIT" + }, + "node_modules/columnify": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "11.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/commitizen": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/commitizen/node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/commitizen/node_modules/inquirer": { + "version": "8.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/commitizen/node_modules/minimist": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-changelog-angular": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "6.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-core": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^6.0.0", + "conventional-commits-parser": "^4.0.0", + "dateformat": "^3.0.3", + "get-pkg-repo": "^4.2.1", + "git-raw-commits": "^3.0.0", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^5.0.0", + "normalize-package-data": "^3.0.3", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-core/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^3.0.0", + "dateformat": "^3.0.3", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "meow": "^8.1.2", + "semver": "^7.0.0", + "split": "^1.0.1" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-commit-types": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-commits-filter": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-commits-parser": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-recommended-bump": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^3.0.0", + "conventional-commits-filter": "^3.0.0", + "conventional-commits-parser": "^4.0.0", + "git-raw-commits": "^3.0.0", + "git-semver-tags": "^5.0.0", + "meow": "^8.1.2" + }, + "bin": { + "conventional-recommended-bump": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssom": { + "version": "0.4.4", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/current-git-branch": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-add-module-exports": "^0.2.1", + "execa": "^0.6.1", + "is-git-repository": "^1.0.0" + } + }, + "node_modules/current-git-branch/node_modules/cross-spawn": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/current-git-branch/node_modules/execa": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/current-git-branch/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/current-git-branch/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/current-git-branch/node_modules/lru-cache": { + "version": "4.1.5", + "dev": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/current-git-branch/node_modules/npm-run-path": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/current-git-branch/node_modules/yallist": { + "version": "2.1.2", + "dev": true, + "license": "ISC" + }, + "node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/cz-conventional-changelog/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-urls/node_modules/tr46": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "8.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "dev": true, + "license": "MIT" + }, + "node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/deprecation": { + "version": "2.3.1", + "dev": true, + "license": "ISC" + }, + "node_modules/detect-file": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.901419", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "5.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/dotenv-expand": { + "version": "10.0.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.9", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.543", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "dev": true, + "license": "MIT", + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "8.50.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.0.0", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-storybook": { + "version": "0.6.14", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf": "^0.0.1", + "@typescript-eslint/utils": "^5.45.0", + "requireindex": "^1.1.0", + "ts-dedent": "^2.2.0" + }, + "engines": { + "node": "12.x || 14.x || >= 16" + }, + "peerDependencies": { + "eslint": ">=6" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/execa": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-node-modules": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/findup-sync": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/git-raw-commits": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "meow": "^8.1.2", + "split2": "^3.2.2" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/git-semver-tags": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^8.1.2", + "semver": "^7.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/git-up": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-ssh": "^1.4.0", + "parse-url": "^8.1.0" + } + }, + "node_modules/git-url-parse": { + "version": "13.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "git-up": "^7.0.0" + } + }, + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "dev": true, + "license": "BSD", + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globals": { + "version": "13.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/humanize-ms/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/husky": { + "version": "8.0.3", + "dev": true, + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "5.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^5.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "5.1.6", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/init-package-json": { + "version": "5.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^10.0.0", + "promzard": "^1.0.0", + "read": "^2.0.0", + "read-package-json": "^6.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "8.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-git-repository": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^0.6.1", + "path-is-absolute": "^1.0.1" + } + }, + "node_modules/is-git-repository/node_modules/cross-spawn": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/is-git-repository/node_modules/execa": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-git-repository/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-git-repository/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-git-repository/node_modules/lru-cache": { + "version": "4.1.5", + "dev": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/is-git-repository/node_modules/npm-run-path": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-git-repository/node_modules/yallist": { + "version": "2.1.2", + "dev": true, + "license": "ISC" + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-map": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ssh": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/jest-get-type": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/diff-sequences": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/jest-diff": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/@tootallnate/once": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/form-data": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/tr46": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "8.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsdom/node_modules/ws": { + "version": "7.5.9", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lerna": { + "version": "7.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "7.3.0", + "@lerna/create": "7.3.0", + "@npmcli/run-script": "6.0.2", + "@nx/devkit": ">=16.5.1 < 17", + "@octokit/plugin-enterprise-rest": "6.0.1", + "@octokit/rest": "19.0.11", + "byte-size": "8.1.1", + "chalk": "4.1.0", + "clone-deep": "4.0.1", + "cmd-shim": "6.0.1", + "columnify": "1.6.0", + "conventional-changelog-angular": "6.0.0", + "conventional-changelog-core": "5.0.1", + "conventional-recommended-bump": "7.0.1", + "cosmiconfig": "^8.2.0", + "dedent": "0.7.0", + "envinfo": "7.8.1", + "execa": "5.0.0", + "fs-extra": "^11.1.1", + "get-port": "5.1.1", + "get-stream": "6.0.0", + "git-url-parse": "13.1.0", + "glob-parent": "5.1.2", + "globby": "11.1.0", + "graceful-fs": "4.2.11", + "has-unicode": "2.0.1", + "import-local": "3.1.0", + "ini": "^1.3.8", + "init-package-json": "5.0.0", + "inquirer": "^8.2.4", + "is-ci": "3.0.1", + "is-stream": "2.0.0", + "jest-diff": ">=29.4.3 < 30", + "js-yaml": "4.1.0", + "libnpmaccess": "7.0.2", + "libnpmpublish": "7.3.0", + "load-json-file": "6.2.0", + "lodash": "^4.17.21", + "make-dir": "4.0.0", + "minimatch": "3.0.5", + "multimatch": "5.0.0", + "node-fetch": "2.6.7", + "npm-package-arg": "8.1.1", + "npm-packlist": "5.1.1", + "npm-registry-fetch": "^14.0.5", + "npmlog": "^6.0.2", + "nx": ">=16.5.1 < 17", + "p-map": "4.0.0", + "p-map-series": "2.1.0", + "p-pipe": "3.1.0", + "p-queue": "6.6.2", + "p-reduce": "2.1.0", + "p-waterfall": "2.1.1", + "pacote": "^15.2.0", + "pify": "5.0.0", + "read-cmd-shim": "4.0.0", + "read-package-json": "6.0.4", + "resolve-from": "5.0.0", + "rimraf": "^4.4.1", + "semver": "^7.3.8", + "signal-exit": "3.0.7", + "slash": "3.0.0", + "ssri": "^9.0.1", + "strong-log-transformer": "2.1.0", + "tar": "6.1.11", + "temp-dir": "1.0.0", + "typescript": ">=3 < 6", + "upath": "2.0.1", + "uuid": "^9.0.0", + "validate-npm-package-license": "3.0.4", + "validate-npm-package-name": "5.0.0", + "write-file-atomic": "5.0.1", + "write-pkg": "4.0.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4" + }, + "bin": { + "lerna": "dist/cli.js" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + } + }, + "node_modules/lerna/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/lerna/node_modules/builtins": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/lerna/node_modules/chalk": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lerna/node_modules/execa": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lerna/node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lerna/node_modules/execa/node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lerna/node_modules/fs-extra": { + "version": "11.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/lerna/node_modules/get-stream": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lerna/node_modules/hosted-git-info": { + "version": "3.0.8", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lerna/node_modules/minimatch": { + "version": "3.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/lerna/node_modules/npm-package-arg": { + "version": "8.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^3.0.6", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lerna/node_modules/npm-package-arg/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/lerna/node_modules/pify": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lerna/node_modules/rimraf": { + "version": "4.4.1", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/lerna/node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/lerna/node_modules/rimraf/node_modules/glob": { + "version": "9.3.5", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/lerna/node_modules/rimraf/node_modules/minimatch": { + "version": "8.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/lerna/node_modules/rimraf/node_modules/minipass": { + "version": "4.2.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/lerna/node_modules/ssri": { + "version": "9.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/lerna/node_modules/tar": { + "version": "6.1.11", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/lerna/node_modules/yargs-parser": { + "version": "20.2.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libnpmaccess": { + "version": "7.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^10.1.0", + "npm-registry-fetch": "^14.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/libnpmpublish": { + "version": "7.3.0", + "dev": true, + "license": "ISC", + "dependencies": { + "ci-info": "^3.6.1", + "normalize-package-data": "^5.0.0", + "npm-package-arg": "^10.1.0", + "npm-registry-fetch": "^14.0.3", + "proc-log": "^3.0.0", + "semver": "^7.3.7", + "sigstore": "^1.4.0", + "ssri": "^10.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/libnpmpublish/node_modules/hosted-git-info": { + "version": "6.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/libnpmpublish/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/libnpmpublish/node_modules/normalize-package-data": { + "version": "5.0.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/lint-staged": { + "version": "14.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "5.3.0", + "commander": "11.0.0", + "debug": "4.3.4", + "execa": "7.2.0", + "lilconfig": "2.1.0", + "listr2": "6.6.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "4.3.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2": { + "version": "6.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", + "rfdc": "^1.3.0", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/load-json-file": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^5.0.0", + "strip-bom": "^4.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/type-fest": { + "version": "1.4.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/longest": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "node_modules/make-fetch-happen": { + "version": "11.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "8.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/arrify": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/multimatch": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "license": "ISC" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp": { + "version": "9.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^11.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/node-gyp-build": { + "version": "4.6.1", + "dev": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/node-machine-id": { + "version": "1.1.12", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.13", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-bundled/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/npm-install-checks": { + "version": "6.2.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "10.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "6.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/npm-packlist": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^1.1.2", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-packlist/node_modules/glob": { + "version": "8.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-packlist/node_modules/minimatch": { + "version": "5.1.6", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/npm-pick-manifest": { + "version": "8.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^10.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "14.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^11.0.0", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^10.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/pidtree": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "dev": true, + "license": "MIT" + }, + "node_modules/nx": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/nx/-/nx-16.10.0.tgz", + "integrity": "sha512-gZl4iCC0Hx0Qe1VWmO4Bkeul2nttuXdPpfnlcDKSACGu3ZIo+uySqwOF8yBAxSTIf8xe2JRhgzJN1aFkuezEBg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@nrwl/tao": "16.10.0", + "@parcel/watcher": "2.0.4", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "3.0.0-rc.46", + "@zkochan/js-yaml": "0.0.6", + "axios": "^1.0.0", + "chalk": "^4.1.0", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^8.0.1", + "dotenv": "~16.3.1", + "dotenv-expand": "~10.0.0", + "enquirer": "~2.3.6", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^11.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "jest-diff": "^29.4.1", + "js-yaml": "4.1.0", + "jsonc-parser": "3.2.0", + "lines-and-columns": "~2.0.3", + "minimatch": "3.0.5", + "node-machine-id": "1.1.12", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.5.3", + "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" + }, + "bin": { + "nx": "bin/nx.js" + }, + "optionalDependencies": { + "@nx/nx-darwin-arm64": "16.10.0", + "@nx/nx-darwin-x64": "16.10.0", + "@nx/nx-freebsd-x64": "16.10.0", + "@nx/nx-linux-arm-gnueabihf": "16.10.0", + "@nx/nx-linux-arm64-gnu": "16.10.0", + "@nx/nx-linux-arm64-musl": "16.10.0", + "@nx/nx-linux-x64-gnu": "16.10.0", + "@nx/nx-linux-x64-musl": "16.10.0", + "@nx/nx-win32-arm64-msvc": "16.10.0", + "@nx/nx-win32-x64-msvc": "16.10.0" + }, + "peerDependencies": { + "@swc-node/register": "^1.6.7", + "@swc/core": "^1.3.85" + }, + "peerDependenciesMeta": { + "@swc-node/register": { + "optional": true + }, + "@swc/core": { + "optional": true + } + } + }, + "node_modules/nx/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/nx/node_modules/fs-extra": { + "version": "11.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/nx/node_modules/glob": { + "version": "7.1.4", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nx/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nx/node_modules/minimatch": { + "version": "3.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nx/node_modules/semver": { + "version": "7.5.3", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/yargs": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/nx/node_modules/yargs/node_modules/cliui": { + "version": "8.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/cli-spinners": { + "version": "2.9.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map-series": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-pipe": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reduce": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-waterfall": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pacote": { + "version": "15.2.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^4.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^6.0.1", + "@npmcli/run-script": "^6.0.0", + "cacache": "^17.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^5.0.0", + "npm-package-arg": "^10.0.0", + "npm-packlist": "^7.0.0", + "npm-pick-manifest": "^8.0.0", + "npm-registry-fetch": "^14.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^6.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^1.3.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/pacote/node_modules/fs-minipass": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/pacote/node_modules/fs-minipass/node_modules/minipass": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/pacote/node_modules/ignore-walk": { + "version": "6.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/pacote/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/pacote/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/pacote/node_modules/npm-packlist": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-json/node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-path": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "protocols": "^2.0.0" + } + }, + "node_modules/parse-url": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-path": "^7.0.0" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.1", + "dev": true, + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/promzard": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "read": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "dev": true, + "license": "MIT" + }, + "node_modules/protocols": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/psl": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "10.4.0", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "4.3.1", + "devtools-protocol": "0.0.901419", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.0", + "node-fetch": "2.6.1", + "pkg-dir": "4.2.0", + "progress": "2.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.0.0", + "unbzip2-stream": "1.3.3", + "ws": "7.4.6" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/puppeteer/node_modules/debug": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/https-proxy-agent": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/puppeteer/node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/node-fetch": { + "version": "2.6.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/read": { + "version": "2.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-cmd-shim": { + "version": "4.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json": { + "version": "6.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^5.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.3.10", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/hosted-git-info": { + "version": "6.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/minipass": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/read-package-json/node_modules/normalize-package-data": { + "version": "5.0.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/load-json-file": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read/node_modules/mute-stream": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requireindex": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.6", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-func": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "bin": { + "run-func": "index.js", + "run-func-mem": "mem.js" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "5.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/sigstore": { + "version": "1.9.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^1.1.0", + "@sigstore/protobuf-specs": "^0.2.0", + "@sigstore/sign": "^1.0.0", + "@sigstore/tuf": "^1.0.3", + "make-fetch-happen": "^11.0.1" + }, + "bin": { + "sigstore": "bin/sigstore.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/simple-git": { + "version": "3.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sort-keys": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "dev": true, + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "10.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ssri/node_modules/minipass": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/string-argv": { + "version": "0.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strong-log-transformer": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + }, + "bin": { + "sl-log-transformer": "bin/sl-log-transformer.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/tar": { + "version": "6.2.0", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp": "^0.5.1", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "dev": true, + "license": "ISC" + }, + "node_modules/tar-fs/node_modules/mkdirp": { + "version": "0.5.6", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-dir": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/throat": { + "version": "6.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/tuf-js": { + "version": "1.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "1.0.4", + "debug": "^4.3.4", + "make-fetch-happen": "^11.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "9.0.1", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/validate-branch-name": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^8.3.0", + "cosmiconfig": "^7.0.1", + "current-git-branch": "^1.1.0" + }, + "bin": { + "validate-branch-name": "cli.js" + } + }, + "node_modules/validate-branch-name/node_modules/commander": { + "version": "8.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/validate-branch-name/node_modules/cosmiconfig": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/validate-branch-name/node_modules/yaml": { + "version": "1.10.2", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/write-json-file": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.15", + "make-dir": "^2.1.0", + "pify": "^4.0.1", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-json-file/node_modules/detect-indent": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/write-json-file/node_modules/make-dir": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-json-file/node_modules/pify": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/write-json-file/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/write-json-file/node_modules/write-file-atomic": { + "version": "2.4.3", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/write-pkg": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "sort-keys": "^2.0.0", + "type-fest": "^0.4.1", + "write-json-file": "^3.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/write-pkg/node_modules/type-fest": { + "version": "0.4.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=6" + } + }, + "node_modules/ws": { + "version": "7.4.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.3.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..40b483c --- /dev/null +++ b/package.json @@ -0,0 +1,104 @@ +{ + "name": "@pine-ds/icons", + "version": "2.0.1", + "license": "MIT", + "description": "Pine Icon Library", + "author": " Kajabi Design System Services", + "keywords": [ + "icon", + "icon library", + "pine", + "svg", + "web component" + ], + "workspaces": [ + "./" + ], + "main": "dist/index.cjs.js", + "module": "dist/index.js", + "es2015": "dist/esm/index.mjs", + "es2017": "dist/esm/index.mjs", + "types": "dist/types/index.d.ts", + "collection": "dist/collection/collection-manifest.json", + "collection:main": "dist/collection/index.js", + "unpkg": "dist/pds-icons/icons.esm.js", + "publishConfig": { + "access": "public", + "directory": "dist" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Kajabi/pine-icons.git" + }, + "bugs": { + "url": "https://github.com/Kajabi/pine-icons/issues" + }, + "scripts": { + "build": "run-s build.ts build.icons build.component collection.copy", + "build.dev": "run-s build.ts build.icons build.component.dev collection.copy", + "build.component": "stencil build --docs", + "build.component.dev": "stencil build --dev --docs --watch --serve", + "build.icons": "run-func scripts/optimize-svgs.js run $(pwd)", + "build.ts": "tsc -p scripts/tsconfig.json", + "collection.copy": "run-func scripts/collection-copy.js collectionCopy $(pwd)", + "deploy": "run-s build", + "figma.export": "node scripts/figma_icons/figma-icon-export.js", + "lint": "run-p lint.*", + "lint.eslint": "eslint src/**/*.{ts,tsx}", + "prepare": "node .scripts/prepare.js", + "start": "run-s build.dev", + "test": "stencil test --spec --e2e", + "test.spec": "stencil test --spec", + "test.spec.watch": "stencil test --spec --watch", + "test.watch": "stencil test --spec --e2e --watch --coverage", + "update": "run-s build.ts build figma.export" + }, + "files": [ + "components/", + "dist/", + "icons/" + ], + "dependencies": { + "@stencil/core": "^4.0.2" + }, + "devDependencies": { + "@commitlint/cli": "^17.7.2", + "@commitlint/config-conventional": "^17.7.0", + "@stencil/sass": "^2.0.0", + "@types/fs-extra": "^9.0.13", + "@types/jest": "^27.0.3", + "@types/mkdirp": "^1.0.2", + "@types/svgo": "^2.6.4", + "@typescript-eslint/eslint-plugin": "^6.7.4", + "@typescript-eslint/parser": "^6.7.4", + "axios": "^1.1.3", + "chalk": "^4.1.2", + "cliui": "^8.0.1", + "commitizen": "^4.3.0", + "eslint": "^8.27.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-storybook": "^0.6.14", + "fs-extra": "^10.1.0", + "husky": "^8.0.3", + "jest": "^27.4.5", + "jest-cli": "^27.4.5", + "lerna": "^7.3.0", + "lint-staged": "^14.0.1", + "mkdirp": "^1.0.4", + "npm-run-all": "^4.1.5", + "nx": "16.10.0", + "prettier": "^2.7.1", + "puppeteer": "^10.0.0", + "run-func": "^3.0.0", + "simple-git": "^3.16.0", + "svgo": "^3.0.0", + "typescript": "^5.1.6", + "validate-branch-name": "^1.3.0" + }, + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } + } +} diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..46b1785 --- /dev/null +++ b/readme.md @@ -0,0 +1,3 @@ +# PDS Icons + +This is the Icon Library for Kajabi's Pine Design System. diff --git a/scripts/cheatsheet-template.html b/scripts/cheatsheet-template.html new file mode 100644 index 0000000..427fbe8 --- /dev/null +++ b/scripts/cheatsheet-template.html @@ -0,0 +1,41 @@ + + + + + Pine icons {{version}} Cheatsheet + + + +

Pine Icons {{version}} Cheatsheet

+

{{count}} icons

+ +{{content}} + + diff --git a/scripts/collection-copy.ts b/scripts/collection-copy.ts new file mode 100644 index 0000000..32024c0 --- /dev/null +++ b/scripts/collection-copy.ts @@ -0,0 +1,35 @@ +import fs from 'fs-extra'; +import { join } from 'path'; + +export const collectionCopy = async (rootDir: string) => { + const optimizedSrc = join(rootDir, 'src', 'svg'); + const distSvgDest = join(rootDir, 'dist', 'svg'); + const collectionDest = join(rootDir, 'dist', 'collection', 'components', 'pds-icon', 'svg'); + + await fs.copy(optimizedSrc, collectionDest); + await fs.copy(optimizedSrc, distSvgDest); + + // we don't want to copy the src/svgs to the collection (distribution) + await fs.remove(join(rootDir, 'dist', 'collection', 'svg')); + + // don't want to copy the test svgs to the collection either + await fs.remove(join(rootDir, 'dist', 'collection', 'components', 'test')); + + const cePackageDir = join(rootDir, 'components'); + const cePackageJsonPath = join(cePackageDir, 'package.json'); + const ceCjsPath = join(cePackageDir, 'index.cjs.js'); + + const emptyCjs = `/*empty cjs*/`; + await fs.writeFile(ceCjsPath, emptyCjs); + + const cePackaageJson = { + name: '@ju-skinner/components', + description: 'Pine Icons custom element', + main: './index.cjs.js', + module: '.index.js', + types: './index.d.ts', + private: true, + }; + + await fs.writeFile(cePackageJsonPath, JSON.stringify(cePackaageJson, null, 2)); +} diff --git a/scripts/figma_icons/changelog-template.html b/scripts/figma_icons/changelog-template.html new file mode 100644 index 0000000..be218fd --- /dev/null +++ b/scripts/figma_icons/changelog-template.html @@ -0,0 +1,81 @@ + + + + + {{date}} - {{version}} Changelog + + + +

{{date}} - {{version}} Changelog

+ +Files: Modifed {{modified}}, Renamed {{renamed}}, Deleted {{deleted}}, Created {{created}} + + +

Info

+

Added icons are new icons that have been introduced in this version. You won't see these icons listed in the "before" column because they did not exist in the previous version.

+ +

Modified icons have undergone some changes since the previous version, which could be a visual change or a change to the code behind the icon. If an icon has undergone a visible change, +you will see the difference between the "before" and "after" columns. However, if the change was only to the code, you may not notice any difference in the icon's appearance, but it will +still be listed in the “modified” category

+ +

Deleted icons were present in the previous version but have been removed in this version. You will not see these icons listed in the "after" column because they are no longer available +in the current version.

+ +

Renamed icons were present in the previous version but have been renamed in this version. You will see a "Previous" and a "New" filename column. You will not see any visual change +in the "before" or "after" column.

+ +{{content}} + + + diff --git a/scripts/figma_icons/figma-icon-export.ts b/scripts/figma_icons/figma-icon-export.ts new file mode 100644 index 0000000..8089e1e --- /dev/null +++ b/scripts/figma_icons/figma-icon-export.ts @@ -0,0 +1,811 @@ +import * as dotenv from 'dotenv'; + +import { run as optimizeSvgs} from '../optimize-svgs' +import { collectionCopy } from '../collection-copy'; + + +/* eslint-disable @typescript-eslint/no-var-requires */ +const axios = require('axios'); +import chalk from 'chalk'; // Terminal string styling done right +import path from 'path'; +import fs from 'fs-extra'; +import mkdirp from 'mkdirp'; +import cliui from 'cliui'; +import { simpleGit, SimpleGitOptions, StatusResult } from 'simple-git'; + +import { FigmaIcon, FigmaIconConfig, IconFileDetail, SvgDiffResult } from './types'; + +if (process.env.NODE_ENV !== 'prod') { + dotenv.config({ path: `${process.cwd()}/.env` }) +} + + +const info = chalk.white; +const error = chalk.red.bold; +const detail = chalk.yellowBright; +const log = console.log; + +const baseDir = process.cwd(); +const scriptsDir = path.join(baseDir, 'scripts'); +const srcDir = path.join(baseDir, 'src'); +const srcSvgBasePath = path.join(srcDir, 'svg'); + +const date = new Date(); +const strDate = [date.getFullYear().toString(), (date.getMonth() + 1).toString().padStart(2,'0'), date.getDate().toString().padStart(2, '0')].join('-'); + +let figmaClient; + +const run = async (rootDir: string) => { + try { + const config: FigmaIconConfig = await loadFigmaIconConfig(rootDir); + figmaClient = client(config.figmaAccessToken); + + const data = await processData(rootDir, config); + + await optimizeSvgs(rootDir, true); + + const git = gitClient(); + await git.add(srcSvgBasePath); + + const statusResults: StatusResult = await git.status([srcSvgBasePath]); + const filesChanged = statusResults.files; + + if (filesChanged.length <= 0) { + log(detail('No changes were found. Exiting the process!!!!')) + + removeTmpDirectory(config); + + return; + } + + log('Copying collections...'); + await collectionCopy(rootDir); + + log(`${makeResultsTable(data.downloaded)}\n`); + + console.log('Icon Count: ', data.icons.length, 'Result Count: ', data.downloaded.length); + createJsonIconList(data.icons, srcDir); + + await createChangelogHTML(statusResults); + + removeTmpDirectory(config) + + // restore staged files in case of failure + const { exec } = require('node:child_process') + exec(`git restore --staged ${srcSvgBasePath}`) + } + catch (e) { + log(error(e)); + process.exit(1); + } +} + +/** + * Reads the file contents to read the Svg File and stores + * into a property to be used later + * + * @param status - staus indicator, this could be D - deleted, M - modified, or empty - new + * @param filePath - relattive path to the file + * @returns - SvgDiffResult + */ +const buildBeforeAndAfterSvg = async (status: string, filePath: string, previousFilePath: string = null): Promise => { + const filename = path.basename(filePath); + const previousFileName = previousFilePath && path.basename(previousFilePath); + + let beforeSvg = null; + let afterSvg = null; + + switch(status) { + case 'D': + beforeSvg = await getFileContentsFromGit(filePath); + break; + + case 'M': + beforeSvg = await getFileContentsFromGit(filePath); + afterSvg = await getFileContentsFromDisk(filename) + break; + + case 'R': + beforeSvg = await getFileContentsFromGit(previousFilePath); + afterSvg = await getFileContentsFromDisk(filename) + break; + + case '': + afterSvg = await getFileContentsFromDisk(filename); + break; + } + + + return { + previousFileName, + filename, + status, + before: beforeSvg, + after: afterSvg, + } +} + +/** + * Generates a Header and table + * + * @param sectionName - name used for the Header + * @param data - an array of {@link SVGDiffResult} + * @returns The string of html used to represent a section e.g Added in the Changelog + */ +const buildHTMLSection = (sectionName: string, data: Array) => { + const content = `

${sectionName}

` + const table: string = buildHTMLTable(data, sectionName == 'Renamed'); + + return [content, table].join('\n') +} + +/** + * Generates a HTML Table + * + * @param data an array of {@link SvgDiffResult} + * @returns - The html table markup + */ +const buildHTMLTable = (data: Array, isRenamed = false) => { + const tableRows = data.map((diff) => ` + ${ isRenamed ? `${diff.previousFileName}` : ''} + ${diff.filename} + ${diff.before || ''} + ${diff.after || ''} +`); + + const tableBody = ` + ${tableRows.join('')} + ` + + const table = ` + + + ${ isRenamed ? `` : ''} + ` : 'FileName'} + + + + + ${tableBody} +
Previous Filename${ isRenamed ? `New FilenameBeforeAfter
` + + return table; +} + + +/** + * Creates the axios client with the appropriate + * headers and url. + * + * @param apiToken required token to pass in the headers + * @returns Axios client object + */ +const client = (apiToken) => { + const figmaBaseApiURL = 'https://api.figma.com/v1'; + const instance = axios.create({ + baseURL: figmaBaseApiURL, + headers: { + 'Content-Type': 'application/json', + 'X-Figma-Token': apiToken + } + }) + + instance.interceptors.request.use((conf) => { + conf.startTime = new Date().getTime(); + + return conf; + }); + + return instance; +}; + +/** + * Creates the Changelog.html file based on the + * latest data pulled from Figma + * + * @returns The results from SimpleGit.status() + */ +const createChangelogHTML = async (statusResults: StatusResult) => { + const {modified, created, deleted, renamed} = await processStatusResults(statusResults); + + // Adding or Deleting will be Major version bump + // Modifying will be a MINOR version bump + + const html = fs.readFileSync(path.join(scriptsDir, 'figma_icons', 'changelog-template.html'), 'utf8') + .replace(/{{date}}/g, strDate) + .replace(/{{modified}}/g, statusResults.modified.length.toString()) + .replace(/{{deleted}}/g, statusResults.deleted.length.toString()) + .replace(/{{created}}/g, statusResults.created.length.toString()) + .replace(/{{renamed}}/g, statusResults.renamed.length.toString()) + .replace(/{{content}}/g, [created, modified, deleted, renamed].join('\n')); + + const changelogFilename = `${strDate}-changelog.html` + const changelogPath = path.join(baseDir, 'changelogs'); + const fullChangelogFilename = path.join(changelogPath, changelogFilename) + + // Write file to changelogs directory + fs.writeFileSync(fullChangelogFilename, html); + + const arrChangelogs = fs.readdirSync(changelogPath); + + const changelogRecords = [] + let numberOfChangelogs = 0; + + arrChangelogs.reverse().forEach((filename, idx) => { + if ( path.extname(filename) === '.html') { + if (idx < 10 ) { + changelogRecords.push(`${path.basename(filename)}`) + } + numberOfChangelogs++ + } + }) + log('Number of Changelog files found: ', detail(numberOfChangelogs)); + + const indexHtml = fs.readFileSync(path.join(baseDir, 'src','index-template.html'), 'utf8') + .replace(/{{changelogs}}/g, changelogRecords.join('
')); + + // Copy index.html file to www worker folder + fs.writeFileSync(path.join(baseDir, 'src', 'index.html'), indexHtml); + + if ( fs.ensureDir(path.join(baseDir, 'www')) ) { + const wwwChangelogPath = path.join(baseDir, 'www', 'changelogs'); + const wwwChangelogFile = path.join(wwwChangelogPath, changelogFilename); + + // Create Changelogs folder in `www` worker folder + fs.mkdirSync(wwwChangelogPath, { recursive: true }) + fs.copyFileSync(fullChangelogFilename, wwwChangelogFile) + } + + return statusResults; +} + +/** + * Creates JSON data file that contains additional + * metadata + * + * @example + * ``` + * { + * "category": "features", + * "name": "access-key", + * "tags": [ + * "access", + * "key", + * "license", + * "object", + * "password", + * "secure" + * ] + * } + * ``` + * + * @param icons - array of FigmaIcons + * @param outputDir - output directory to save the JSON data + */ +const createJsonIconList = (icons: Array, outputDir: string) => { + try { + icons = icons.sort((a,b) => { + if (a.name < b.name) return -1; + if (a.name > b.name) return 1; + return 0; + }); + + const outputObj = { + icons: icons.map((icon) => { + let tags; + + if (icon.tags) { + tags = icon.tags?.split(',').map((tag) => (tag.trim())).sort(); + } + else { + tags = icon.name.split('-'); + } + + return { + name: icon.name, + category: icon.frame || null, + tags: tags.sort(), + } + } + )}; + + const srcJsonStr = JSON.stringify(outputObj, null, 2) + '\n'; + fs.writeFileSync(path.join(outputDir, 'icon-data.json'), srcJsonStr); + + } + catch (e) { + logErrorMessage('createJsonIconList', e); + } +} + +/** + * Creates the directory that will + * contain the SVGs + * + * @param outputDir - The directory name to create + */ +const createOutputDirectory = async (outputDir: string) => { + return new Promise((resolve) => { + const directory = path.resolve(outputDir); + + if(!fs.existsSync(directory)) { + log(info(`Directory ${outputDir} does not exist`)); + + if (mkdirp.sync(directory)) { + log(info(`Created directory ${outputDir}`)) + resolve(); + } + } + else { + resolve(); + } + }) +} + +/** + * Downloads the images + * + * @param icon - The FigmaIcon object + * @param outputDir - The directory that the svg will be downloaded + * @returns a object with the name and size of the svg + */ +const downloadImage = (icon: FigmaIcon, outputDir: string) => { + const nameClean = icon.name.toLowerCase();; + const directory = outputDir; + + const imagePath = path.resolve(directory, `${nameClean}.svg`); + const writer = fs.createWriteStream(imagePath); + + // log('Image url: ', info(icon.url), 'Frame: ', info(icon.frame)); + // log('Image Path: ', info(imagePath)); + + axios.get(icon.url, {responseType: 'stream'}) + .then((res) => { + res.data.pipe(writer) + }) + .catch((err) => { + if (err.message === 'Socket connection timeout') { + log(detail('Create new Figma access Token'),) + } + + log('Icon name: ', detail(icon.name)) + log('Error details ', '\nMessage: ', error(err.message), '\nUrl: ', detail(err.config.url)) + log(chalk.red.bold('Something went wrong fetching the image from S3, please try again'),) + log(chalk.red.bold(err),) + }); + + return new Promise((resolve, reject) => { + writer.on('finish', () => { + // log(info(`Saved ${name}.svg`, fs.statSync(imagePath).size)) + icon.filesize = fs.statSync(imagePath).size; + resolve({ + name: `${icon.name}.svg`, + size: fs.statSync(imagePath).size + }) + }); + + writer.on('error', (err) => { + console.log('error writting file', err) + reject(err) + }) + }) +} + +/** + * Extract all the icons from figma page data. + * + * @param pageData - an object containing the Page details + * @param ignoreFrames - an array of names to be ignored + * @param componentMetadata - an object containing additional details for the icon + * @returns An array of FigmaIcons + */ +const extractIcons = (pageData, ignoreFrames: string[], componentMetadata) => { + const iconFrames = pageData.children; + + const iconLibrary: Array = []; + + iconFrames.forEach((frame) => { + if ( ['COMPONENT_SET', 'FRAME'].includes(frame.type) && (!frame.name.startsWith('_') && !ignoreFrames?.includes(frame.name)) ) { + const components = frame.children; + + components.forEach( (component) => { + // if ( componentMetadata[component.id] === undefined) { + // console.log('Frame: ', frame.name, 'Component Id: ', component.id, 'Metadata: ', componentMetadata[component.id]) + // } + + const icon = { + id: component.id, + frame: frame.name.toLowerCase().replaceAll(' ', '-'), + name: !isNaN(component.name) ? `number-${component.name}`: component.name + }; + + if (componentMetadata[component.id] !== undefined ) { + icon["tags"] = componentMetadata[component.id].description + } + + iconLibrary.push(icon) + }); + } + }); + + return iconLibrary; +} + +/** + * Process that finds and downloads SVGs + * + * @param page - Page object in figma + * @param fileId - The unique Id for the Figma File + */ +const fetchAndDownloadIcons = async (page, fileId: string, config: FigmaIconConfig, componentMetadata) => { + try { + const iconLibrary = extractIcons(page, config.ignoreFrames, componentMetadata); + + log(chalk.yellowBright(iconLibrary.length), info('icons have been extracted')) + + const icons: Array = await fetchImageUrls(fileId, iconLibrary) + + await createOutputDirectory(config.downloadPath); + fs.emptyDirSync(config.downloadPath); + + const allIcons = icons.map((icon) => downloadImage(icon, config.downloadPath)); + + const results = await Promise.all(allIcons).then((res) => { return res; }); + + return { + icons: iconLibrary, + downloaded: results, + } + + } catch (e) { + logErrorMessage('fetchAndDonwloadIcons', e); + } +} + +/** + * Process that will make an API call to retrieve + * the FigmaFile data + * + * @oaram fileId - string: the fileId of the Figma File / Branch + * @returns - JSON data from Figma API - See {@link https://www.figma.com/developers/api#get-files-endpoint | GET File} + */ +const fetchFigmaData = (fileId: string) => { + const requestPath = `files/${fileId}?branch_data=true`; + + const data = figmaClient.get(requestPath) + .then((resp) => { + return resp.data; + }) + .catch((err) => { + log(error('Error occurred fetching Figma Data, error: ', err)); + }); + + return data; +} + +/** + * Sends a request to get a collection + * icon urls to download + * + * @param fileId - The FileId that contains the icons + * @param icons - An array of @see {@link FigmaIcon} + * @returns - Array with urls + */ +const fetchImageUrls = (fileId: string, icons: Array) => { + return new Promise((resolve) => { + const iconIds = icons.map(icon => icon.id).join(',') + + figmaClient.get(`images/${fileId}?ids=${iconIds}&format=svg`) + .then((res) => { + const imageUrls: string[] = res.data.images; + log(info(`Image Api returned ${chalk.yellowBright(Object.keys(res.data.images).length)} image urls\n`)); + + icons.forEach(icon => { + icon.url = imageUrls[icon.id] + }) + + resolve(icons); + }) + .catch((err) => { + log(error('Unable to get icons: ', err)); + process.exit(1); + }); + }) +} + +/** + * Locate the page in the Figma Data + * + * @param document - Figma document data + * @param pageName - Name of the page to find + * @returns a Node with the Page data + */ +const findPage = (document, pageName: string,) => { + const iconPage = document.children.find(c => c.name === pageName); + + if (!iconPage) { + log(error('No Page found, please check the name "', chalk.white.bgRedBright(pageName), '"')); + process.exit(1); + // throw error(`No Page found, please check the name "${chalk.white.bgRedBright(pageName)}"`) + } + + return iconPage +}; + +/** + * Reads the file contents using git cat-file + * See {@link https://git-scm.com/docs/git-cat-file} for more details + * + * @param filePath - the relative path to the file on disk + * @returns string + */ +const getFileContentsFromGit = async (filePath: string) => { + return await gitClient().catFile(['blob', `HEAD:${filePath}`]); +} + +/** + * Reads the file contents located on disk + * @param filename - the name of the file + * @returns string + */ +const getFileContentsFromDisk = async (filename: string) => { + return await fs.readFileSync(path.join(srcSvgBasePath, filename), 'utf8'); +} + +/** + * Creates an instance of the SimpleGit object + * @param options - list of SimpleGitOptions + * @returns SimpleGit client + */ + const gitClient = (options: Partial = {baseDir: srcSvgBasePath, binary: 'git'} ) => { + return simpleGit(options); + } + +/** + * Loads the figma-icon-config + * + * @params rootDir - The source directory + * @returns FigmaIconConfig object + */ +const loadFigmaIconConfig = async (rootDir: string) => { + try { + const configFile = path.resolve(path.join(rootDir, 'figma-icon-config.json')); + + if ( fs.existsSync(configFile)) { + log(info('Config file located at: ', detail(configFile))); + + const strConfig = await fs.readFile(configFile, 'utf-8'); + const config = JSON.parse(strConfig) as FigmaIconConfig; + + let hasError = false; + + hasError ||= setFigmaAccessToken(config); + hasError ||= setFigmaFileId(config); + + if (hasError) { + logErrorMessage('loadFigmaIconConfig', null); + process.exit(1); + } + + return config; + } + } + catch (e) { + logErrorMessage('loadFigmaIconConfig', e); + process.exit(1); + } +} + +/** + * The main process that invokes the Figma Export process + * + * @params rootDir - The initial starting directory + * @params config - The config data + */ +const processData = async (rootDir: string, config: FigmaIconConfig) => { + try { + config.downloadPath = path.join(rootDir, config.downloadPath); + + let figmaFileId = config.figmaFileId; + let figmaData = await fetchFigmaData(figmaFileId); + + if ( config.branchName && figmaData.branches.length > 0) { + const branch = figmaData.branches.find(b => b.name === config.branchName) + + if (!branch) { + // throw error(`No branch found with the name "${chalk.white.bgRed(config.branchName)}"`); + log(error('No branch found with the name'), chalk.white.bgRed(config.branchName)); + process.exit(1); + } + + figmaFileId = branch.key; + log(info('Found branch!! Retrieving data for Branch:',detail(config.branchName), ', Branch File id:',detail(figmaFileId))); + + figmaData = await fetchFigmaData(figmaFileId); + } + + const page = findPage(figmaData.document, config.pageName); + + const response = await fs.emptyDir(config.downloadPath) + .then(() => { + return fetchAndDownloadIcons(page, figmaFileId, config, figmaData.components); + }) + + return response; + } catch (e) { + logErrorMessage('processData', e); + } +} + +/** + * Processes the SimpleGit status results and builds + * the HTML Section data + * + * @param results - list of results from SimpleGit.status + * @returns object - string html data for modifed, created, deleted + */ +const processStatusResults = async (results: StatusResult) => { + const { modified: m, created: n, deleted: d, renamed: r } = results; + + let created, deleted, modified, renamed + + if (n.length > 0) { + created = await Promise.all(n.map((path) => { return buildBeforeAndAfterSvg('', path)})); + created = buildHTMLSection('Added', created); + } + + if (d.length > 0) { + deleted = await Promise.all(d.map((path) => ( buildBeforeAndAfterSvg('D', path)))); + deleted = buildHTMLSection('Deleted', deleted); + } + + if (m.length > 0) { + modified = await Promise.all(m.map((path) => ( buildBeforeAndAfterSvg('M', path)))); + modified = buildHTMLSection('Modified', modified); + } + + if (r.length > 0) { + renamed = await Promise.all(r.map((path) => ( buildBeforeAndAfterSvg('R', path.to, path.from)))); + renamed = buildHTMLSection('Renamed', renamed); + } + + return { created, deleted, modified, renamed } +} + +/***************************/ +/* Kicks off the Process */ +/***************************/ +console.log(path.join(__dirname, '../..')) +run(path.join(__dirname, '../..')); + +/** + * + * Helper Methods + * + * + */ + +/** + * Generates a string that represents the number + * of KiB + * + * @param size - number - + * @returns string + */ +const formatSize = (size) => { + return (size / 1024).toFixed(2) + ' KiB' +} + +/** + * Logs an error message + * @param methodName - the name of the method the error occurred in + * @param err - the error + */ +const logErrorMessage = (methodName: string, err) => { + log('Error in ' , detail(methodName), '\n Message: ', error(err)); +} + +/** + * Outputs a table of Name and Filesize for each + * file downloaded + * + * @param results - Collection of name and filesize + */ +const makeResultsTable = (results) => { + const ui = cliui({width: 80}); + + ui.div( + makeRow( + chalk.cyan.bold(`File`), + chalk.cyan.bold(`Size`), + ) + `\n\n` + + results.map(asset => makeRow( + asset.name.includes('-duplicate-name') + ? chalk.red.bold(asset.name) + : chalk.green(asset.name), + formatSize(asset.size) + )).join(`\n`) + ) + return ui.toString() +} + +const makeRow = (a, b) => { + return ` ${a}\t ${b}\t` +} + +/** + * Removes the tmp directory created during + * the download process from the FigmaAPI + * + * @param config - FigmaIconConfig object + */ +const removeTmpDirectory = (config: FigmaIconConfig) => { + log('Removing tmp directory') + const tmpDir = path.join(config.downloadPath, '..'); + fs.rmSync(tmpDir, { force: true, recursive: true }); +} +/** + * Reads and Sets the Figma access token + * + * @params config - FigmaIconConfig object + * @returns boolean - hasError occurred + */ +const setFigmaAccessToken = (config: FigmaIconConfig) => { + let hasError = false; + + // Figma Token check + // Config file overrides Environment variable + switch(true) { + // Use Environment variable + case (!!process.env.FIGMA_ACCESS_TOKEN == true): + log(info('Using Figma Access Token in ', detail('ENVIRONMENT variable'))); + config.figmaAccessToken = process.env.FIGMA_ACCESS_TOKEN; + break; + + case (!!config.figmaAccessToken == true): + log(info('Using Figma Access Token in ', detail('CONFIGURATION file'))); + break; + + case (!config.figmaAccessToken && !process.env.FIGMA_ACCESS_TOKEN) == true: + hasError ||= true; + log(error('No Figma Access Token has been provided!!!!!')); + break; + } + + return hasError; +} + +/** + * Sets the Figma file id + * + * @params config - FigmaIconConfig object + * @returns boolean - hasError occurred + */ +const setFigmaFileId = (config: FigmaIconConfig) => { + let hasError = false + + // Figma File Id check + // Config file overrides Environment Variable + switch(true) { + // Use Environment variable + case (!!process.env.FIGMA_FILE_ID == true): + log(info('Using Figma File Id in ',detail('ENVIROMENT variable'))); + config.figmaFileId = process.env.FIGMA_FILE_ID + break; + + // Use provided token in config + case (!!config.figmaFileId == true): + log(info('Using Figma File Id in ',detail('Configuration file'))); + break; + + + // Render error and exit process + case (!config.figmaFileId && !process.env.FIGMA_FILE_ID) == true: + hasError ||= true; + log(error('No Figma File Id has been provided!!!!')) + + break; + } + + return hasError; +} diff --git a/scripts/figma_icons/types.ts b/scripts/figma_icons/types.ts new file mode 100644 index 0000000..eebbabc --- /dev/null +++ b/scripts/figma_icons/types.ts @@ -0,0 +1,132 @@ +export interface FigmaIconConfig { + /** + * Branch that is located in the + * Figma file + * @example spike-branch + */ + branchName: string; + + /** + * The Personal Acecss Token created + * from your Figma Account + * @see {@link https://www.figma.com/developers/api#intro:~:text=Access-,tokens,-A%20personal%20access|Figma API} + */ + figmaAccessToken: string; + + /** + * File id + * can be located in the url + * @example + * ``` + * https://www.figma.com/file/some-unique-id + * ``` + */ + figmaFileId: string; + + /** + * Frames that will be ignored when + * extracting icons + * @example + * ```json + * ignoreFrames: 'Docs' + * ``` + * or + * @example + * ```json + * ignoreFrames: ['Docs', 'Navigation'] + */ + ignoreFrames: string[] + + /** + * Path to save the downloaded SVGs + */ + downloadPath: string, + + /** + * Page that contains the icons + */ + pageName: string, +} + +export type FigmaIcon = { + /** + * The unique identifier in Figma + */ + id: string; + + /** + * The name of the file stored on disk + */ + filename?: string; + + /** + * The name of the file stored on disk + */ + filesize?: number; + + /** + * The frame the icon is located inside + * of Figma + * + */ + frame?: string; + + /** + * Name of the component + */ + name: string; + + /** + * Url to download the icon + */ + url?: string; + + /** + * Tags + */ + tags?: string; +} + +export type IconFileDetail = { + /** + * The name of the svg file + */ + name: string; + + /** + * The numeric size of the file in kB + */ + size: number; +} + +export interface SvgDiffResult { + + /** + * The name of the Previous file + */ + previousFileName?: string; + + /** + * The name of the file + */ + filename: string; + + /** + * Git status provided from SimpleGit + * Will be 'D', 'M', or ''. + * D: Deleted + * M: Modified + * '': Added + */ + status: string; + + /** + * What the svg content looked like before it was modified or deleted + */ + before: string | null; + + /** + * What the svg content looked like AFTER it was modified or deleted + */ + after: string | null; +} diff --git a/scripts/helpers.ts b/scripts/helpers.ts new file mode 100644 index 0000000..779ba77 --- /dev/null +++ b/scripts/helpers.ts @@ -0,0 +1,113 @@ +export interface SvgData { + /** + * /dist/svg/airplane-outline.svg + */ + distSvgFilePath: string; + + /** + * airplaneOutline + */ + exportName: string; + + /** + * airplane-outline.svg + */ + fileName: string; + + /** + * airplane-outline.js + */ + fileNameCjs: string; + + /** + * airplane-outline.mjs + */ + fileNameMjs: string; + + /** + * airplane-outline + */ + iconName: string; + + /** + * /dist/pds-icons/svg/airplane-outline.svg + */ + optimizedFilePath: string; + + /** + * The path to the save the optimized SVG within the Repo + */ + optimizedLocalSvgFilePath: string; + + /** + * Optimized svg content data generated from + * SVGO + */ + optimizedSvgContent: string; + + /** + * /tmp/svg/airplane-outline.svg + */ + srcFilePath: string; + + /** + * airplane + */ + title: string; +} + +export interface JsonData { + icons: { name: string; tags?: string[] }[]; + version?: string; +} + +export const reservedKeywords = new Set([ + 'do', + 'if', + 'in', + 'for', + 'let', + 'new', + 'try', + 'var', + 'case', + 'else', + 'enum', + 'eval', + 'null', + 'this', + 'true', + 'void', + 'with', + 'await', + 'break', + 'catch', + 'class', + 'const', + 'false', + 'super', + 'throw', + 'while', + 'yield', + 'delete', + 'export', + 'import', + 'public', + 'return', + 'static', + 'switch', + 'typeof', + 'default', + 'extends', + 'finally', + 'private', + 'continue', + 'debugger', + 'function', + 'arguments', + 'interface', + 'protected', + 'implements', + 'instanceof', + 'constructor', +]) diff --git a/scripts/optimize-svgs.ts b/scripts/optimize-svgs.ts new file mode 100644 index 0000000..cb69707 --- /dev/null +++ b/scripts/optimize-svgs.ts @@ -0,0 +1,451 @@ +import fs from 'fs-extra'; +import chalk from 'chalk'; +import { join } from 'path' +import { optimize } from 'svgo'; + +import { JsonData, SvgData, reservedKeywords } from './helpers'; + +import camelCase from 'lodash/camelCase'; +import startCase from 'lodash/startCase'; + +const log = console.log; +const error = chalk.red.bold; + +const libraryName = 'pds-icons'; + +/** + * Builds the icons for distribution + * + * @param rootDir - The source directory + * @param optimizeeFiles - Flag to indicate if we have files to optimize in `tmp/svg` folder. + */ +export const run = async(rootDir: string, optimizeFiles = false) => { + try { + const packageJsonPath = join(rootDir, 'package.json'); + const distDir = join(rootDir, 'dist'); + const distPineIconsDir = join(distDir, libraryName); + const distSvgDir = join(distDir, 'svg'); + const iconDir = join(rootDir, 'icons'); + + const optimizedOutputDir = join(rootDir, 'src'); + const optimizedOutputSvgDir = join(optimizedOutputDir, 'svg'); + + const srcDir = join(rootDir, 'tmp'); + let srcSvgDir = join(srcDir, 'svg'); + + // We will use the current svgs in the repo (src/svg) as the + // source during CI builds. optimizeFiles will be FALSE. + // + // When running Figma icon process we will use `tmp/svg` folder. + // optimizeFiles will be TRUE + srcSvgDir = optimizeFiles ? srcSvgDir : optimizedOutputSvgDir; + + log('Source SVG Directory: ', srcSvgDir); + + await cleanDirectories(iconDir, distDir, distSvgDir, distPineIconsDir); + + const packageData = await fs.readJson(packageJsonPath); + const version = packageData.version as string; + + log('Getting SVGs...'); + const srcSvgData = await getSvgs(srcSvgDir, distSvgDir, distPineIconsDir, optimizedOutputSvgDir, optimizeFiles); + + if (optimizeFiles) { + log('Optimized OuputSvgDir: ', optimizedOutputSvgDir) + await fs.emptyDir(optimizedOutputSvgDir); + + log('Optimizing SVGs...'); + await optimizeSvgs(srcSvgData); + } + + await Promise.all([ + createDataJson(version, optimizedOutputDir, distDir, srcSvgData), + createIconPackage(version, iconDir, srcSvgData), + ]) + + const svgSymbolsContent = await createSvgSymbols(version, distDir, srcSvgData); + + await createCheatSheet(version, rootDir, distDir, svgSymbolsContent, srcSvgData); + + await copyToTesting(rootDir, distDir, srcSvgData); + } + catch (e) { + log(error(e)); + process.exit(1); + } + +} + +const cleanDirectories = async (iconDir, distDir, distSvgDir, distPineIconsDir) => { + await Promise.all([fs.emptyDir(iconDir), fs.emptyDir(distDir)]); + await fs.emptyDir(distSvgDir), await fs.emptyDir(distPineIconsDir); +} + +const getSvgs = async (srcDir: string, distSvgDir: string, distPineIconsDir: string, outputSvgDir: string, isOptimizing: boolean): Promise => { + const optimizedSvgDir = join(distPineIconsDir, 'svg'); + await fs.emptyDir(optimizedSvgDir); + + const svgFiles = (await fs.readdir(srcDir)).filter((filename) => { + return !filename.startsWith('.') && filename.endsWith('.svg'); + }); + + const svgData = await Promise.all( + svgFiles.map(async (fileName) => { + // fileName: airplane-outline.svg + + if (fileName.toLowerCase() !== fileName) { + throw new Error(`svg filename "${fileName}" must be all lowercase`); + } + + // srcFilePath: /tmp/svg/airplane-outline.svg + const srcFilePath = join(srcDir, fileName); + + // distSvgFilePath: /dist/svg/airplane-outline.svg + const distSvgFilePath = join(distSvgDir, fileName); + + // optimizedFilePath: /dist/pds-icons/svg/airplane-outline.svg + const optimizedFilePath = join(optimizedSvgDir, fileName); + + // optimizedLocalSvgFilePath: /src/svg/airplane-outline.svg + const optimizedLocalSvgFilePath = join(outputSvgDir, fileName); + + const dotSplit = fileName.split('.'); + if (dotSplit.length > 2) { + throw new Error(`svg filename "${fileName}" cannot contain more than one period`); + } + + // iconName: airplane-outline + const iconName = dotSplit[0]; + + if (reservedKeywords.has(iconName)) { + throw new Error(`svg icon name "${iconName}" is a reserved JavaScript keyword`); + } + + // fileNameMjs: airplane-outline.mjs + const fileNameMjs = iconName + '.mjs'; + + // fileNameCjs: airplane-outline.mjs + const fileNameCjs = iconName + '.js'; + + // exportName: airplaneOutline + const exportName = camelCase(iconName); + + const title = startCase( + fileName.replace('.svg', '').replace('-outline', '').replace('-sharp', '').replace(/-/g, ' '), + ); + + return { + distSvgFilePath, + exportName, + fileName, + fileNameCjs, + fileNameMjs, + iconName, + optimizedFilePath, + optimizedSvgContent: isOptimizing ? null : await fs.readFile(srcFilePath, 'utf8'), + optimizedLocalSvgFilePath, + srcFilePath, + srcSvgContent: await fs.readFile(srcFilePath, 'utf8'), + title, + }; + }), + ); + + return svgData.sort((a, b) => { + if (a.exportName < b.exportName) return -1; + if (a.exportName > b.exportName) return 1; + return 0; + }); +} + +/** + * Optimizes the SVGs that are located in + * the src/svg folder + * + * + */ +const optimizeSvgs = async (srcSvgData: Array) => { + const optimizePass = {}; + const webComponentPass = { + multipass: true, + plugins: [ + 'removeStyleElement', + 'removeScriptElement', + 'removeDimensions', + 'removeUselessDefs', + { + name: 'removeAttrs', + params: { + attrs: "(fill|stroke|clip-rule)" + } + }, + { + name: 'addClassesToSVGElement', + params: { + className: 'pdsicon' + } + }, + ], + }; + + const sourcePass = { + multipass: true, + plugins: [ + 'removeStyleElement', + 'removeScriptElement', + 'removeDimensions', + 'removeUselessDefs', + { + name: 'removeAttrs', + params: { + attrs: "(fill|stroke|clip-rule)" + } + }, + { + name: 'addClassesToSVGElement', + params: { + className: 'pdsicon' + } + }, + ] + }; + + const validatePass = { + multipass: true, + plugins: [], + }; + + await Promise.all( + srcSvgData.map( async (svgData) => { + return optimizeSvg(optimizePass, webComponentPass, sourcePass, validatePass, svgData); + }), + ); +} + +const optimizeSvg = async (optimizePass: Record, webComponentPass: Record, sourcePass: Record, validatePass: Record, svgData: SvgData) => { + const srcSvgContent = await fs.readFile(svgData.srcFilePath, 'utf8'); + + const optimizedSvg = await optimize(srcSvgContent, Object.assign(optimizePass, { path: svgData.srcFilePath })); + + const optimizedCode = optimizedSvg.data + + const webComponentSvg = await optimize(optimizedCode, Object.assign( webComponentPass, { path: svgData.srcFilePath })); + const sourceSvg = await optimize(optimizedCode, Object.assign(sourcePass, { path: svgData.srcFilePath })); + + svgData.optimizedSvgContent = webComponentSvg.data; + + try { + optimize(svgData.optimizedSvgContent, Object.assign(validatePass,{ path: svgData.srcFilePath })); + } + catch (err) { + log(error(`${err.message}: ${svgData.srcFilePath}`)); + } + + await fs.writeFile(svgData.optimizedFilePath, svgData.optimizedSvgContent); + await fs.writeFile(svgData.distSvgFilePath, sourceSvg.data); + await fs.writeFile(svgData.optimizedLocalSvgFilePath, sourceSvg.data); +} + +const copyToTesting = async (rootDir: string, distDir: string, srcSvgData: Array) => { + const testDir = join(rootDir, 'www'); + const testBuildDir = join(testDir, 'build'); + const testSvgDir = join(testBuildDir, 'svg'); + + await fs.ensureDir(testSvgDir); + + await Promise.all( + srcSvgData.map(async (svgData) => { + const testSvgFilePath = join(testSvgDir, svgData.fileName); + await fs.writeFile(testSvgFilePath, svgData.optimizedSvgContent); + }), + ); + + const distCheatsheetFilePath = join(distDir, 'cheatsheet.html'); + const testCheatsheetFilePath = join(testDir, 'cheatsheet.html'); + await fs.copyFile(distCheatsheetFilePath, testCheatsheetFilePath); +} + +const createCheatSheet = async (version: string, rootDir: string, distDir: string, svgSymbolsContent: string, srcSvgData: Array) => { + const CheatSheetTmpFilePath = join(rootDir, 'scripts', 'cheatsheet-template.html'); + const distCheatsheetFilePath = join(distDir, 'cheatsheet.html'); + + const c = srcSvgData.map( + (svgData) => ``, + ); + + c.push(svgSymbolsContent); + + const html = (await fs.readFile(CheatSheetTmpFilePath, 'utf8')) + .replace(/{{version}}/g, version) + .replace(/{{count}}/g, srcSvgData.length.toString()) + .replace(/{{content}/g, c.join('\n')); + + await fs.writeFile(distCheatsheetFilePath, html); +} + +const createDataJson = async (version: string, srcDir: string, distDir: string, srcSvgData: Array) => { + const srcDataJsonPath = join(srcDir, 'icon-data.json'); + const distDataJsonPath = join(distDir, `${libraryName}.json`); + + let data: JsonData; + + try { + data = await fs.readJson(srcDataJsonPath); + } + catch (e) { + data = {} as any; + } + + data.icons = data.icons || []; + + // Add any new icons + srcSvgData.forEach((svgData) => { + if (!data.icons.some((i) => i.name === svgData.iconName)) { + data.icons.push({ + name: svgData.iconName, + }) + } + }); + + // remove deleted icons + data.icons = data.icons.filter((dataIcon) => { + return srcSvgData.some((svgData) => dataIcon.name === svgData.iconName); + }); + + // Sort the icons + data.icons = data.icons.sort((a, b) => { + if (a.name < b.name) return -1; + if (a.name > b.name) return 1; + return 0; + }); + + data.icons.forEach((icon) => { + icon.tags = icon.tags || icon.name.split('-'); + icon.tags = icon.tags.sort(); + }); + + const srcJsonStr = JSON.stringify(data, null, 2) + '\n'; + await fs.writeFile(srcDataJsonPath, srcJsonStr); + + const distJsonData = { + name: libraryName, + version, + icons: data.icons, + }; + + const distJsonStr = JSON.stringify(distJsonData, null, 2) + '\n'; + await fs.writeFile(distDataJsonPath, distJsonStr); +} + +const createIconPackage = async (version: string, iconDir: string, srcSvgData: Array) => { + const iconPkgJsonFilePath = join(iconDir, 'package.json'); + + await Promise.all([ + createEsmIcons(version, iconDir, srcSvgData), + createCjsIcons(version, iconDir, srcSvgData), + createDtsIcons(version, iconDir, srcSvgData), + ]); + + const iconPkgJson = { + name: '@ju-skinner/icons', + version, + module: 'index.mjs', + main: 'index.js', + typings: 'index.d.ts', + private: true + }; + + const jsonStr = JSON.stringify(iconPkgJson, null, 2) + '\n'; + await fs.writeFile(iconPkgJsonFilePath, jsonStr); +} + +const createEsmIcons = async (version: string, iconDir: string, srcSvgData: Array) => { + const iconEsmFilePath = join(iconDir, 'index.mjs'); + + const o = [`/* pds-icons v${version}, ES Modules */`, ``]; + + srcSvgData.forEach((svgData) => { + o.push(`export const ${svgData.exportName} = ${getDataUrl(svgData)}`); + }); + + await fs.writeFile(iconEsmFilePath, o.join('\n') + '\n'); +} + +const createCjsIcons = async (version: string, iconDir: string, srcSvgData: Array) => { + const iconCjsFilePath = join(iconDir, 'index.js'); + + const o = [`/* pds-icons v${version}, CommonJs */`, ``]; + + srcSvgData.forEach((svgData) => { + o.push(`exports.${svgData.exportName} = ${getDataUrl(svgData)}`); + }); + + await fs.writeFile(iconCjsFilePath, o.join('\n') + '\n'); +} + +const createDtsIcons = async (version: string, iconDir: string, srcSvgData: Array) => { + const iconDtsFilePath = join(iconDir, 'index.d.ts'); + + const o = [`/* pds-icons v${version}, Types */`, ``]; + + srcSvgData.forEach((svgData) => { + o.push(`export declare var ${svgData.exportName}: string`); + }); + + await fs.writeFile(iconDtsFilePath, o.join('\n') + '\n'); +} + +const createSvgSymbols = async (version: string, distDir: string, srcSvgData: Array) => { + srcSvgData = srcSvgData.sort((a, b) => { + if (a.iconName < b.iconName) return -1; + if (a.iconName > b.iconName) return 1; + return 0; + }); + + const symbolsSvgFilePath = join(distDir, `${libraryName}.symbols.svg`); + + const lines = [ + ``, + ``, + ]; + + srcSvgData.forEach((svgData) => { + const svg = svgData.optimizedSvgContent + .replace(``, ``); + lines.push(svg); + }); + + lines.push(` { + let svg = svgData.optimizedSvgContent; + if ( svg.includes(`'`)) { + throw new Error(`Single quotes are NOT allowed!!!!! ${svgData.fileName}`); + } + + if (svg.includes('\n') || svg.includes('\r')) { + throw new Error(`New lines are NOT allowed!!!!! ${svgData.fileName}`); + } + + svg = svg.replace(/"/g, "'"); + + return `"data:image/svg+xml;utf8,${svg}"`; +} diff --git a/scripts/readme.md b/scripts/readme.md new file mode 100644 index 0000000..f8a9b93 --- /dev/null +++ b/scripts/readme.md @@ -0,0 +1,58 @@ +# Build and Development scripts + +# Updating Icons +The `src/svg` directory is where the icons are downloaded. These are pulled initially from the Figma document, considered the single source of truth. These images are not optimized, as they are just exported from the editor. To get the latest svgs, you will need to run `npx nx icons:update`. Prior to running you will need to configure `figma-icon-config.json`. + +# Figma Icon Configuration +The `figma-icon-config.json` should be located in the root directory. You can follow the instructions below to create one if there isn't one currently. The presence of this file is required to pull icons from Figma. + +## Figma Export +In order to export icons you will need to follow the steps listed below. + +### Creating a Figma access token +1. Navigate to [Figma](https://www.figma.com) and login with your credentials. +2. Click your Profile avatar and select 'Settings'. +3. Scroll down until you see 'Personal access tokens'. +4. Under 'Create a new personal access token:' enter a token description and hit enter. +5. You should now see a token that you will need to copy and save somewhere safe. + +### Configuration File +The configuration file `figma-icon-config.json` is used to access the API, filter pages and frames located within. Below you will see an example configuration file. + +figma-icon-config.json +``` +{ + "figmaAccessToken": "some-access-token", + "figmaFileId": "figma-file-id", + "branchName": "reorg", + "pageName": "Icons", + "outputPath": "src/svg", + "ignoreFrames": ["_Countries", "Docs"] +} +``` + +#### Attributes +|name|type|required|env var|description| +|---|---|---|-----|---| +|figmaAccessToken|string|true|FIGMA_ACCESS_TOKEN|The Personal Access token that you have created in your account. See [above](#creating-a-figma-access-token). You can either set in the config or as environment variable, but one needs to be set.| +|figmaFileId|string|true|FIGMA_FILE_ID|The unique id for the file. This can be found in the url, when viewing the Figma file. e.g `https://www.figma.com/file/some-unique-id`. In the example this would be `some-unique-id`| +|branchName|string|false||Name of the branch| +|pageName|string|true||Name of the page the icons can be found| +|ouputPath|string|true||Location which the raw svgs should be saved| +|ignoreFrames|array|false||Name of the frame(s) that may be located in the page you wish to ignore. Frames that are prefixed with `_` are automatically ignored. If there is only one frame, please add it in array format e.g ['Frame to Ignore'] + +**NOTE**: The `figmaAccessToken` and `figmaFileId` can be set in either the configuration file or as an environment variable. The environment variable will take precedence over the configuration file. + +Example on how to use environment variables +```sh +FIGMA_ACCESS_TOKEN=[mySampleAccessToken] npx nx run icons:update +``` + +# Building locally +Once the latest svgs have been updated, which would either be added, deleted, or modified in the `src/svg` directory, you can run: +```sh + npx nx icons:build +``` + +The `build` command will download the latest icons from the Figma document (see [Figma Icon Configuration](#figma-doc-configuration)), optimize all of the icons, and generate the files to be distributed. Once complete and successful, all of the optimized svgs will be located in `dist/pds-icons/svg`, along with the `pds-icon` web component in the `dist` directory. + diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json new file mode 100644 index 0000000..bdf44b9 --- /dev/null +++ b/scripts/tsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "module": "commonjs", + "target": "es2017" + } +} diff --git a/src/components.d.ts b/src/components.d.ts new file mode 100644 index 0000000..47a51c0 --- /dev/null +++ b/src/components.d.ts @@ -0,0 +1,71 @@ +/* eslint-disable */ +/* tslint:disable */ +/** + * This is an autogenerated file created by the Stencil compiler. + * It contains typing information for all components that exist in this project. + */ +import { HTMLStencilElement, JSXBase } from "@stencil/core/internal"; +export namespace Components { + interface PdsIcon { + /** + * The color of the icon + */ + "color"?: string; + /** + * The name of the icon to use from the built-in set. + */ + "name"?: string; + /** + * The size of the icon. This can be 'small', 'regular', 'medium', large, or a custom value (40px, 1rem, etc) + */ + "size"?: | 'small' // 12px + | 'regular' // 16px + | 'medium' // 20px + | 'large' // 24px + | 'auto' + | string; + } +} +declare global { + interface HTMLPdsIconElement extends Components.PdsIcon, HTMLStencilElement { + } + var HTMLPdsIconElement: { + prototype: HTMLPdsIconElement; + new (): HTMLPdsIconElement; + }; + interface HTMLElementTagNameMap { + "pds-icon": HTMLPdsIconElement; + } +} +declare namespace LocalJSX { + interface PdsIcon { + /** + * The color of the icon + */ + "color"?: string; + /** + * The name of the icon to use from the built-in set. + */ + "name"?: string; + /** + * The size of the icon. This can be 'small', 'regular', 'medium', large, or a custom value (40px, 1rem, etc) + */ + "size"?: | 'small' // 12px + | 'regular' // 16px + | 'medium' // 20px + | 'large' // 24px + | 'auto' + | string; + } + interface IntrinsicElements { + "pds-icon": PdsIcon; + } +} +export { LocalJSX as JSX }; +declare module "@stencil/core" { + export namespace JSX { + interface IntrinsicElements { + "pds-icon": LocalJSX.PdsIcon & JSXBase.HTMLAttributes; + } + } +} diff --git a/src/components/pds-icon/pds-icon.scss b/src/components/pds-icon/pds-icon.scss new file mode 100644 index 0000000..e51d1e9 --- /dev/null +++ b/src/components/pds-icon/pds-icon.scss @@ -0,0 +1,23 @@ +:host { + contain: strict; + display: inline-block; + fill: currentColor; + height: 1em; + width: 1em; + + .pdsicon { + fill: currentColor; + } +} + +.pds-icon-fill-none { + fill: none; +} + +.icon-inner, +.pds-icon, +svg { + display: block; + height: 100%; + width: 100%; +} diff --git a/src/components/pds-icon/pds-icon.tsx b/src/components/pds-icon/pds-icon.tsx new file mode 100644 index 0000000..f3b57cc --- /dev/null +++ b/src/components/pds-icon/pds-icon.tsx @@ -0,0 +1,169 @@ +import { Build, Component, Element, Host, Prop, State, Watch, h } from '@stencil/core'; +import { getSvgContent, pdsIconContent } from './request'; +import { getName, getUrl, inheritAttributes } from './utils'; + +@Component({ + tag: 'pds-icon', + assetsDirs: ['svg'], + styleUrl: 'pds-icon.scss', + shadow: true, +}) +export class PdsIcon { + private io?: IntersectionObserver; + private inheritedAttributes: { [k: string]: any } = {}; // eslint-disable-line @typescript-eslint/no-explicit-any + + @Element() el!: HTMLPdsIconElement; + + @State() private ariaLabel?: string; + @State() private isVisible = false; + @State() private svgContent?: string; + + /** + * + * The color of the icon + * + */ + @Prop() color?: string; + + /** + * The name of the icon to use from + * the built-in set. + */ + @Prop({ reflect: true }) name?: string; + + /** + * The size of the icon. This can be + * 'small', 'regular', 'medium', large, or a + * custom value (40px, 1rem, etc) + * + */ + @Prop({ reflect: true }) size?: + | 'small' // 12px + | 'regular' // 16px + | 'medium' // 20px + | 'large' // 24px + | 'auto' + | string = 'regular' + + private iconSize() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const sizes: { [key: string]: any } = { + small: '12px', + regular: '16px', + medium: '20px', + large: '24px', + } + + if (sizes[this.size]) { + return sizes[this.size]; + } else { + return this.size; + } + } + componentWillLoad() { + this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']); + } + + connectedCallback() { + this.waitUntilVisible(this.el, '50px', () => { + this.isVisible = true; + this.loadIcon(); + }) + } + + disconnectedCallback() { + if (this.io) { + this.io.disconnect(); + this.io = undefined; + } + } + + @Watch('name') + loadIcon() { + if (Build.isBrowser && this.isVisible) { + const url = getUrl(this); + if (url) { + if (pdsIconContent.has(url)) { + this.svgContent = pdsIconContent.get(url); + } else { + getSvgContent(url).then(() => (this.svgContent = pdsIconContent.get(url))); + } + } + } + + const label = getName(this.name); + + if (label) { + this.ariaLabel = label.replace(/\-/g, ' '); + } + } + + render() { + const { ariaLabel, inheritedAttributes } = this; + + const style = { + height: this.iconSize(), + width: this.iconSize(), + color: this.color, + } + + return ( + + + {Build.isBrowser && this.svgContent ? ( +
+ ) : ( +
+ )} + + ) + } + + /***** + * Private Methods + ****/ + + private waitUntilVisible(el: HTMLElement, rootMargin: string, cb: () => void) { + if (Build.isBrowser && typeof window !== 'undefined' && (window).IntersectionObserver) { + const io = (this.io = new (window).IntersectionObserver( + (data: IntersectionObserverEntry[]) => { + if (data[0].isIntersecting) { + io.disconnect(); + this.io = undefined; + cb(); + } + }, + { rootMargin }, + )); + + io.observe(el); + } else { + // browser doesn't support IntersectionObserver + // so just fallback to always show it + cb(); + } + } + + private hasAriaHidden = () => { + const { el } = this; + + return el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true'; + } +} + +const createColorClasses = (color: string | undefined) => { + return color + ? { + 'pds-color': true, + [`pds-color-${color}`]: true, + } + : null; + }; diff --git a/src/components/pds-icon/readme.md b/src/components/pds-icon/readme.md new file mode 100644 index 0000000..c14b7be --- /dev/null +++ b/src/components/pds-icon/readme.md @@ -0,0 +1,19 @@ +# pds-icon + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| -------- | --------- | ---------------------------------------------------------------------------------------------------------- | -------- | ----------- | +| `color` | `color` | The color of the icon | `string` | `undefined` | +| `name` | `name` | The name of the icon to use from the built-in set. | `string` | `undefined` | +| `size` | `size` | The size of the icon. This can be 'small', 'regular', 'medium', large, or a custom value (40px, 1rem, etc) | `string` | `'regular'` | + + +---------------------------------------------- + + diff --git a/src/components/pds-icon/request.ts b/src/components/pds-icon/request.ts new file mode 100644 index 0000000..0cbcd98 --- /dev/null +++ b/src/components/pds-icon/request.ts @@ -0,0 +1,31 @@ +import { validateContent } from './validate'; + +export const pdsIconContent = new Map(); +const requests = new Map>(); // eslint-disable-line @typescript-eslint/no-explicit-any + +export const getSvgContent = (url: string, sanitize = false) => { + let req = requests.get(url); + + if(!req) { + if (typeof fetch != 'undefined' && typeof document !== 'undefined') { + // we don't have a request + req = fetch(url).then((rsp) => { + if (rsp.ok) { + return rsp.text().then((svgContent) => { + if (svgContent && sanitize !== false) { + svgContent = validateContent(svgContent); + } + pdsIconContent.set(url, svgContent || ''); + }); + } + pdsIconContent.set(url, ''); + }); + + requests.set(url, req); + } else { + pdsIconContent.set(url, ''); + return Promise.resolve(); + } + } + return req; +} diff --git a/src/components/pds-icon/svg/.gitignore b/src/components/pds-icon/svg/.gitignore new file mode 100644 index 0000000..9ed5288 --- /dev/null +++ b/src/components/pds-icon/svg/.gitignore @@ -0,0 +1,5 @@ +# this gitignore file is used as a placeholder +# for this directory. The directory itself will +# contain files generated during a build step. +* +!.gitignore diff --git a/src/components/pds-icon/test/pds-icon.e2e.ts b/src/components/pds-icon/test/pds-icon.e2e.ts new file mode 100644 index 0000000..ab6592e --- /dev/null +++ b/src/components/pds-icon/test/pds-icon.e2e.ts @@ -0,0 +1,11 @@ +import { newE2EPage } from '@stencil/core/testing'; + +describe('pds-icon', () => { + it('renders', async () => { + const page = await newE2EPage(); + + await page.setContent(''); + const element = await page.find('pds-icon'); + expect(element).toHaveClass('hydrated'); + }); +}); diff --git a/src/components/pds-icon/test/pds-icon.spec.ts b/src/components/pds-icon/test/pds-icon.spec.ts new file mode 100644 index 0000000..edf0ad6 --- /dev/null +++ b/src/components/pds-icon/test/pds-icon.spec.ts @@ -0,0 +1,75 @@ +import { newSpecPage } from '@stencil/core/testing'; +import { PdsIcon } from '../pds-icon'; + +describe('pds-icon', () => { + it('renders', async () => { + const { root } = await newSpecPage({ + components: [PdsIcon], + html: '', + }); + expect(root).toEqualHtml(` + + +
+
+
+ `); + }); + + it('renders the correct size when passed', async () => { + const { root } = await newSpecPage({ + components: [PdsIcon], + html: '', + }); + expect(root).toEqualHtml(` + + +
+
+
+ `); + }); + + it('allows custom size', async () => { + const { root } = await newSpecPage({ + components: [PdsIcon], + html: '', + }); + expect(root).toEqualHtml(` + + +
+
+
+ `); + }); + + it('renders icon when found', async () => { + const { root } = await newSpecPage({ + components: [PdsIcon], + html: '', + }); + expect(root).toEqualHtml(` + + +
+
+
+ `); + }); + + it('add correct styles when color specified', async () => { + const { root } = await newSpecPage({ + components: [PdsIcon], + html: '', + }); + expect(root).toEqualHtml(` + + +
+
+
+ `); + }); + +}); diff --git a/src/components/pds-icon/utils.ts b/src/components/pds-icon/utils.ts new file mode 100644 index 0000000..38fd08a --- /dev/null +++ b/src/components/pds-icon/utils.ts @@ -0,0 +1,97 @@ +import { getAssetPath } from '@stencil/core'; +import { PdsIcon } from './pds-icon'; + +let CACHED_MAP: Map; + +export const addIcons = (icons: { [name: string]: string; }) => { + const map = getIconMap(); + Object.keys(icons).forEach(name => map.set(name, icons[name])); +} + +export const getIconMap = (): Map => { + if (typeof window === 'undefined') { + return new Map(); + } else { + if (!CACHED_MAP) { + const win = window as any; // eslint-disable-line @typescript-eslint/no-explicit-any + win.PdsIcons = win.PdsIcons || {}; + CACHED_MAP = win.PdsIcons.map = win.PdsIcons.map || new Map(); + } + + return CACHED_MAP; + } +} + +export const getName = (iconName: string | undefined) => { + if (isStr(iconName)) { + iconName = toLower(iconName); + } + + if (!isStr(iconName) || iconName.trim() === '') { + return null; + } + + const invalidChars = iconName.replace(/[a-z]|-|\d/gi,''); + if (invalidChars != '') { return null; } + + return iconName; +} + +const getNamedUrl = (iconName: string) => { + const url = getIconMap().get(iconName); + if (url) { + return url; + } + + return getAssetPath(`svg/${iconName}.svg`); +}; + +export const getSrc = (src: string | undefined) => { + if (isStr(src)) { + src = src.trim(); + + if (isSrc(src)) { + return src; + } + } + + return null; +} + +export const getUrl = (icon: PdsIcon) => { + const url = getName(icon.name); + if (url) { + return getNamedUrl(url); + } +}; + + +export const isSrc = (str: string) => str.length > 0 && /(\/|\.)/.test(str); +export const isStr = (val: any): val is string => typeof val === 'string'; // eslint-disable-line @typescript-eslint/no-explicit-any +export const toLower = (val: string) => val.toLowerCase(); + +/** + * Elements inside of web components sometimes need to inherit global attributes + * set on the host. For example, the inner input in `ion-input` should inherit + * the `title` attribute that developers set directly on `ion-input`. This + * helper function should be called in componentWillLoad and assigned to a variable + * that is later used in the render function. + * + * This does not need to be reactive as changing attributes on the host element + * does not trigger a re-render. + */ + export const inheritAttributes = (el: HTMLElement, attributes: string[] = []) => { + const attributeObject: { [k: string]: any } = {}; // eslint-disable-line @typescript-eslint/no-explicit-any + + attributes.forEach(attr => { + if (el.hasAttribute(attr)) { + const value = el.getAttribute(attr); + if (value !== null) { + attributeObject[attr] = el.getAttribute(attr); + } + el.removeAttribute(attr); + } + }); + + return attributeObject; +} diff --git a/src/components/pds-icon/validate.ts b/src/components/pds-icon/validate.ts new file mode 100644 index 0000000..6452b9e --- /dev/null +++ b/src/components/pds-icon/validate.ts @@ -0,0 +1,50 @@ +import { isStr } from './utils'; + +export const validateContent = (svgContent: string) => { + const div = document.createElement('div'); + div.innerHTML = svgContent; + + // setup this way to ensure it works on our buddy IE + for (let i = div.childNodes.length - 1; i >= 0; i--) { + if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') { + div.removeChild(div.childNodes[i]); + } + } + + // must only have 1 root element + const svgElm = div.firstElementChild; + if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') { + const svgClass = svgElm.getAttribute('class') || ''; + svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim()); + + // root element must be an svg + // lets double check we've got valid elements + // do not allow scripts + if (isValid(svgElm as HTMLElement)) { + return div.innerHTML; + } + } + return ''; +}; + +export const isValid = (elm: HTMLElement) => { + if (elm.nodeType === 1) { + if (elm.nodeName.toLowerCase() === 'script') { + return false; + } + + for (let i = 0; i < elm.attributes.length; i++) { + const name = elm.attributes[i].name; + if (isStr(name) && name.toLowerCase().indexOf('on') === 0) { + return false; + } + } + + for (let i = 0; i < elm.childNodes.length; i++) { + if (!isValid(elm.childNodes[i] as HTMLElement)) { + return false; + } + } + } + return true; +}; diff --git a/src/icon-data.json b/src/icon-data.json new file mode 100644 index 0000000..f825be3 --- /dev/null +++ b/src/icon-data.json @@ -0,0 +1,4214 @@ +{ + "icons": [ + { + "name": "access-key", + "category": "features", + "tags": [ + "access", + "key", + "license", + "object", + "password", + "secure" + ] + }, + { + "name": "add", + "category": "actions", + "tags": [ + "add", + "addition", + "create", + "expand", + "increase", + "new", + "plus", + "positive" + ] + }, + { + "name": "add-circle", + "category": "actions", + "tags": [ + "add", + "addition", + "create", + "expand", + "increase", + "new", + "plus", + "positive" + ] + }, + { + "name": "add-image", + "category": "actions", + "tags": [ + "add", + "image", + "media", + "multimedia", + "photo", + "picture" + ] + }, + { + "name": "add-small", + "category": "actions", + "tags": [ + "add", + "addition", + "create", + "expand", + "increase", + "new", + "plus", + "positive" + ] + }, + { + "name": "ai-sparkle", + "category": "actions", + "tags": [ + "brightness", + "edit", + "effect", + "filter", + "light", + "photo", + "spark", + "sparkle" + ] + }, + { + "name": "ai-writer", + "category": "features", + "tags": [ + "compose", + "create", + "design", + "development", + "draft", + "draw", + "edit", + "editing", + "editor", + "education", + "message", + "note", + "pen", + "pencil", + "school", + "text", + "write" + ] + }, + { + "name": "ai-writer-filled", + "category": "features", + "tags": [ + "compose", + "create", + "design", + "development", + "draft", + "draw", + "edit", + "editing", + "editor", + "education", + "message", + "note", + "pen", + "pencil", + "school", + "text", + "write" + ] + }, + { + "name": "align-center", + "category": "text-editor", + "tags": [ + "align", + "center" + ] + }, + { + "name": "align-justify", + "category": "text-editor", + "tags": [ + "align", + "justify" + ] + }, + { + "name": "align-left", + "category": "text-editor", + "tags": [ + "align", + "left" + ] + }, + { + "name": "align-right", + "category": "text-editor", + "tags": [ + "align", + "right" + ] + }, + { + "name": "analytics-filled", + "category": "navigation", + "tags": [ + "analytics", + "bar", + "business", + "chart", + "data", + "diagram", + "finance", + "graph", + "nav", + "navigation", + "report", + "statistics" + ] + }, + { + "name": "analytics-outline", + "category": "navigation", + "tags": [ + "analytics", + "bar", + "business", + "chart", + "data", + "diagram", + "finance", + "graph", + "nav", + "navigation", + "report", + "statistics" + ] + }, + { + "name": "app-store", + "category": "features", + "tags": [ + "apple", + "appstore", + "computer", + "design", + "development", + "device", + "iPad", + "iPhone", + "logo", + "mac", + "pay", + "payment" + ] + }, + { + "name": "archive", + "category": "actions", + "tags": [ + "archive", + "available", + "box", + "check", + "collection", + "container", + "document", + "drawer", + "editor", + "file", + "folder", + "storage", + "success" + ] + }, + { + "name": "arrow-corner", + "category": "features", + "tags": [ + "arrow", + "arrows", + "corner", + "curved", + "direction", + "forward", + "keyboard", + "move", + "navigation", + "next", + "onward", + "onwards", + "out", + "position", + "right", + "top", + "up", + "upward", + "upwards" + ] + }, + { + "name": "arrow-down", + "category": "actions", + "tags": [ + "arrow", + "bottom", + "descend", + "down", + "downward" + ] + }, + { + "name": "arrow-left", + "category": "actions", + "tags": [ + "arrow", + "back", + "backward", + "backwards", + "direction", + "keyboard", + "left", + "move", + "navigation", + "out", + "position", + "previous" + ] + }, + { + "name": "arrow-right", + "category": "actions", + "tags": [ + "arrow", + "direction", + "forward", + "keyboard", + "move", + "navigation", + "next", + "onward", + "onwards", + "out", + "position", + "right" + ] + }, + { + "name": "arrow-up", + "category": "actions", + "tags": [ + "arrow", + "direction", + "keyboard", + "move", + "navigation", + "out", + "position", + "top", + "up", + "upward", + "upwards" + ] + }, + { + "name": "assessment", + "category": "actions", + "tags": [ + "all", + "check", + "check-all", + "checked", + "completed", + "done", + "filter", + "filtering", + "list", + "mark", + "select", + "todo" + ] + }, + { + "name": "at-sign", + "category": "site-settings", + "tags": [ + "address", + "at sign", + "contact", + "email", + "inbox" + ] + }, + { + "name": "attach", + "category": "actions", + "tags": [ + "attach", + "attached", + "attaching", + "attachment", + "clip", + "collate", + "contact", + "copy", + "editing", + "email", + "file", + "inbox", + "include", + "mail", + "paper", + "paperclip", + "text" + ] + }, + { + "name": "automations", + "category": "actions", + "tags": [ + "arrow", + "arrows", + "direction", + "directions", + "divide", + "fork", + "organize", + "separate", + "share", + "split", + "splitter" + ] + }, + { + "name": "ban", + "category": "actions", + "tags": [ + "ban", + "banned", + "block", + "blocked", + "cancel", + "forbidden", + "none", + "not", + "prevent", + "private", + "sign", + "stop" + ] + }, + { + "name": "bank", + "category": "features", + "tags": [ + "account", + "bank", + "business", + "columns", + "finance", + "landmark", + "museum", + "temple", + "travel" + ] + }, + { + "name": "bell", + "category": "site-settings", + "tags": [ + "alarm", + "alert", + "bell", + "buzz", + "christmas", + "interface", + "notification", + "ring", + "ringing", + "ringtone", + "sound", + "ui", + "wake" + ] + }, + { + "name": "blog", + "category": "site-settings", + "tags": [ + "article", + "blog", + "blogger", + "cms", + "content", + "copywriting", + "documentation", + "feed", + "marketing", + "media", + "news", + "web", + "wordpress" + ] + }, + { + "name": "bold", + "category": "text-editor", + "tags": [ + "bold" + ] + }, + { + "name": "broadcast", + "category": "actions", + "tags": [ + "alert", + "announcement", + "audio", + "loudspeaker", + "media", + "megaphone", + "multimedia", + "notification", + "speaker", + "voice" + ] + }, + { + "name": "calendar-date", + "category": "features", + "tags": [ + "appointment", + "calendar", + "date", + "day", + "event", + "grid", + "holidays", + "month", + "plan", + "planning", + "schedule", + "time", + "timetable", + "year" + ] + }, + { + "name": "calendar-schedule", + "category": "actions", + "tags": [ + "alarm", + "appointment", + "calendar", + "event", + "hours", + "opening", + "schedule", + "time", + "times" + ] + }, + { + "name": "calendar-simple", + "category": "actions", + "tags": [ + "appointment", + "calendar", + "date", + "day", + "even", + "month", + "plan", + "planning", + "schedule", + "time", + "timetable", + "year" + ] + }, + { + "name": "card-bw-amex", + "category": "payment-methods", + "tags": [ + "american express", + "amex", + "credit card", + "payment" + ] + }, + { + "name": "card-bw-apple-card", + "category": "payment-methods", + "tags": [ + "apple pay", + "credit card", + "payment" + ] + }, + { + "name": "card-bw-diners-club", + "category": "payment-methods", + "tags": [ + "credit card", + "diners", + "payment" + ] + }, + { + "name": "card-bw-discover", + "category": "payment-methods", + "tags": [ + "credit card", + "discover", + "payment" + ] + }, + { + "name": "card-bw-gpay-card", + "category": "payment-methods", + "tags": [ + "android", + "credit card", + "google", + "gpay", + "payment" + ] + }, + { + "name": "card-bw-mastercard", + "category": "payment-methods", + "tags": [ + "credit card", + "mastercard", + "payment" + ] + }, + { + "name": "card-bw-paypal", + "category": "payment-methods", + "tags": [ + "credit card", + "payment", + "paypal" + ] + }, + { + "name": "card-bw-stripe", + "category": "payment-methods", + "tags": [ + "credit card", + "payment", + "stripe" + ] + }, + { + "name": "card-bw-visa", + "category": "payment-methods", + "tags": [ + "credit card", + "payment", + "visa" + ] + }, + { + "name": "card-update", + "category": "site-settings", + "tags": [ + "buy", + "card", + "charge", + "checkout", + "credit", + "credit card", + "debit", + "finance", + "method", + "methods", + "money", + "refresh", + "reload", + "shop", + "shopping payment", + "subscription", + "sync", + "update" + ] + }, + { + "name": "caret-down", + "category": "actions", + "tags": [ + "arrow", + "bottom", + "descent", + "down", + "downward" + ] + }, + { + "name": "caret-left", + "category": "actions", + "tags": [ + "arrow", + "back", + "backward", + "backwards", + "direction", + "keyboard", + "left", + "move", + "navigation", + "out", + "position", + "previous" + ] + }, + { + "name": "caret-right", + "category": "actions", + "tags": [ + "arrow", + "direction", + "forward", + "keyboard", + "move", + "navigation", + "next", + "onward", + "onwards", + "out", + "position", + "right" + ] + }, + { + "name": "caret-up", + "category": "actions", + "tags": [ + "arrow", + "direction", + "keyboard", + "move", + "navigation", + "out", + "position", + "top", + "up", + "upward", + "upwards" + ] + }, + { + "name": "cart", + "category": "features", + "tags": [ + "bag", + "basket", + "but", + "cart", + "checkout", + "ecommerce", + "retail", + "sale", + "shop", + "shopping", + "trolley" + ] + }, + { + "name": "cart-add", + "category": "features", + "tags": [ + "add", + "bag", + "basket", + "but", + "cart", + "checkout", + "ecommerce", + "new", + "plus", + "retail", + "sale", + "shop", + "shopping", + "trolley" + ] + }, + { + "name": "certificate", + "category": "actions", + "tags": [ + "award", + "business", + "certificate", + "degree", + "diploma", + "education", + "finance", + "license", + "patent", + "ribbon", + "school" + ] + }, + { + "name": "check", + "category": "actions", + "tags": [ + "accept", + "approve", + "approved", + "check", + "checkbox", + "checked", + "checkmark", + "complete", + "completed", + "done", + "mark", + "ok", + "select", + "selected", + "success", + "tick" + ] + }, + { + "name": "check-circle", + "category": "dialogues", + "tags": [ + "accept", + "approve", + "approved", + "check", + "checkbox", + "checked", + "checkmark", + "complete", + "completed", + "done", + "interface", + "mark", + "ok", + "sage-icon-check-circle", + "select", + "selected", + "success", + "tick", + "ui" + ] + }, + { + "name": "check-circle-filled", + "category": "dialogues", + "tags": [ + "accept", + "approve", + "approved", + "check", + "checkbox", + "checked", + "checkmark", + "complete", + "completed", + "done", + "interface", + "mark", + "ok", + "sage-icon-check-circle", + "select", + "selected", + "success", + "tick", + "ui" + ] + }, + { + "name": "circle-1", + "category": "number", + "tags": [ + "sage-icon-one" + ] + }, + { + "name": "circle-2", + "category": "number", + "tags": [ + "sage-icon-two" + ] + }, + { + "name": "circle-3", + "category": "number", + "tags": [ + "sage-icon-three" + ] + }, + { + "name": "circle-4", + "category": "number", + "tags": [ + "sage-icon-four" + ] + }, + { + "name": "circle-5", + "category": "number", + "tags": [ + "sage-icon-five" + ] + }, + { + "name": "circle-6", + "category": "number", + "tags": [ + "sage-icon-six" + ] + }, + { + "name": "circle-7", + "category": "number", + "tags": [ + "sage-icon-seven" + ] + }, + { + "name": "circle-8", + "category": "number", + "tags": [ + "sage-icon-eight" + ] + }, + { + "name": "circle-9", + "category": "number", + "tags": [ + "sage-icon-nine" + ] + }, + { + "name": "clock", + "category": "actions", + "tags": [ + "alarm", + "alert", + "appointment", + "availability", + "available", + "clock", + "countdown", + "daily", + "day", + "deadline", + "event", + "hostory", + "hour", + "monthly", + "progress", + "schedule", + "time", + "timer", + "track", + "tracking", + "wait", + "watch", + "weekly", + "yearly" + ] + }, + { + "name": "closed-captions", + "category": "actions", + "tags": [ + "accessibility", + "accessible", + "captioning", + "cc", + "closed", + "information", + "interpretive", + "subtitles", + "television", + "text" + ] + }, + { + "name": "code", + "category": "text-editor", + "tags": [ + "code" + ] + }, + { + "name": "color", + "category": "text-editor", + "tags": [ + "color" + ] + }, + { + "name": "columns", + "category": "actions", + "tags": [ + "board", + "columns", + "grid", + "list", + "template" + ] + }, + { + "name": "comment", + "category": "features", + "tags": [ + "answer", + "bubble", + "bubbles", + "chat", + "comment", + "comments", + "communication", + "conversation", + "dialog", + "forum", + "message", + "messages", + "reply", + "speaking", + "talk" + ] + }, + { + "name": "connect", + "category": "features", + "tags": [ + "attachment", + "chain", + "connection", + "connections", + "hyperlink", + "link", + "linked", + "links", + "share", + "url", + "web" + ] + }, + { + "name": "contact", + "category": "features", + "tags": [ + "access", + "badge", + "card", + "contact", + "document", + "human", + "identification", + "identity", + "login", + "man", + "member", + "profile", + "tag", + "user", + "users" + ] + }, + { + "name": "contacts-filled", + "category": "navigation", + "tags": [ + "contacts", + "nav", + "navigation" + ] + }, + { + "name": "contacts-outline", + "category": "navigation", + "tags": [ + "nav", + "navigation", + "sage-icon-user-circle" + ] + }, + { + "name": "conversation", + "category": "actions", + "tags": [ + "bubble", + "bubbles", + "chat", + "comment", + "comments", + "communication", + "conversation", + "dialog", + "forum", + "message", + "messages", + "speaking", + "talk" + ] + }, + { + "name": "copy", + "category": "actions", + "tags": [ + "backup", + "clone", + "copies", + "copy", + "document", + "duplicate", + "file", + "files", + "group", + "layer", + "layers", + "note", + "paper", + "paste", + "report", + "separate", + "split", + "ungroup" + ] + }, + { + "name": "coupon", + "category": "features", + "tags": [ + "coupon", + "deal", + "discount", + "ecommerce", + "offer", + "reduction", + "sale", + "shop", + "shopping", + "ticket" + ] + }, + { + "name": "course", + "category": "features", + "tags": [ + "app", + "boxes", + "browser", + "content", + "description", + "design", + "development", + "document", + "grid", + "header", + "image", + "internet", + "layout", + "list", + "masonry", + "mockup", + "page", + "paragraph", + "photo", + "picture", + "sidebar", + "site", + "tab", + "table", + "text", + "tile", + "view", + "web", + "webpage", + "website", + "wireframe" + ] + }, + { + "name": "creator-studio", + "category": "actions", + "tags": [ + "album", + "camera", + "episodes", + "film", + "gallery", + "media", + "movie", + "photography", + "player", + "playlist", + "video", + "video-gallery", + "youtube" + ] + }, + { + "name": "creator-studio-filled", + "category": "actions", + "tags": [ + "album", + "camera", + "episodes", + "film", + "gallery", + "media", + "movie", + "photography", + "player", + "playlist", + "video", + "video-gallery", + "youtube" + ] + }, + { + "name": "credit-card", + "category": "site-settings", + "tags": [ + "buy", + "card", + "charge", + "checkout", + "credit", + "credit card", + "debit", + "finance", + "method", + "methods", + "money", + "payment", + "shop", + "shopping" + ] + }, + { + "name": "custom-field", + "category": "actions", + "tags": [ + "bookmarks", + "collection", + "favorite", + "favourites", + "group", + "list", + "star", + "watchlist" + ] + }, + { + "name": "customize", + "category": "actions", + "tags": [ + "art", + "artist", + "brush", + "color", + "colors", + "design", + "draw", + "paint", + "painter", + "painting", + "palette", + "swatches", + "tool" + ] + }, + { + "name": "danger", + "category": "dialogues", + "tags": [ + "alert", + "attention", + "caution", + "danger", + "error", + "exclamation", + "info", + "information", + "interface", + "mark", + "notification", + "sage-icons-danger", + "sign", + "stop", + "ui", + "warning" + ] + }, + { + "name": "danger-filled", + "category": "dialogues", + "tags": [ + "alert", + "attention", + "caution", + "danger", + "error", + "exclamation", + "info", + "information", + "interface", + "mark", + "notification", + "sage-icons-danger", + "sign", + "stop", + "ui", + "warning" + ] + }, + { + "name": "dashboard-filled", + "category": "navigation", + "tags": [ + "address", + "apartment", + "building", + "estate", + "home", + "home", + "homepage", + "house", + "interface", + "local", + "nav", + "navigation", + "office", + "page", + "real", + "shelter", + "ui" + ] + }, + { + "name": "dashboard-outline", + "category": "navigation", + "tags": [ + "address", + "apartment", + "building", + "estate", + "home", + "home", + "homepage", + "house", + "interface", + "local", + "nav", + "navigation", + "office", + "page", + "real", + "shelter", + "ui" + ] + }, + { + "name": "delete-circle", + "category": "actions", + "tags": [ + "cancel", + "close", + "decrease", + "delete", + "deletion", + "exit", + "less", + "minus", + "removal", + "remove", + "subtract" + ] + }, + { + "name": "delete-key", + "category": "actions", + "tags": [ + "arrow", + "back", + "backward", + "delete", + "direction", + "key", + "keyboard", + "left", + "previous", + "remove" + ] + }, + { + "name": "delete-x", + "category": "actions", + "tags": [ + "arrow", + "back", + "backward", + "cross", + "delete", + "direction", + "key", + "keyboard", + "left", + "previous", + "remove" + ] + }, + { + "name": "dollar-sign", + "category": "actions", + "tags": [ + "business", + "cash", + "currency", + "dollar", + "finance", + "funding", + "investment", + "money", + "shopping" + ] + }, + { + "name": "dot-menu-horizontal", + "category": "actions", + "tags": [ + "circle", + "circles", + "dot", + "dot", + "dots", + "gallery", + "interface", + "list", + "menu", + "more", + "navigation", + "options", + "overflow", + "settings" + ] + }, + { + "name": "down-small", + "category": "actions", + "tags": [ + "arrow", + "bottom", + "descend", + "down", + "downward" + ] + }, + { + "name": "download", + "category": "actions", + "tags": [ + "arrow", + "bottom", + "data", + "descend", + "down", + "download", + "downward", + "export", + "file", + "input", + "save", + "share", + "storage", + "transfer" + ] + }, + { + "name": "downsell", + "category": "actions", + "tags": [ + "arrow", + "corner", + "direction", + "keyboard", + "move", + "navigation", + "next", + "out", + "position", + "right" + ] + }, + { + "name": "draft", + "category": "features", + "tags": [ + "article", + "blog", + "content", + "document", + "draft", + "file", + "folded", + "folder", + "item", + "letter", + "note", + "page", + "paper", + "post", + "report", + "sheet", + "single", + "text" + ] + }, + { + "name": "drop", + "category": "features", + "tags": [ + "animal", + "blood", + "drip", + "dripping", + "drop", + "droplet", + "energy", + "environment", + "health", + "healthcare", + "humid", + "ink", + "liquid", + "medical", + "nature", + "oil", + "petroleum", + "rain", + "tear", + "water", + "weather", + "wet" + ] + }, + { + "name": "duplicate", + "category": "actions", + "tags": [ + "content", + "copy", + "document", + "documents", + "draft", + "duplicate", + "file", + "files", + "folder", + "group", + "item", + "letter", + "note", + "page", + "paper", + "report", + "sheet", + "single", + "text" + ] + }, + { + "name": "email-activity", + "category": "actions", + "tags": [ + "business", + "chart", + "computer", + "finance", + "graph", + "laptop", + "progress" + ] + }, + { + "name": "emoji", + "category": "actions", + "tags": [ + "cheerful", + "emoticon", + "happy", + "laugh", + "mouth", + "open", + "positive", + "smile", + "smiley" + ] + }, + { + "name": "enlarge", + "category": "actions", + "tags": [ + "arrow", + "arrows", + "direction", + "down", + "enlarge", + "expand", + "increase", + "maximize", + "select", + "up", + "vertical" + ] + }, + { + "name": "enlarge-vertical", + "category": "actions", + "tags": [ + "arrow", + "direction", + "enlarge", + "expand", + "fullscreen", + "increase", + "maximize", + "move", + "out", + "reach", + "vertical", + "window", + "zoom" + ] + }, + { + "name": "expand", + "category": "actions", + "tags": [ + "arrow", + "disperse", + "enlarge", + "expand", + "fullscreen", + "increase", + "maximize", + "move", + "out", + "reach", + "window", + "zoom" + ] + }, + { + "name": "facebook", + "category": "social", + "tags": [ + "facebook" + ] + }, + { + "name": "facebook-2", + "category": "social", + "tags": [ + "2", + "facebook" + ] + }, + { + "name": "favorite", + "category": "actions", + "tags": [ + "award", + "dating", + "day", + "favorite", + "favourite", + "health", + "healthcare", + "heart", + "like", + "love", + "medical", + "relationship", + "romance", + "romantic", + "valentine", + "wishlist" + ] + }, + { + "name": "feedback", + "category": "features", + "tags": [ + "bubble", + "chat", + "comment", + "customer", + "feedback", + "message", + "opinion", + "rating", + "review", + "talk" + ] + }, + { + "name": "file", + "category": "actions", + "tags": [ + "article", + "blog", + "content", + "document", + "draft", + "file", + "folded", + "folder", + "item", + "letter", + "note", + "page", + "paper", + "post", + "report", + "sheet", + "single", + "text" + ] + }, + { + "name": "file-money", + "category": "site-settings", + "tags": [ + "agreement", + "bill", + "certificate", + "document", + "dollar", + "file", + "folder", + "format", + "invoice", + "item", + "money", + "order", + "paper", + "payment", + "receipt" + ] + }, + { + "name": "filter", + "category": "actions", + "tags": [ + "categories", + "category", + "filter", + "filtering", + "filters", + "funnel", + "refine", + "search", + "seo", + "settings", + "sort", + "tool" + ] + }, + { + "name": "flag", + "category": "dialogues", + "tags": [ + "alert", + "banner", + "flag", + "important", + "location", + "map", + "maps", + "message", + "notify", + "tag" + ] + }, + { + "name": "folder", + "category": "features", + "tags": [ + "archive", + "catalog", + "document", + "documents", + "envelope", + "file", + "files", + "folder", + "format", + "office", + "paper" + ] + }, + { + "name": "folder-group", + "category": "features", + "tags": [ + "archive", + "catalog", + "document", + "documents", + "envelope", + "file", + "files", + "folder", + "folders", + "format", + "office", + "paper" + ] + }, + { + "name": "form", + "category": "actions", + "tags": [ + "article", + "blog", + "clipboard", + "content", + "document", + "draft", + "file", + "folded", + "folder", + "item", + "letter", + "note", + "notebook", + "notepad", + "notes", + "pad", + "page", + "paper", + "post", + "report", + "sheet", + "single", + "text" + ] + }, + { + "name": "form-field", + "category": "features", + "tags": [ + "backup", + "cloud", + "data", + "ftp", + "hosting", + "rack", + "server", + "storage", + "sync" + ] + }, + { + "name": "fullscreen", + "category": "text-editor", + "tags": [ + "fullscreen" + ] + }, + { + "name": "funnel", + "category": "features", + "tags": [ + "categories", + "category", + "filter", + "filtering", + "filters", + "funnel", + "interface", + "refine", + "search", + "seo", + "settings", + "sort", + "tool", + "ui" + ] + }, + { + "name": "grant-offer", + "category": "actions", + "tags": [ + "box", + "christmas", + "exchange", + "gift", + "gift", + "holidays", + "package", + "present" + ] + }, + { + "name": "handle", + "category": "actions", + "tags": [ + "bars", + "grab", + "grabber", + "handle", + "lines", + "list", + "menu", + "options" + ] + }, + { + "name": "handle-2", + "category": "actions", + "tags": [ + "dots", + "grab", + "grabber", + "handle", + "menu", + "options" + ] + }, + { + "name": "handle-2-vertical", + "category": "actions", + "tags": [ + "dots", + "grab", + "grabber", + "handle", + "menu", + "options" + ] + }, + { + "name": "hashtag", + "category": "actions", + "tags": [ + "hash", + "hashtag", + "href", + "link", + "mark", + "number", + "pound", + "sign", + "trending" + ] + }, + { + "name": "heading-large", + "category": "text-editor", + "tags": [ + "heading", + "large" + ] + }, + { + "name": "heading-small", + "category": "text-editor", + "tags": [ + "heading", + "small" + ] + }, + { + "name": "headset", + "category": "features", + "tags": [ + "answer", + "audio", + "communication", + "conversation", + "customer", + "dialog", + "headphone", + "headphones", + "headset", + "help", + "listen", + "service", + "speaking", + "support", + "talk", + "tech" + ] + }, + { + "name": "help-filled", + "category": "navigation", + "tags": [ + "help", + "nav", + "navigation" + ] + }, + { + "name": "help-outline", + "category": "navigation", + "tags": [ + "help", + "nav", + "navigation" + ] + }, + { + "name": "home-alt", + "category": "site-settings", + "tags": [ + "address", + "apartment", + "building", + "estate", + "home", + "home", + "homepage", + "house", + "interface", + "local", + "nav", + "navigation", + "office", + "page", + "real", + "shelter", + "ui" + ] + }, + { + "name": "horizontal-line", + "category": "text-editor", + "tags": [ + "horizontal", + "line" + ] + }, + { + "name": "image", + "category": "actions", + "tags": [ + "album", + "canvas", + "format", + "gallery", + "graphic", + "image", + "landscape", + "media", + "multimedia", + "photo", + "photography", + "picture" + ] + }, + { + "name": "info-circle", + "category": "dialogues", + "tags": [ + "about", + "alert", + "faq", + "help", + "info", + "information", + "interface", + "notification", + "sign", + "support", + "tooltip", + "travel", + "ui" + ] + }, + { + "name": "info-circle-filled", + "category": "dialogues", + "tags": [ + "about", + "alert", + "faq", + "help", + "info", + "information", + "interface", + "notification", + "sign", + "support", + "tooltip", + "travel", + "ui" + ] + }, + { + "name": "instagram", + "category": "social", + "tags": [ + "instagram" + ] + }, + { + "name": "ios-battery", + "category": "device-specific", + "tags": [ + "For iOS use only" + ] + }, + { + "name": "ios-data", + "category": "device-specific", + "tags": [ + "For iOS use only" + ] + }, + { + "name": "ios-wifi", + "category": "device-specific", + "tags": [ + "For iOS use only" + ] + }, + { + "name": "italic", + "category": "text-editor", + "tags": [ + "italic" + ] + }, + { + "name": "kajabi-filled", + "category": "site-settings", + "tags": [ + "kajabi", + "logo" + ] + }, + { + "name": "kajabi-outlined", + "category": "site-settings", + "tags": [ + "kajabi", + "logo" + ] + }, + { + "name": "lab", + "category": "features", + "tags": [ + "beaker", + "chemical", + "drug", + "education", + "equipment", + "experiment", + "flask", + "glass", + "healthcare", + "laboratory", + "medical", + "research", + "school", + "science", + "study", + "test", + "tube" + ] + }, + { + "name": "launch", + "category": "actions", + "tags": [ + "arrow", + "connection", + "export", + "file", + "launch", + "network", + "outbox", + "output", + "share", + "sharing", + "social", + "start", + "storage", + "transfer", + "up", + "upload" + ] + }, + { + "name": "layout-grid", + "category": "actions", + "tags": [ + "boxes", + "column", + "gallery", + "grid", + "layout", + "row", + "shape", + "square", + "squares", + "table", + "tile", + "view" + ] + }, + { + "name": "layout-list", + "category": "actions", + "tags": [ + "bars", + "content", + "description", + "document", + "layout", + "lines", + "list", + "listing", + "organize", + "page", + "paragraph", + "tasks", + "text", + "text", + "todo" + ] + }, + { + "name": "left-small", + "category": "actions", + "tags": [ + "arrow", + "back", + "backward", + "backwards", + "direction", + "keyboard", + "left", + "move", + "navigation", + "out", + "position", + "previous" + ] + }, + { + "name": "linkedin", + "category": "social", + "tags": [ + "linkedin" + ] + }, + { + "name": "list-bullet", + "category": "text-editor", + "tags": [ + "bullet", + "list" + ] + }, + { + "name": "list-numbers", + "category": "text-editor", + "tags": [ + "list", + "numbers" + ] + }, + { + "name": "location", + "category": "features", + "tags": [ + "direction", + "gps", + "location", + "map", + "marker", + "navigation", + "pin", + "pin", + "place", + "position" + ] + }, + { + "name": "lock", + "category": "features", + "tags": [ + "closed", + "encryption", + "lock", + "locked", + "login", + "padlock", + "password", + "policy", + "privacy", + "protect", + "protected", + "protection", + "safe", + "safety", + "secure", + "security" + ] + }, + { + "name": "lock-alt", + "category": "site-settings", + "tags": [ + "closed", + "encryption", + "lock", + "locked", + "login", + "padlock", + "password", + "policy", + "privacy", + "protect", + "protected", + "protection", + "safe", + "safety", + "secure", + "security" + ] + }, + { + "name": "logo-afterpay", + "category": "payment-methods", + "tags": [ + "afterpay", + "logo" + ] + }, + { + "name": "loop", + "category": "actions", + "tags": [ + "arrow", + "arrows", + "infinite", + "infinity", + "load", + "loading", + "loop", + "process", + "refresh", + "reload", + "repeat", + "replay", + "sync", + "update" + ] + }, + { + "name": "mail", + "category": "features", + "tags": [ + "communication", + "contact", + "email", + "envelope", + "letter", + "mail", + "mailbox", + "message", + "messages", + "news", + "newsletter", + "post", + "send", + "write" + ] + }, + { + "name": "mapped", + "category": "features", + "tags": [ + "address", + "approved", + "check", + "checked", + "complete", + "completed", + "direction", + "done", + "gps", + "location", + "map", + "mark", + "navigation", + "position", + "route", + "street", + "tick" + ] + }, + { + "name": "margin-left", + "category": "text-editor", + "tags": [ + "left", + "margin" + ] + }, + { + "name": "margin-right", + "category": "text-editor", + "tags": [ + "margin", + "right" + ] + }, + { + "name": "marker", + "category": "actions", + "tags": [ + "design", + "education", + "focus", + "highlight", + "highlighter", + "important", + "marker", + "office", + "pen", + "pencil", + "school", + "stationery", + "underline", + "write" + ] + }, + { + "name": "marker-filled", + "category": "actions", + "tags": [ + "design", + "education", + "focus", + "highlight", + "highlighter", + "important", + "marker", + "office", + "pen", + "pencil", + "school", + "stationery", + "underline", + "write" + ] + }, + { + "name": "marketing-filled", + "category": "navigation", + "tags": [ + "alarm", + "alert", + "announce", + "announcement", + "attention", + "audio", + "chat", + "communication", + "interface", + "megaphone", + "message", + "music", + "nav", + "navigation", + "notification", + "shout", + "sound", + "speaker", + "ui", + "update", + "voice", + "volume" + ] + }, + { + "name": "marketing-outline", + "category": "navigation", + "tags": [ + "alarm", + "alert", + "announce", + "announcement", + "attention", + "audio", + "chat", + "communication", + "interface", + "megaphone", + "message", + "music", + "nav", + "navigation", + "notification", + "shout", + "sound", + "speaker", + "ui", + "update", + "voice", + "volume" + ] + }, + { + "name": "menu", + "category": "actions", + "tags": [ + "bars", + "burger", + "gallery", + "hamburger", + "lines", + "list", + "menu", + "navigation", + "options", + "settings" + ] + }, + { + "name": "menu-2", + "category": "site-settings", + "tags": [ + "bars", + "burger", + "gallery", + "hamburger", + "interface", + "lines", + "list", + "menu", + "navigation", + "options", + "settings", + "ui" + ] + }, + { + "name": "menu-alt", + "category": "actions", + "tags": [ + "bars", + "burger", + "gallery", + "hamburger", + "lines", + "list", + "menu", + "navigation", + "options", + "settings" + ] + }, + { + "name": "merge", + "category": "actions", + "tags": [ + "arrow", + "combine", + "control", + "direction", + "expand", + "git", + "join", + "merge", + "pointing", + "together", + "unify", + "unite", + "version" + ] + }, + { + "name": "microphone", + "category": "features", + "tags": [ + "audio", + "media", + "mic", + "microphone", + "multimedia", + "speaker" + ] + }, + { + "name": "microphone-off", + "category": "actions", + "tags": [ + "audio", + "media", + "mic", + "microphone", + "multimedia", + "mute", + "off", + "speaker" + ] + }, + { + "name": "move-left", + "category": "actions", + "tags": [ + "arrow", + "back", + "backward", + "backwards", + "direction", + "keyboard", + "left", + "move", + "navigation", + "out", + "position", + "previous" + ] + }, + { + "name": "move-right", + "category": "actions", + "tags": [ + "arrow", + "direction", + "forward", + "keyboard", + "move", + "navigation", + "next", + "onward", + "onwards", + "out", + "position", + "right" + ] + }, + { + "name": "multi-pay", + "category": "actions", + "tags": [ + "banknotes", + "business", + "cash", + "dollar", + "finance", + "money", + "payment" + ] + }, + { + "name": "newsletter", + "category": "site-settings", + "tags": [ + "communication", + "contact", + "email", + "envelope", + "letter", + "mail", + "mailbox", + "message", + "messages", + "news", + "newsletter", + "post", + "send", + "shopping", + "subscribe", + "write" + ] + }, + { + "name": "one-off-session", + "category": "features", + "tags": [ + "sage-icon-session" + ] + }, + { + "name": "one-time", + "category": "actions", + "tags": [ + "banknotes", + "business", + "cash", + "dollar", + "finance", + "money", + "payment" + ] + }, + { + "name": "partners-filled", + "category": "navigation", + "tags": [ + "account", + "avatar", + "contact", + "favorite", + "follower", + "friend", + "human", + "like", + "love", + "man", + "member", + "nav", + "navigation", + "person", + "person", + "profile", + "star", + "user", + "users", + "woman" + ] + }, + { + "name": "partners-outline", + "category": "navigation", + "tags": [ + "account", + "avatar", + "contact", + "favorite", + "follower", + "friend", + "human", + "like", + "love", + "man", + "member", + "nav", + "navigation", + "person", + "person", + "profile", + "sage-icon-user-star", + "star", + "user", + "users", + "woman" + ] + }, + { + "name": "pause", + "category": "actions", + "tags": [ + "pause" + ] + }, + { + "name": "pause-circle", + "category": "actions", + "tags": [ + "button", + "control", + "multimedia", + "pause" + ] + }, + { + "name": "payout", + "category": "features", + "tags": [ + "business", + "cash", + "currency", + "dollar", + "dollar", + "finance", + "funding", + "investment", + "money", + "shopping" + ] + }, + { + "name": "pen", + "category": "actions", + "tags": [ + "compose", + "create", + "design", + "development", + "draft", + "draw", + "edit", + "editing", + "editor", + "education", + "message", + "note", + "pen", + "pencil", + "school", + "text", + "write" + ] + }, + { + "name": "phone-portrait", + "category": "actions", + "tags": [ + "android", + "call", + "communication", + "device", + "iOS", + "iPhone", + "mobile", + "phone", + "smartphone", + "tech", + "technology", + "telephone", + "touchscreen" + ] + }, + { + "name": "phone-toolbar", + "category": "site-settings", + "tags": [ + "android", + "call", + "communication", + "device", + "iOS", + "iPhone", + "menu", + "mobile", + "phone", + "smartphone", + "tech", + "technology", + "telephone", + "toolbar", + "touchscreen" + ] + }, + { + "name": "play", + "category": "actions", + "tags": [ + "button", + "control", + "media", + "multimedia", + "play" + ] + }, + { + "name": "play-circle", + "category": "actions", + "tags": [ + "button", + "control", + "media", + "multimedia", + "play" + ] + }, + { + "name": "play-outline", + "category": "actions", + "tags": [ + "button", + "control", + "media", + "multimedia", + "play" + ] + }, + { + "name": "play-store", + "category": "features", + "tags": [ + "android", + "app", + "application", + "appstore", + "development", + "google", + "market", + "media", + "music", + "play", + "video" + ] + }, + { + "name": "plug", + "category": "site-settings", + "tags": [ + "add-on", + "api", + "application", + "cable", + "development", + "electric", + "electricity", + "energy", + "extension", + "integration", + "jack", + "plug", + "plugin", + "tools", + "widget" + ] + }, + { + "name": "present", + "category": "features", + "tags": [ + "birthday", + "box", + "christmas", + "donation", + "exchange", + "gift", + "package", + "present", + "shopping", + "surprise", + "wrapped" + ] + }, + { + "name": "preview-off", + "category": "actions", + "tags": [ + "blind", + "disabled", + "eye", + "hidden", + "hide", + "invisible", + "look", + "observe", + "overview", + "preview", + "search", + "see", + "sight", + "view", + "visibility", + "visible", + "vision", + "watch" + ] + }, + { + "name": "preview-on", + "category": "actions", + "tags": [ + "eye", + "look", + "observe", + "overview", + "preview", + "search", + "see", + "sight", + "view", + "visibility", + "visible", + "vision", + "watch" + ] + }, + { + "name": "products-filled", + "category": "navigation", + "tags": [ + "block", + "box", + "component", + "cube", + "delivery", + "geometry", + "module", + "nav", + "navigation", + "note", + "package", + "parcel", + "product", + "shape" + ] + }, + { + "name": "products-outline", + "category": "navigation", + "tags": [ + "block", + "box", + "component", + "cube", + "delivery", + "geometry", + "module", + "nav", + "navigation", + "note", + "package", + "parcel", + "product", + "shape" + ] + }, + { + "name": "question-circle", + "category": "dialogues", + "tags": [ + "", + "about", + "alert", + "ask", + "faq", + "help", + "info", + "information", + "interface", + "mark", + "notification", + "query", + "question", + "sage-icon-question-circle", + "sign", + "support", + "tooltip", + "ui" + ] + }, + { + "name": "quote", + "category": "text-editor", + "tags": [ + "quote" + ] + }, + { + "name": "redo", + "category": "text-editor", + "tags": [ + "redo" + ] + }, + { + "name": "refresh", + "category": "actions", + "tags": [ + "", + "arrow", + "arrows", + "infinite", + "infinity", + "load", + "loader", + "loading", + "loop", + "process", + "progress", + "refresh", + "reload", + "repeat", + "replay", + "spinner", + "sync", + "update", + "wait" + ] + }, + { + "name": "remove", + "category": "actions", + "tags": [ + "cancel", + "close", + "cross", + "delete", + "deletion", + "denied", + "discard", + "dismiss", + "exit", + "removal", + "remove", + "wrong", + "x" + ] + }, + { + "name": "remove-circle", + "category": "actions", + "tags": [ + "cancel", + "close", + "cross", + "delete", + "deletion", + "denied", + "discard", + "dismiss", + "exit", + "removal", + "remove", + "wrong", + "x" + ] + }, + { + "name": "rename", + "category": "actions", + "tags": [ + "compose", + "create", + "design", + "development", + "draft", + "draw", + "edit", + "editing", + "editor", + "education", + "message", + "note", + "pen", + "pencil", + "school", + "text", + "write" + ] + }, + { + "name": "reset-password", + "category": "actions", + "tags": [ + "clean", + "clear", + "lock", + "password", + "remove", + "reset" + ] + }, + { + "name": "restore", + "category": "actions", + "tags": [ + "arrow", + "back", + "backup", + "cloud", + "data", + "fix", + "machine", + "refresh", + "restore", + "revert", + "save", + "storage", + "time", + "up", + "watch" + ] + }, + { + "name": "right-small", + "category": "actions", + "tags": [ + "arrow", + "direction", + "forward", + "keyboard", + "move", + "navigation", + "next", + "onward", + "onwards", + "out position", + "right" + ] + }, + { + "name": "round-dollar", + "category": "features", + "tags": [ + "business", + "cashier", + "currency", + "dollar", + "finance", + "money", + "shopping" + ] + }, + { + "name": "rows", + "category": "actions", + "tags": [ + "cells", + "column", + "data", + "database", + "grid", + "rows", + "sheet", + "spreadsheet", + "table" + ] + }, + { + "name": "sales-filled", + "category": "navigation", + "tags": [ + "attribute", + "category", + "discount", + "ecommerce", + "label", + "nav", + "navigation", + "organize", + "price", + "sale", + "shopping", + "store", + "tag" + ] + }, + { + "name": "sales-outline", + "category": "navigation", + "tags": [ + "attribute", + "category", + "discount", + "ecommerce", + "label", + "nav", + "navigation", + "organize", + "price", + "sale", + "shopping", + "store", + "tag" + ] + }, + { + "name": "scissor", + "category": "actions", + "tags": [ + "scissor" + ] + }, + { + "name": "screen-share-off", + "category": "actions", + "tags": [ + "arrow", + "computer", + "connection", + "device", + "disable", + "display", + "monitor", + "network", + "off", + "pc", + "projection", + "projector", + "screen", + "share", + "sharing" + ] + }, + { + "name": "screen-share-on", + "category": "actions", + "tags": [ + "arrow", + "computer", + "connection", + "device", + "disable", + "display", + "monitor", + "network", + "pc", + "projection", + "projector", + "screen", + "share", + "sharing" + ] + }, + { + "name": "search", + "category": "actions", + "tags": [ + "explore", + "find", + "glass", + "lens", + "lookup", + "magnifier", + "magnify", + "magnifying", + "search", + "view", + "zoom" + ] + }, + { + "name": "search-small", + "category": "actions", + "tags": [ + "explore", + "find", + "glass", + "lens", + "lookup", + "magnifier", + "magnify", + "magnifying", + "search", + "view", + "zoom" + ] + }, + { + "name": "send-message", + "category": "actions", + "tags": [ + "airplane", + "communication", + "contact", + "email", + "flight", + "fly", + "letter", + "mail", + "message", + "messages", + "news", + "paper", + "plane", + "send", + "sending", + "write" + ] + }, + { + "name": "sequences", + "category": "features", + "tags": [ + "sage-icon-sequences" + ] + }, + { + "name": "series", + "category": "features", + "tags": [ + "backup", + "clone", + "copies", + "copy", + "document", + "duplicate", + "file", + "files", + "group", + "layer", + "layers", + "note", + "paper", + "paste", + "report", + "separate", + "split", + "ungroup" + ] + }, + { + "name": "settings-filled", + "category": "navigation", + "tags": [ + "adjust", + "adjustment", + "cog", + "cogwheel", + "configuration", + "configure", + "edit", + "filter", + "gear", + "nav", + "navigation", + "option", + "options", + "setting", + "settings", + "setup", + "system", + "tolls", + "tool", + "wheel" + ] + }, + { + "name": "settings-outline", + "category": "navigation", + "tags": [ + "adjust", + "adjustment", + "cog", + "cogwheel", + "configuration", + "configure", + "edit", + "filter", + "gear", + "nav", + "navigation", + "option", + "options", + "setting", + "settings", + "setup", + "system", + "tolls", + "tool", + "wheel" + ] + }, + { + "name": "share", + "category": "actions", + "tags": [ + "arrow", + "connection", + "direction", + "forward", + "keyboard", + "move", + "navigation", + "next", + "onward", + "onwards", + "out", + "position", + "right", + "share", + "social" + ] + }, + { + "name": "skipped", + "category": "features", + "tags": [ + "address", + "approved", + "cancel", + "check", + "checked", + "complete", + "completed", + "direction", + "done", + "gps", + "location", + "map", + "mark", + "navigation", + "position", + "route", + "street", + "tick" + ] + }, + { + "name": "slash-divider", + "category": "actions", + "tags": [ + "divider", + "forward-slash", + "slash" + ] + }, + { + "name": "sparkle", + "category": "actions", + "tags": [ + "brightness", + "edit", + "effect", + "filter", + "light", + "photo", + "spark", + "sparkle" + ] + }, + { + "name": "sparkle-filled", + "category": "actions", + "tags": [ + "brightness", + "edit", + "effect", + "filter", + "light", + "photo", + "spark", + "sparkle" + ] + }, + { + "name": "speaker", + "category": "site-settings", + "tags": [ + "alarm", + "alert", + "announce", + "announcement", + "attention", + "audio", + "chat", + "communication", + "interface", + "megaphone", + "message", + "music", + "nav", + "navigation", + "notification", + "shout", + "sound", + "speaker", + "ui", + "update", + "voice", + "volume" + ] + }, + { + "name": "stack", + "category": "actions", + "tags": [ + "archive", + "layer", + "layering", + "layers", + "order", + "overlay", + "sheet", + "sheets", + "stack", + "stackable", + "stacking" + ] + }, + { + "name": "star", + "category": "actions", + "tags": [ + "achievement", + "best", + "bookmark", + "favorite", + "important", + "like", + "rank", + "rate", + "rating", + "scoring", + "star", + "win review", + "winner" + ] + }, + { + "name": "stop", + "category": "actions", + "tags": [ + "button", + "control", + "multimedia", + "stop" + ] + }, + { + "name": "stopwatch", + "category": "actions", + "tags": [ + "alarm", + "alert", + "chronometer", + "clock", + "countdown", + "deadline", + "event", + "history", + "hour", + "lap", + "measure", + "productivity", + "schedule", + "speed", + "sport", + "stopwatch", + "time", + "timer", + "track", + "tracking", + "watch" + ] + }, + { + "name": "strikethrough", + "category": "text-editor", + "tags": [ + "strikethrough" + ] + }, + { + "name": "subscript", + "category": "text-editor", + "tags": [ + "subscript" + ] + }, + { + "name": "subscriptions", + "category": "actions", + "tags": [ + "arrow", + "back", + "currency", + "dollar", + "exchange", + "money", + "payment", + "refund", + "refundable", + "revery" + ] + }, + { + "name": "super-admin", + "category": "features", + "tags": [ + "admin", + "super" + ] + }, + { + "name": "superscript", + "category": "text-editor", + "tags": [ + "superscript" + ] + }, + { + "name": "sync", + "category": "actions", + "tags": [ + "arrow", + "arrows", + "energy", + "environment", + "exchange", + "infinite", + "infinity", + "load", + "loading", + "loop", + "process", + "refresh", + "reload", + "repeat", + "replay", + "sync", + "update" + ] + }, + { + "name": "tablet-landscape", + "category": "actions", + "tags": [ + "amazon", + "book", + "device", + "ebook", + "ereader", + "iPad", + "kindle", + "mobile", + "read", + "reader", + "tablet", + "touch", + "touchscreen" + ] + }, + { + "name": "tablet-portrait", + "category": "actions", + "tags": [ + "amazon", + "book", + "device", + "ebook", + "ereader", + "iPad", + "kindle", + "mobile", + "read", + "reader", + "tablet", + "touch", + "touchscreen" + ] + }, + { + "name": "text-styles", + "category": "text-editor", + "tags": [ + "styles", + "text" + ] + }, + { + "name": "theme-store", + "category": "features", + "tags": [ + "commerce", + "commercial", + "ecommerce", + "food", + "home", + "mall", + "market", + "online", + "property", + "retail", + "retailer", + "shop", + "shopping", + "store" + ] + }, + { + "name": "thumbs-down", + "category": "actions", + "tags": [ + "dislike", + "down", + "emoticon", + "favorite", + "finger", + "gesture", + "like", + "no", + "thumbs", + "unlike", + "vote" + ] + }, + { + "name": "thumbs-down-filled", + "category": "actions", + "tags": [ + "dislike", + "down", + "emoticon", + "favorite", + "finger", + "gesture", + "like", + "no", + "thumbs", + "unlike", + "vote" + ] + }, + { + "name": "thumbs-up", + "category": "actions", + "tags": [ + "approve", + "favorite", + "favourite", + "finger", + "gesture", + "hand", + "like", + "rate", + "thumb", + "thumbs", + "up", + "vote" + ] + }, + { + "name": "thumbs-up-filled", + "category": "actions", + "tags": [ + "approve", + "favorite", + "favourite", + "finger", + "gesture", + "hand", + "like", + "rate", + "thumb", + "thumbs", + "up", + "vote" + ] + }, + { + "name": "tiktok", + "category": "social", + "tags": [ + "tiktok" + ] + }, + { + "name": "trash", + "category": "actions", + "tags": [ + "bin", + "delete", + "dump", + "garbage", + "rubbish", + "trash", + "trashcan", + "waste" + ] + }, + { + "name": "twitter", + "category": "social", + "tags": [ + "twitter" + ] + }, + { + "name": "underline", + "category": "text-editor", + "tags": [ + "underline" + ] + }, + { + "name": "undo", + "category": "text-editor", + "tags": [ + "undo" + ] + }, + { + "name": "unlock", + "category": "features", + "tags": [ + "closed", + "encryption", + "lock", + "locked", + "login", + "padlock", + "password", + "policy", + "privacy", + "protect", + "protected", + "protection", + "safe", + "safety", + "secure", + "security", + "theft", + "unlock", + "unlocked", + "unsafe", + "unsecure" + ] + }, + { + "name": "unmapped", + "category": "features", + "tags": [ + "address", + "approved", + "check", + "checked", + "complete", + "completed", + "direction", + "done", + "edit", + "gps", + "location", + "map", + "mark", + "modify", + "navigation", + "position", + "route", + "street", + "tick" + ] + }, + { + "name": "up-small", + "category": "actions", + "tags": [ + "arrow", + "direction", + "keyboard", + "move", + "navigation", + "out", + "position", + "top", + "up", + "upward", + "upwards" + ] + }, + { + "name": "upload", + "category": "actions", + "tags": [ + "arrow", + "backup", + "cloud", + "data", + "direction", + "file", + "ftp", + "hosting", + "import", + "input", + "save", + "server", + "share", + "storage", + "top", + "transfer", + "up", + "upload", + "upward" + ] + }, + { + "name": "url", + "category": "actions", + "tags": [ + "chain", + "connection", + "connections", + "editing", + "hyperlink", + "link", + "linked", + "links", + "share", + "text", + "url", + "web" + ] + }, + { + "name": "user", + "category": "actions", + "tags": [ + "account", + "avatar", + "contact", + "follower", + "friend", + "human", + "man", + "member", + "person", + "profile", + "user", + "users", + "woman" + ] + }, + { + "name": "user-filled", + "category": "actions", + "tags": [ + "account", + "avatar", + "contact", + "follower", + "friend", + "human", + "man", + "member", + "person", + "profile", + "user", + "users", + "woman" + ] + }, + { + "name": "users", + "category": "features", + "tags": [ + "account", + "avatar", + "contact", + "follower", + "friend", + "group", + "human", + "man", + "member", + "network", + "person", + "profile", + "team", + "user", + "users", + "woman" + ] + }, + { + "name": "users-wm", + "category": "site-settings", + "tags": [ + "", + "collective", + "community", + "coworking", + "family", + "friends", + "group", + "lineup", + "network", + "organization", + "people", + "players", + "population", + "team", + "user" + ] + }, + { + "name": "video-off", + "category": "actions", + "tags": [ + "ban", + "camera", + "film", + "media", + "movie", + "not allowed", + "off", + "play", + "show", + "video" + ] + }, + { + "name": "video-on", + "category": "actions", + "tags": [ + "camera", + "film", + "media", + "movie", + "play", + "show", + "video" + ] + }, + { + "name": "warning", + "category": "dialogues", + "tags": [ + "alert", + "attention", + "caution", + "danger", + "error", + "exclamation", + "problem", + "red", + "sage-icon-warning", + "sign", + "warning" + ] + }, + { + "name": "warning-filled", + "category": "dialogues", + "tags": [ + "alert", + "attention", + "caution", + "danger", + "error", + "exclamation", + "problem", + "red", + "sage-icon-warning", + "sign", + "warning" + ] + }, + { + "name": "website-filled", + "category": "navigation", + "tags": [ + "apple", + "computer", + "desktop", + "device", + "display", + "imac", + "mac", + "monitor", + "nav", + "navigation", + "pc", + "personal", + "screen", + "tech", + "technology", + "workstation" + ] + }, + { + "name": "website-outline", + "category": "navigation", + "tags": [ + "apple", + "computer", + "desktop", + "device", + "display", + "imac", + "mac", + "monitor", + "nav", + "navigation", + "pc", + "personal", + "screen", + "tech", + "technology", + "workstation" + ] + }, + { + "name": "window-paragraph", + "category": "site-settings", + "tags": [ + "", + "app", + "boxes", + "browser", + "content", + "description", + "design", + "development", + "document", + "grid", + "header", + "image", + "internet", + "layout", + "list", + "masonry", + "mockup", + "page", + "paragraph", + "photo", + "picture", + "sidebar", + "site", + "tab", + "table", + "text", + "tile", + "view", + "web", + "webpage", + "website", + "wireframe" + ] + }, + { + "name": "world", + "category": "site-settings", + "tags": [ + "browser", + "business", + "earth", + "education", + "energy", + "environment", + "finance", + "global", + "globe", + "internet", + "language", + "language", + "map", + "school", + "travel", + "web", + "world" + ] + }, + { + "name": "youtube", + "category": "social", + "tags": [ + "youtube" + ] + } + ] +} diff --git a/src/index-template.html b/src/index-template.html new file mode 100644 index 0000000..e8cff77 --- /dev/null +++ b/src/index-template.html @@ -0,0 +1,41 @@ + + + + + + Stencil Component Starter + + + + + +

Pine Icons

+ +

Changelogs

+ + + {{changelogs}} + +

Examples

+

Default

+ + + +

Default Sizes

+ + + + + +

Custom size

+ + +

Color

+ + +

Accessibility / Aria

+ + + + + diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..2ac6eab --- /dev/null +++ b/src/index.html @@ -0,0 +1,41 @@ + + + + + + Stencil Component Starter + + + + + +

Pine Icons

+ +

Changelogs

+ + + 2023-10-03-changelog.html + +

Examples

+

Default

+ + + +

Default Sizes

+ + + + + +

Custom size

+ + +

Color

+ + +

Accessibility / Aria

+ + + + + diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..468d886 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,2 @@ +export { addIcons } from './components/pds-icon/utils'; +export type { Components, JSX } from './components'; diff --git a/src/svg/access-key.svg b/src/svg/access-key.svg new file mode 100644 index 0000000..d467399 --- /dev/null +++ b/src/svg/access-key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/add-circle.svg b/src/svg/add-circle.svg new file mode 100644 index 0000000..1831840 --- /dev/null +++ b/src/svg/add-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/add-image.svg b/src/svg/add-image.svg new file mode 100644 index 0000000..3a69f0f --- /dev/null +++ b/src/svg/add-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/add-small.svg b/src/svg/add-small.svg new file mode 100644 index 0000000..2e07417 --- /dev/null +++ b/src/svg/add-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/add.svg b/src/svg/add.svg new file mode 100644 index 0000000..9282723 --- /dev/null +++ b/src/svg/add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/ai-sparkle.svg b/src/svg/ai-sparkle.svg new file mode 100644 index 0000000..51018ea --- /dev/null +++ b/src/svg/ai-sparkle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/ai-writer-filled.svg b/src/svg/ai-writer-filled.svg new file mode 100644 index 0000000..f06d916 --- /dev/null +++ b/src/svg/ai-writer-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/ai-writer.svg b/src/svg/ai-writer.svg new file mode 100644 index 0000000..3ffd31c --- /dev/null +++ b/src/svg/ai-writer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/align-center.svg b/src/svg/align-center.svg new file mode 100644 index 0000000..116406e --- /dev/null +++ b/src/svg/align-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/align-justify.svg b/src/svg/align-justify.svg new file mode 100644 index 0000000..869c22c --- /dev/null +++ b/src/svg/align-justify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/align-left.svg b/src/svg/align-left.svg new file mode 100644 index 0000000..b8d0d37 --- /dev/null +++ b/src/svg/align-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/align-right.svg b/src/svg/align-right.svg new file mode 100644 index 0000000..bf962e1 --- /dev/null +++ b/src/svg/align-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/analytics-filled.svg b/src/svg/analytics-filled.svg new file mode 100644 index 0000000..5d29bdb --- /dev/null +++ b/src/svg/analytics-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/analytics-outline.svg b/src/svg/analytics-outline.svg new file mode 100644 index 0000000..1856b27 --- /dev/null +++ b/src/svg/analytics-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/app-store.svg b/src/svg/app-store.svg new file mode 100644 index 0000000..2258191 --- /dev/null +++ b/src/svg/app-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/archive.svg b/src/svg/archive.svg new file mode 100644 index 0000000..a01ebc5 --- /dev/null +++ b/src/svg/archive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/arrow-corner.svg b/src/svg/arrow-corner.svg new file mode 100644 index 0000000..bf98380 --- /dev/null +++ b/src/svg/arrow-corner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/arrow-down.svg b/src/svg/arrow-down.svg new file mode 100644 index 0000000..f5ec38c --- /dev/null +++ b/src/svg/arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/arrow-left.svg b/src/svg/arrow-left.svg new file mode 100644 index 0000000..dbf3cf4 --- /dev/null +++ b/src/svg/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/arrow-right.svg b/src/svg/arrow-right.svg new file mode 100644 index 0000000..226ff14 --- /dev/null +++ b/src/svg/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/arrow-up.svg b/src/svg/arrow-up.svg new file mode 100644 index 0000000..7ef4bdf --- /dev/null +++ b/src/svg/arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/assessment.svg b/src/svg/assessment.svg new file mode 100644 index 0000000..4742784 --- /dev/null +++ b/src/svg/assessment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/at-sign.svg b/src/svg/at-sign.svg new file mode 100644 index 0000000..d577374 --- /dev/null +++ b/src/svg/at-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/attach.svg b/src/svg/attach.svg new file mode 100644 index 0000000..09245cb --- /dev/null +++ b/src/svg/attach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/automations.svg b/src/svg/automations.svg new file mode 100644 index 0000000..9f4bc7d --- /dev/null +++ b/src/svg/automations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/ban.svg b/src/svg/ban.svg new file mode 100644 index 0000000..5bcde43 --- /dev/null +++ b/src/svg/ban.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/bank.svg b/src/svg/bank.svg new file mode 100644 index 0000000..5dab18b --- /dev/null +++ b/src/svg/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/bell.svg b/src/svg/bell.svg new file mode 100644 index 0000000..da79898 --- /dev/null +++ b/src/svg/bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/blog.svg b/src/svg/blog.svg new file mode 100644 index 0000000..1087408 --- /dev/null +++ b/src/svg/blog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/bold.svg b/src/svg/bold.svg new file mode 100644 index 0000000..82fc1a0 --- /dev/null +++ b/src/svg/bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/broadcast.svg b/src/svg/broadcast.svg new file mode 100644 index 0000000..11a3209 --- /dev/null +++ b/src/svg/broadcast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/calendar-date.svg b/src/svg/calendar-date.svg new file mode 100644 index 0000000..97443ef --- /dev/null +++ b/src/svg/calendar-date.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/calendar-schedule.svg b/src/svg/calendar-schedule.svg new file mode 100644 index 0000000..f08d970 --- /dev/null +++ b/src/svg/calendar-schedule.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/calendar-simple.svg b/src/svg/calendar-simple.svg new file mode 100644 index 0000000..18ac4b3 --- /dev/null +++ b/src/svg/calendar-simple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-bw-amex.svg b/src/svg/card-bw-amex.svg new file mode 100644 index 0000000..703baf2 --- /dev/null +++ b/src/svg/card-bw-amex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-bw-apple-card.svg b/src/svg/card-bw-apple-card.svg new file mode 100644 index 0000000..4acdf09 --- /dev/null +++ b/src/svg/card-bw-apple-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-bw-diners-club.svg b/src/svg/card-bw-diners-club.svg new file mode 100644 index 0000000..374f60e --- /dev/null +++ b/src/svg/card-bw-diners-club.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-bw-discover.svg b/src/svg/card-bw-discover.svg new file mode 100644 index 0000000..c57971d --- /dev/null +++ b/src/svg/card-bw-discover.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-bw-gpay-card.svg b/src/svg/card-bw-gpay-card.svg new file mode 100644 index 0000000..98fb3da --- /dev/null +++ b/src/svg/card-bw-gpay-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-bw-mastercard.svg b/src/svg/card-bw-mastercard.svg new file mode 100644 index 0000000..d8105a5 --- /dev/null +++ b/src/svg/card-bw-mastercard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-bw-paypal.svg b/src/svg/card-bw-paypal.svg new file mode 100644 index 0000000..8ea7c94 --- /dev/null +++ b/src/svg/card-bw-paypal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-bw-stripe.svg b/src/svg/card-bw-stripe.svg new file mode 100644 index 0000000..682a69a --- /dev/null +++ b/src/svg/card-bw-stripe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-bw-visa.svg b/src/svg/card-bw-visa.svg new file mode 100644 index 0000000..d922d2c --- /dev/null +++ b/src/svg/card-bw-visa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/card-update.svg b/src/svg/card-update.svg new file mode 100644 index 0000000..bff1278 --- /dev/null +++ b/src/svg/card-update.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/caret-down.svg b/src/svg/caret-down.svg new file mode 100644 index 0000000..2259dce --- /dev/null +++ b/src/svg/caret-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/caret-left.svg b/src/svg/caret-left.svg new file mode 100644 index 0000000..2a5adad --- /dev/null +++ b/src/svg/caret-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/caret-right.svg b/src/svg/caret-right.svg new file mode 100644 index 0000000..96b33e1 --- /dev/null +++ b/src/svg/caret-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/caret-up.svg b/src/svg/caret-up.svg new file mode 100644 index 0000000..8a1d0d3 --- /dev/null +++ b/src/svg/caret-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/cart-add.svg b/src/svg/cart-add.svg new file mode 100644 index 0000000..550b5c8 --- /dev/null +++ b/src/svg/cart-add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/cart.svg b/src/svg/cart.svg new file mode 100644 index 0000000..fb18374 --- /dev/null +++ b/src/svg/cart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/certificate.svg b/src/svg/certificate.svg new file mode 100644 index 0000000..26c7c02 --- /dev/null +++ b/src/svg/certificate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/check-circle-filled.svg b/src/svg/check-circle-filled.svg new file mode 100644 index 0000000..83e354c --- /dev/null +++ b/src/svg/check-circle-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/check-circle.svg b/src/svg/check-circle.svg new file mode 100644 index 0000000..4e2ccc7 --- /dev/null +++ b/src/svg/check-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/check.svg b/src/svg/check.svg new file mode 100644 index 0000000..7808dff --- /dev/null +++ b/src/svg/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/circle-1.svg b/src/svg/circle-1.svg new file mode 100644 index 0000000..d924c05 --- /dev/null +++ b/src/svg/circle-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/circle-2.svg b/src/svg/circle-2.svg new file mode 100644 index 0000000..dc5ceda --- /dev/null +++ b/src/svg/circle-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/circle-3.svg b/src/svg/circle-3.svg new file mode 100644 index 0000000..437d147 --- /dev/null +++ b/src/svg/circle-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/circle-4.svg b/src/svg/circle-4.svg new file mode 100644 index 0000000..26b4b75 --- /dev/null +++ b/src/svg/circle-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/circle-5.svg b/src/svg/circle-5.svg new file mode 100644 index 0000000..5cc6d3d --- /dev/null +++ b/src/svg/circle-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/circle-6.svg b/src/svg/circle-6.svg new file mode 100644 index 0000000..68fce47 --- /dev/null +++ b/src/svg/circle-6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/circle-7.svg b/src/svg/circle-7.svg new file mode 100644 index 0000000..865c34e --- /dev/null +++ b/src/svg/circle-7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/circle-8.svg b/src/svg/circle-8.svg new file mode 100644 index 0000000..8649c66 --- /dev/null +++ b/src/svg/circle-8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/circle-9.svg b/src/svg/circle-9.svg new file mode 100644 index 0000000..73a1ea2 --- /dev/null +++ b/src/svg/circle-9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/clock.svg b/src/svg/clock.svg new file mode 100644 index 0000000..5d0dd1e --- /dev/null +++ b/src/svg/clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/closed-captions.svg b/src/svg/closed-captions.svg new file mode 100644 index 0000000..5e560d6 --- /dev/null +++ b/src/svg/closed-captions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/code.svg b/src/svg/code.svg new file mode 100644 index 0000000..7e9256a --- /dev/null +++ b/src/svg/code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/color.svg b/src/svg/color.svg new file mode 100644 index 0000000..211a090 --- /dev/null +++ b/src/svg/color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/columns.svg b/src/svg/columns.svg new file mode 100644 index 0000000..2844dc3 --- /dev/null +++ b/src/svg/columns.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/comment.svg b/src/svg/comment.svg new file mode 100644 index 0000000..7140e24 --- /dev/null +++ b/src/svg/comment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/connect.svg b/src/svg/connect.svg new file mode 100644 index 0000000..0fdccd2 --- /dev/null +++ b/src/svg/connect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/contact.svg b/src/svg/contact.svg new file mode 100644 index 0000000..fc23e35 --- /dev/null +++ b/src/svg/contact.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/contacts-filled.svg b/src/svg/contacts-filled.svg new file mode 100644 index 0000000..2844a34 --- /dev/null +++ b/src/svg/contacts-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/contacts-outline.svg b/src/svg/contacts-outline.svg new file mode 100644 index 0000000..24cff86 --- /dev/null +++ b/src/svg/contacts-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/conversation.svg b/src/svg/conversation.svg new file mode 100644 index 0000000..80667c1 --- /dev/null +++ b/src/svg/conversation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/copy.svg b/src/svg/copy.svg new file mode 100644 index 0000000..2bb6434 --- /dev/null +++ b/src/svg/copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/coupon.svg b/src/svg/coupon.svg new file mode 100644 index 0000000..ee98c8a --- /dev/null +++ b/src/svg/coupon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/course.svg b/src/svg/course.svg new file mode 100644 index 0000000..e8fcf99 --- /dev/null +++ b/src/svg/course.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/creator-studio-filled.svg b/src/svg/creator-studio-filled.svg new file mode 100644 index 0000000..88a90cd --- /dev/null +++ b/src/svg/creator-studio-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/creator-studio.svg b/src/svg/creator-studio.svg new file mode 100644 index 0000000..738c347 --- /dev/null +++ b/src/svg/creator-studio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/credit-card.svg b/src/svg/credit-card.svg new file mode 100644 index 0000000..f9e1c05 --- /dev/null +++ b/src/svg/credit-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/custom-field.svg b/src/svg/custom-field.svg new file mode 100644 index 0000000..4c8fcb2 --- /dev/null +++ b/src/svg/custom-field.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/customize.svg b/src/svg/customize.svg new file mode 100644 index 0000000..35cff78 --- /dev/null +++ b/src/svg/customize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/danger-filled.svg b/src/svg/danger-filled.svg new file mode 100644 index 0000000..7afa4f4 --- /dev/null +++ b/src/svg/danger-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/danger.svg b/src/svg/danger.svg new file mode 100644 index 0000000..351867f --- /dev/null +++ b/src/svg/danger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/dashboard-filled.svg b/src/svg/dashboard-filled.svg new file mode 100644 index 0000000..098cd55 --- /dev/null +++ b/src/svg/dashboard-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/dashboard-outline.svg b/src/svg/dashboard-outline.svg new file mode 100644 index 0000000..8f1cf6e --- /dev/null +++ b/src/svg/dashboard-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/delete-circle.svg b/src/svg/delete-circle.svg new file mode 100644 index 0000000..2c6451b --- /dev/null +++ b/src/svg/delete-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/delete-key.svg b/src/svg/delete-key.svg new file mode 100644 index 0000000..dae9fb6 --- /dev/null +++ b/src/svg/delete-key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/delete-x.svg b/src/svg/delete-x.svg new file mode 100644 index 0000000..3b67b99 --- /dev/null +++ b/src/svg/delete-x.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/dollar-sign.svg b/src/svg/dollar-sign.svg new file mode 100644 index 0000000..6ccaf17 --- /dev/null +++ b/src/svg/dollar-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/dot-menu-horizontal.svg b/src/svg/dot-menu-horizontal.svg new file mode 100644 index 0000000..f93bbf5 --- /dev/null +++ b/src/svg/dot-menu-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/down-small.svg b/src/svg/down-small.svg new file mode 100644 index 0000000..c44db03 --- /dev/null +++ b/src/svg/down-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/download.svg b/src/svg/download.svg new file mode 100644 index 0000000..2bc3076 --- /dev/null +++ b/src/svg/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/downsell.svg b/src/svg/downsell.svg new file mode 100644 index 0000000..6e95cce --- /dev/null +++ b/src/svg/downsell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/draft.svg b/src/svg/draft.svg new file mode 100644 index 0000000..5ef8e18 --- /dev/null +++ b/src/svg/draft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/drop.svg b/src/svg/drop.svg new file mode 100644 index 0000000..30fba00 --- /dev/null +++ b/src/svg/drop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/duplicate.svg b/src/svg/duplicate.svg new file mode 100644 index 0000000..b287bad --- /dev/null +++ b/src/svg/duplicate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/email-activity.svg b/src/svg/email-activity.svg new file mode 100644 index 0000000..3d19146 --- /dev/null +++ b/src/svg/email-activity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/emoji.svg b/src/svg/emoji.svg new file mode 100644 index 0000000..55e568b --- /dev/null +++ b/src/svg/emoji.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/enlarge-vertical.svg b/src/svg/enlarge-vertical.svg new file mode 100644 index 0000000..54b31be --- /dev/null +++ b/src/svg/enlarge-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/enlarge.svg b/src/svg/enlarge.svg new file mode 100644 index 0000000..41f451c --- /dev/null +++ b/src/svg/enlarge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/expand.svg b/src/svg/expand.svg new file mode 100644 index 0000000..1a89b99 --- /dev/null +++ b/src/svg/expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/facebook-2.svg b/src/svg/facebook-2.svg new file mode 100644 index 0000000..9936bca --- /dev/null +++ b/src/svg/facebook-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/facebook.svg b/src/svg/facebook.svg new file mode 100644 index 0000000..2c7159c --- /dev/null +++ b/src/svg/facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/favorite.svg b/src/svg/favorite.svg new file mode 100644 index 0000000..0847aaf --- /dev/null +++ b/src/svg/favorite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/feedback.svg b/src/svg/feedback.svg new file mode 100644 index 0000000..d68f830 --- /dev/null +++ b/src/svg/feedback.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/file-money.svg b/src/svg/file-money.svg new file mode 100644 index 0000000..2838ca9 --- /dev/null +++ b/src/svg/file-money.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/file.svg b/src/svg/file.svg new file mode 100644 index 0000000..519ca57 --- /dev/null +++ b/src/svg/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/filter.svg b/src/svg/filter.svg new file mode 100644 index 0000000..589689c --- /dev/null +++ b/src/svg/filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/flag.svg b/src/svg/flag.svg new file mode 100644 index 0000000..d33590d --- /dev/null +++ b/src/svg/flag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/folder-group.svg b/src/svg/folder-group.svg new file mode 100644 index 0000000..b054bc7 --- /dev/null +++ b/src/svg/folder-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/folder.svg b/src/svg/folder.svg new file mode 100644 index 0000000..61aa189 --- /dev/null +++ b/src/svg/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/form-field.svg b/src/svg/form-field.svg new file mode 100644 index 0000000..b1cc304 --- /dev/null +++ b/src/svg/form-field.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/form.svg b/src/svg/form.svg new file mode 100644 index 0000000..ddf4952 --- /dev/null +++ b/src/svg/form.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/fullscreen.svg b/src/svg/fullscreen.svg new file mode 100644 index 0000000..6777e87 --- /dev/null +++ b/src/svg/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/funnel.svg b/src/svg/funnel.svg new file mode 100644 index 0000000..e6a8e36 --- /dev/null +++ b/src/svg/funnel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/grant-offer.svg b/src/svg/grant-offer.svg new file mode 100644 index 0000000..900550a --- /dev/null +++ b/src/svg/grant-offer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/handle-2-vertical.svg b/src/svg/handle-2-vertical.svg new file mode 100644 index 0000000..5b4360f --- /dev/null +++ b/src/svg/handle-2-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/handle-2.svg b/src/svg/handle-2.svg new file mode 100644 index 0000000..9b685c8 --- /dev/null +++ b/src/svg/handle-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/handle.svg b/src/svg/handle.svg new file mode 100644 index 0000000..33fbbce --- /dev/null +++ b/src/svg/handle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/hashtag.svg b/src/svg/hashtag.svg new file mode 100644 index 0000000..681b284 --- /dev/null +++ b/src/svg/hashtag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/heading-large.svg b/src/svg/heading-large.svg new file mode 100644 index 0000000..e21420d --- /dev/null +++ b/src/svg/heading-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/heading-small.svg b/src/svg/heading-small.svg new file mode 100644 index 0000000..7e04f4c --- /dev/null +++ b/src/svg/heading-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/headset.svg b/src/svg/headset.svg new file mode 100644 index 0000000..bda6f25 --- /dev/null +++ b/src/svg/headset.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/help-filled.svg b/src/svg/help-filled.svg new file mode 100644 index 0000000..9b5de14 --- /dev/null +++ b/src/svg/help-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/help-outline.svg b/src/svg/help-outline.svg new file mode 100644 index 0000000..6736695 --- /dev/null +++ b/src/svg/help-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/home-alt.svg b/src/svg/home-alt.svg new file mode 100644 index 0000000..be6aca4 --- /dev/null +++ b/src/svg/home-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/horizontal-line.svg b/src/svg/horizontal-line.svg new file mode 100644 index 0000000..7654156 --- /dev/null +++ b/src/svg/horizontal-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/image.svg b/src/svg/image.svg new file mode 100644 index 0000000..fc6a64b --- /dev/null +++ b/src/svg/image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/info-circle-filled.svg b/src/svg/info-circle-filled.svg new file mode 100644 index 0000000..1430c82 --- /dev/null +++ b/src/svg/info-circle-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/info-circle.svg b/src/svg/info-circle.svg new file mode 100644 index 0000000..013c2a8 --- /dev/null +++ b/src/svg/info-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/instagram.svg b/src/svg/instagram.svg new file mode 100644 index 0000000..98e095e --- /dev/null +++ b/src/svg/instagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/ios-battery.svg b/src/svg/ios-battery.svg new file mode 100644 index 0000000..21d6309 --- /dev/null +++ b/src/svg/ios-battery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/ios-data.svg b/src/svg/ios-data.svg new file mode 100644 index 0000000..ace98d0 --- /dev/null +++ b/src/svg/ios-data.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/ios-wifi.svg b/src/svg/ios-wifi.svg new file mode 100644 index 0000000..d79c5e1 --- /dev/null +++ b/src/svg/ios-wifi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/italic.svg b/src/svg/italic.svg new file mode 100644 index 0000000..d6643b0 --- /dev/null +++ b/src/svg/italic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/kajabi-filled.svg b/src/svg/kajabi-filled.svg new file mode 100644 index 0000000..bc3c56a --- /dev/null +++ b/src/svg/kajabi-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/kajabi-outlined.svg b/src/svg/kajabi-outlined.svg new file mode 100644 index 0000000..1c12428 --- /dev/null +++ b/src/svg/kajabi-outlined.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/lab.svg b/src/svg/lab.svg new file mode 100644 index 0000000..27aeb5c --- /dev/null +++ b/src/svg/lab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/launch.svg b/src/svg/launch.svg new file mode 100644 index 0000000..b9b3815 --- /dev/null +++ b/src/svg/launch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/layout-grid.svg b/src/svg/layout-grid.svg new file mode 100644 index 0000000..c777483 --- /dev/null +++ b/src/svg/layout-grid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/layout-list.svg b/src/svg/layout-list.svg new file mode 100644 index 0000000..9eddd36 --- /dev/null +++ b/src/svg/layout-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/left-small.svg b/src/svg/left-small.svg new file mode 100644 index 0000000..d00d161 --- /dev/null +++ b/src/svg/left-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/linkedin.svg b/src/svg/linkedin.svg new file mode 100644 index 0000000..bbd660c --- /dev/null +++ b/src/svg/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/list-bullet.svg b/src/svg/list-bullet.svg new file mode 100644 index 0000000..163267e --- /dev/null +++ b/src/svg/list-bullet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/list-numbers.svg b/src/svg/list-numbers.svg new file mode 100644 index 0000000..0824e0f --- /dev/null +++ b/src/svg/list-numbers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/location.svg b/src/svg/location.svg new file mode 100644 index 0000000..63a84c5 --- /dev/null +++ b/src/svg/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/lock-alt.svg b/src/svg/lock-alt.svg new file mode 100644 index 0000000..b330648 --- /dev/null +++ b/src/svg/lock-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/lock.svg b/src/svg/lock.svg new file mode 100644 index 0000000..fc189dd --- /dev/null +++ b/src/svg/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/logo-afterpay.svg b/src/svg/logo-afterpay.svg new file mode 100644 index 0000000..fe03ea4 --- /dev/null +++ b/src/svg/logo-afterpay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/loop.svg b/src/svg/loop.svg new file mode 100644 index 0000000..edc069b --- /dev/null +++ b/src/svg/loop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/mail.svg b/src/svg/mail.svg new file mode 100644 index 0000000..43ee148 --- /dev/null +++ b/src/svg/mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/mapped.svg b/src/svg/mapped.svg new file mode 100644 index 0000000..b74cf4e --- /dev/null +++ b/src/svg/mapped.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/margin-left.svg b/src/svg/margin-left.svg new file mode 100644 index 0000000..5719b6a --- /dev/null +++ b/src/svg/margin-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/margin-right.svg b/src/svg/margin-right.svg new file mode 100644 index 0000000..5b7cf08 --- /dev/null +++ b/src/svg/margin-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/marker-filled.svg b/src/svg/marker-filled.svg new file mode 100644 index 0000000..5afc717 --- /dev/null +++ b/src/svg/marker-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/marker.svg b/src/svg/marker.svg new file mode 100644 index 0000000..7688ba3 --- /dev/null +++ b/src/svg/marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/marketing-filled.svg b/src/svg/marketing-filled.svg new file mode 100644 index 0000000..255e82a --- /dev/null +++ b/src/svg/marketing-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/marketing-outline.svg b/src/svg/marketing-outline.svg new file mode 100644 index 0000000..2508e94 --- /dev/null +++ b/src/svg/marketing-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/menu-2.svg b/src/svg/menu-2.svg new file mode 100644 index 0000000..b3dbdb0 --- /dev/null +++ b/src/svg/menu-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/menu-alt.svg b/src/svg/menu-alt.svg new file mode 100644 index 0000000..fca9040 --- /dev/null +++ b/src/svg/menu-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/menu.svg b/src/svg/menu.svg new file mode 100644 index 0000000..c292400 --- /dev/null +++ b/src/svg/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/merge.svg b/src/svg/merge.svg new file mode 100644 index 0000000..6384b0b --- /dev/null +++ b/src/svg/merge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/microphone-off.svg b/src/svg/microphone-off.svg new file mode 100644 index 0000000..c901106 --- /dev/null +++ b/src/svg/microphone-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/microphone.svg b/src/svg/microphone.svg new file mode 100644 index 0000000..7716978 --- /dev/null +++ b/src/svg/microphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/move-left.svg b/src/svg/move-left.svg new file mode 100644 index 0000000..47570ab --- /dev/null +++ b/src/svg/move-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/move-right.svg b/src/svg/move-right.svg new file mode 100644 index 0000000..f12ff5b --- /dev/null +++ b/src/svg/move-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/multi-pay.svg b/src/svg/multi-pay.svg new file mode 100644 index 0000000..8a83495 --- /dev/null +++ b/src/svg/multi-pay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/newsletter.svg b/src/svg/newsletter.svg new file mode 100644 index 0000000..2ab0a2a --- /dev/null +++ b/src/svg/newsletter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/one-off-session.svg b/src/svg/one-off-session.svg new file mode 100644 index 0000000..832f9d1 --- /dev/null +++ b/src/svg/one-off-session.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/one-time.svg b/src/svg/one-time.svg new file mode 100644 index 0000000..0adfd08 --- /dev/null +++ b/src/svg/one-time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/partners-filled.svg b/src/svg/partners-filled.svg new file mode 100644 index 0000000..2ff2fac --- /dev/null +++ b/src/svg/partners-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/partners-outline.svg b/src/svg/partners-outline.svg new file mode 100644 index 0000000..d608f72 --- /dev/null +++ b/src/svg/partners-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/pause-circle.svg b/src/svg/pause-circle.svg new file mode 100644 index 0000000..acf5ec7 --- /dev/null +++ b/src/svg/pause-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/pause.svg b/src/svg/pause.svg new file mode 100644 index 0000000..6f73d6e --- /dev/null +++ b/src/svg/pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/payout.svg b/src/svg/payout.svg new file mode 100644 index 0000000..5b9b0a9 --- /dev/null +++ b/src/svg/payout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/pen.svg b/src/svg/pen.svg new file mode 100644 index 0000000..1fa5683 --- /dev/null +++ b/src/svg/pen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/phone-portrait.svg b/src/svg/phone-portrait.svg new file mode 100644 index 0000000..f804db4 --- /dev/null +++ b/src/svg/phone-portrait.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/phone-toolbar.svg b/src/svg/phone-toolbar.svg new file mode 100644 index 0000000..d8e07ff --- /dev/null +++ b/src/svg/phone-toolbar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/play-circle.svg b/src/svg/play-circle.svg new file mode 100644 index 0000000..3c49a80 --- /dev/null +++ b/src/svg/play-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/play-outline.svg b/src/svg/play-outline.svg new file mode 100644 index 0000000..af82d30 --- /dev/null +++ b/src/svg/play-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/play-store.svg b/src/svg/play-store.svg new file mode 100644 index 0000000..dd2b43b --- /dev/null +++ b/src/svg/play-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/play.svg b/src/svg/play.svg new file mode 100644 index 0000000..79e8841 --- /dev/null +++ b/src/svg/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/plug.svg b/src/svg/plug.svg new file mode 100644 index 0000000..4e72b81 --- /dev/null +++ b/src/svg/plug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/present.svg b/src/svg/present.svg new file mode 100644 index 0000000..218b7df --- /dev/null +++ b/src/svg/present.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/preview-off.svg b/src/svg/preview-off.svg new file mode 100644 index 0000000..d6440bd --- /dev/null +++ b/src/svg/preview-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/preview-on.svg b/src/svg/preview-on.svg new file mode 100644 index 0000000..776c487 --- /dev/null +++ b/src/svg/preview-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/products-filled.svg b/src/svg/products-filled.svg new file mode 100644 index 0000000..81148f2 --- /dev/null +++ b/src/svg/products-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/products-outline.svg b/src/svg/products-outline.svg new file mode 100644 index 0000000..2709764 --- /dev/null +++ b/src/svg/products-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/question-circle.svg b/src/svg/question-circle.svg new file mode 100644 index 0000000..4f0a8da --- /dev/null +++ b/src/svg/question-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/quote.svg b/src/svg/quote.svg new file mode 100644 index 0000000..3accdf8 --- /dev/null +++ b/src/svg/quote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/redo.svg b/src/svg/redo.svg new file mode 100644 index 0000000..f4a512e --- /dev/null +++ b/src/svg/redo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/refresh.svg b/src/svg/refresh.svg new file mode 100644 index 0000000..940e1e9 --- /dev/null +++ b/src/svg/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/remove-circle.svg b/src/svg/remove-circle.svg new file mode 100644 index 0000000..b38e58c --- /dev/null +++ b/src/svg/remove-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/remove.svg b/src/svg/remove.svg new file mode 100644 index 0000000..105445b --- /dev/null +++ b/src/svg/remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/rename.svg b/src/svg/rename.svg new file mode 100644 index 0000000..190129a --- /dev/null +++ b/src/svg/rename.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/reset-password.svg b/src/svg/reset-password.svg new file mode 100644 index 0000000..9dc9299 --- /dev/null +++ b/src/svg/reset-password.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/restore.svg b/src/svg/restore.svg new file mode 100644 index 0000000..20dd80d --- /dev/null +++ b/src/svg/restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/right-small.svg b/src/svg/right-small.svg new file mode 100644 index 0000000..67a8792 --- /dev/null +++ b/src/svg/right-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/round-dollar.svg b/src/svg/round-dollar.svg new file mode 100644 index 0000000..13984a2 --- /dev/null +++ b/src/svg/round-dollar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/rows.svg b/src/svg/rows.svg new file mode 100644 index 0000000..4b6fd88 --- /dev/null +++ b/src/svg/rows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/sales-filled.svg b/src/svg/sales-filled.svg new file mode 100644 index 0000000..4177f3b --- /dev/null +++ b/src/svg/sales-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/sales-outline.svg b/src/svg/sales-outline.svg new file mode 100644 index 0000000..6a8bc5b --- /dev/null +++ b/src/svg/sales-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/scissor.svg b/src/svg/scissor.svg new file mode 100644 index 0000000..6fb3599 --- /dev/null +++ b/src/svg/scissor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/screen-share-off.svg b/src/svg/screen-share-off.svg new file mode 100644 index 0000000..6ce9b9f --- /dev/null +++ b/src/svg/screen-share-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/screen-share-on.svg b/src/svg/screen-share-on.svg new file mode 100644 index 0000000..9e4766a --- /dev/null +++ b/src/svg/screen-share-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/search-small.svg b/src/svg/search-small.svg new file mode 100644 index 0000000..4582a84 --- /dev/null +++ b/src/svg/search-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/search.svg b/src/svg/search.svg new file mode 100644 index 0000000..72a24df --- /dev/null +++ b/src/svg/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/send-message.svg b/src/svg/send-message.svg new file mode 100644 index 0000000..08f4acc --- /dev/null +++ b/src/svg/send-message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/sequences.svg b/src/svg/sequences.svg new file mode 100644 index 0000000..cc02aad --- /dev/null +++ b/src/svg/sequences.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/series.svg b/src/svg/series.svg new file mode 100644 index 0000000..16861d1 --- /dev/null +++ b/src/svg/series.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/settings-filled.svg b/src/svg/settings-filled.svg new file mode 100644 index 0000000..0152e11 --- /dev/null +++ b/src/svg/settings-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/settings-outline.svg b/src/svg/settings-outline.svg new file mode 100644 index 0000000..32c4b95 --- /dev/null +++ b/src/svg/settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/share.svg b/src/svg/share.svg new file mode 100644 index 0000000..b6930cc --- /dev/null +++ b/src/svg/share.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/skipped.svg b/src/svg/skipped.svg new file mode 100644 index 0000000..707cf9d --- /dev/null +++ b/src/svg/skipped.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/slash-divider.svg b/src/svg/slash-divider.svg new file mode 100644 index 0000000..f8ff43e --- /dev/null +++ b/src/svg/slash-divider.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/sparkle-filled.svg b/src/svg/sparkle-filled.svg new file mode 100644 index 0000000..199f874 --- /dev/null +++ b/src/svg/sparkle-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/sparkle.svg b/src/svg/sparkle.svg new file mode 100644 index 0000000..eba126b --- /dev/null +++ b/src/svg/sparkle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/speaker.svg b/src/svg/speaker.svg new file mode 100644 index 0000000..d1e8728 --- /dev/null +++ b/src/svg/speaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/stack.svg b/src/svg/stack.svg new file mode 100644 index 0000000..cdc7307 --- /dev/null +++ b/src/svg/stack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/star.svg b/src/svg/star.svg new file mode 100644 index 0000000..f8c65f7 --- /dev/null +++ b/src/svg/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/stop.svg b/src/svg/stop.svg new file mode 100644 index 0000000..97c33e0 --- /dev/null +++ b/src/svg/stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/stopwatch.svg b/src/svg/stopwatch.svg new file mode 100644 index 0000000..2b37138 --- /dev/null +++ b/src/svg/stopwatch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/strikethrough.svg b/src/svg/strikethrough.svg new file mode 100644 index 0000000..bf73c24 --- /dev/null +++ b/src/svg/strikethrough.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/subscript.svg b/src/svg/subscript.svg new file mode 100644 index 0000000..fc4c02b --- /dev/null +++ b/src/svg/subscript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/subscriptions.svg b/src/svg/subscriptions.svg new file mode 100644 index 0000000..4dbc48a --- /dev/null +++ b/src/svg/subscriptions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/super-admin.svg b/src/svg/super-admin.svg new file mode 100644 index 0000000..fbb7294 --- /dev/null +++ b/src/svg/super-admin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/superscript.svg b/src/svg/superscript.svg new file mode 100644 index 0000000..0f2fc46 --- /dev/null +++ b/src/svg/superscript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/sync.svg b/src/svg/sync.svg new file mode 100644 index 0000000..0f9616e --- /dev/null +++ b/src/svg/sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/tablet-landscape.svg b/src/svg/tablet-landscape.svg new file mode 100644 index 0000000..543a748 --- /dev/null +++ b/src/svg/tablet-landscape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/tablet-portrait.svg b/src/svg/tablet-portrait.svg new file mode 100644 index 0000000..42ef138 --- /dev/null +++ b/src/svg/tablet-portrait.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/text-styles.svg b/src/svg/text-styles.svg new file mode 100644 index 0000000..a39eae6 --- /dev/null +++ b/src/svg/text-styles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/theme-store.svg b/src/svg/theme-store.svg new file mode 100644 index 0000000..8a98167 --- /dev/null +++ b/src/svg/theme-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/thumbs-down-filled.svg b/src/svg/thumbs-down-filled.svg new file mode 100644 index 0000000..ac23f90 --- /dev/null +++ b/src/svg/thumbs-down-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/thumbs-down.svg b/src/svg/thumbs-down.svg new file mode 100644 index 0000000..7be6e3f --- /dev/null +++ b/src/svg/thumbs-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/thumbs-up-filled.svg b/src/svg/thumbs-up-filled.svg new file mode 100644 index 0000000..c92fcb4 --- /dev/null +++ b/src/svg/thumbs-up-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/thumbs-up.svg b/src/svg/thumbs-up.svg new file mode 100644 index 0000000..43c1888 --- /dev/null +++ b/src/svg/thumbs-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/tiktok.svg b/src/svg/tiktok.svg new file mode 100644 index 0000000..005b7dd --- /dev/null +++ b/src/svg/tiktok.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/trash.svg b/src/svg/trash.svg new file mode 100644 index 0000000..f5b18d5 --- /dev/null +++ b/src/svg/trash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/twitter.svg b/src/svg/twitter.svg new file mode 100644 index 0000000..7703571 --- /dev/null +++ b/src/svg/twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/underline.svg b/src/svg/underline.svg new file mode 100644 index 0000000..d4a9a03 --- /dev/null +++ b/src/svg/underline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/undo.svg b/src/svg/undo.svg new file mode 100644 index 0000000..897b96c --- /dev/null +++ b/src/svg/undo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/unlock.svg b/src/svg/unlock.svg new file mode 100644 index 0000000..1123206 --- /dev/null +++ b/src/svg/unlock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/unmapped.svg b/src/svg/unmapped.svg new file mode 100644 index 0000000..e6e4706 --- /dev/null +++ b/src/svg/unmapped.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/up-small.svg b/src/svg/up-small.svg new file mode 100644 index 0000000..866e0db --- /dev/null +++ b/src/svg/up-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/upload.svg b/src/svg/upload.svg new file mode 100644 index 0000000..92566cf --- /dev/null +++ b/src/svg/upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/url.svg b/src/svg/url.svg new file mode 100644 index 0000000..ff5800b --- /dev/null +++ b/src/svg/url.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/user-filled.svg b/src/svg/user-filled.svg new file mode 100644 index 0000000..d03d96a --- /dev/null +++ b/src/svg/user-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/user.svg b/src/svg/user.svg new file mode 100644 index 0000000..7f85cab --- /dev/null +++ b/src/svg/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/users-wm.svg b/src/svg/users-wm.svg new file mode 100644 index 0000000..b11b7f0 --- /dev/null +++ b/src/svg/users-wm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/users.svg b/src/svg/users.svg new file mode 100644 index 0000000..acdc586 --- /dev/null +++ b/src/svg/users.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/video-off.svg b/src/svg/video-off.svg new file mode 100644 index 0000000..0577569 --- /dev/null +++ b/src/svg/video-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/video-on.svg b/src/svg/video-on.svg new file mode 100644 index 0000000..91b060b --- /dev/null +++ b/src/svg/video-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/warning-filled.svg b/src/svg/warning-filled.svg new file mode 100644 index 0000000..b58af54 --- /dev/null +++ b/src/svg/warning-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/warning.svg b/src/svg/warning.svg new file mode 100644 index 0000000..c3738c7 --- /dev/null +++ b/src/svg/warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/website-filled.svg b/src/svg/website-filled.svg new file mode 100644 index 0000000..0523c73 --- /dev/null +++ b/src/svg/website-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/website-outline.svg b/src/svg/website-outline.svg new file mode 100644 index 0000000..f3660b2 --- /dev/null +++ b/src/svg/website-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/window-paragraph.svg b/src/svg/window-paragraph.svg new file mode 100644 index 0000000..26ca051 --- /dev/null +++ b/src/svg/window-paragraph.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/world.svg b/src/svg/world.svg new file mode 100644 index 0000000..905b302 --- /dev/null +++ b/src/svg/world.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/youtube.svg b/src/svg/youtube.svg new file mode 100644 index 0000000..d291ffd --- /dev/null +++ b/src/svg/youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/stencil.config.ts b/stencil.config.ts new file mode 100644 index 0000000..1080db7 --- /dev/null +++ b/stencil.config.ts @@ -0,0 +1,37 @@ +import { Config } from '@stencil/core'; + +import { sass } from '@stencil/sass'; + +export const config: Config = { + namespace: 'pds-icons', + devServer: { + openBrowser: false, + port: 7200 + }, + plugins: [sass()], + outputTargets: [ + { + type: 'dist', + empty: false, + }, + { + type: 'dist-custom-elements', + dir: './components' + }, + { + type: 'docs-readme', + footer: '', + }, + { + type: 'www', + copy: [ + { src: '../changelogs', dest: 'changelogs'} + ], + empty: false, + serviceWorker: null, // disable service workers + }, + ], + testing: { + browserHeadless: "new", + }, +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..05818ba --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "allowUnreachableCode": false, + "baseUrl": ".", + "declaration": false, + "experimentalDecorators": true, + "jsx": "react", + "jsxFactory": "h", + "lib": [ + "dom", + "es2017" + ], + "module": "esnext", + "moduleResolution": "node", + "noUnusedLocals": true, + "noUnusedParameters": true, + "paths": { + "@utils/*": ["src/utils/*"] + }, + "removeComments": false, + "target": "es2017", + }, + "include": [ + "src", + "scripts" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/validate-branch-name.config.js b/validate-branch-name.config.js new file mode 100644 index 0000000..b0d450f --- /dev/null +++ b/validate-branch-name.config.js @@ -0,0 +1,5 @@ + +module.exports = { + pattern: '^(main|next|release)$|^(chore|ci|docs|feature|fix|hotfix|perf|refactor|revert|style|test)\/([a-zA-Z-].+)$', + errorMsg: 'Invalid branch name' +}