diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 22f52e70..00000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,99 +0,0 @@
-version: 2
-
-jobs:
- test:
- docker:
- - image: node:18-alpine
- steps:
- - checkout
- - restore_cache:
- keys:
- - npm-deps-{{ checksum "package.json" }}-{{ checksum "./bids-validator/package.json" }}-{{ checksum "./bids-validator-web/package.json" }}-v1
- - run: apk --no-cache add git
- - run: npm install -g npm@^7
- - run: npm install
- - run:
- name: Eslint
- command: npm run lint
- - run:
- name: Get bids-examples data
- command: git submodule update --init
- - run:
- # must include separating --, see https://stackoverflow.com/a/14404223/5201771
- name: Jest tests
- command: npm run coverage -- --maxWorkers=2 --testTimeout=10000
- - run:
- name: Upload to codecov
- command: npm run codecov
- - run:
- name: Smoke tests
- command: |
- bids-validator/bin/bids-validator bids-validator/tests/data/valid_headers/ --ignoreNiftiHeaders
- bids-validator/bin/bids-validator bids-validator/tests/data/valid_headers/ --ignoreNiftiHeaders --json
- test_docker:
- environment:
- IMAGE_NAME: bids/validator
- machine:
- # Ubuntu 20.04, Docker v20.10.11, Docker Compose v1.29.2
- # see: https://circleci.com/docs/2.0/configuration-reference/#available-machine-images
- image: ubuntu-2004:202111-02
- steps:
- - checkout
- - run: docker build -t $IMAGE_NAME:latest .
- - run:
- name: Smoke tests
- command: |
- docker run --rm -it -v $PWD/bids-validator/tests/data/valid_headers:/data bids/validator:latest /data --ignoreNiftiHeaders
- docker run --rm -it -v $PWD/bids-validator/tests/data/valid_headers:/data bids/validator:latest /data --ignoreNiftiHeaders --json
- - run:
- name: Archive Docker image
- command: docker save -o image.tar $IMAGE_NAME
- - persist_to_workspace:
- root: .
- paths:
- - ./image.tar
- githubPagesTest:
- docker:
- - image: node:18-alpine
- steps:
- - run: npm install --global npm
- - run: apk --no-cache add ca-certificates git openssh-client rsync
- - checkout
- - restore_cache:
- keys:
- - npm-deps-{{ checksum "package.json" }}-{{ checksum "./bids-validator/package.json" }}-{{ checksum "./bids-validator-web/package.json" }}-v1
- - run:
- name: Install bids-validator and bids-validator-web dependencies
- command: npm install
- - run:
- name: Build and export web-validator
- command: npm run web-export && rsync -av ./bids-validator-web/out/ ~/web_version
- - save_cache:
- key: npm-deps-{{ checksum "package.json" }}-{{ checksum "./bids-validator/package.json" }}-{{ checksum "./bids-validator-web/package.json" }}-v1
- paths:
- - ./node_modules
- - ./.next/cache
- - store_artifacts:
- path: ~/web_version
-workflows:
- version: 2
- build-deploy:
- jobs:
- - test:
- filters:
- branches:
- only: /.*/
- tags:
- only: /.*/
- - test_docker:
- filters:
- tags:
- only: /.*/
- - githubPagesTest:
- requires:
- - test
- filters:
- branches:
- only: /.*/
- tags:
- only: /.*/
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 028855ae..e3ab0cc4 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -15,12 +15,3 @@ updates:
directory: '/'
schedule:
interval: 'monthly'
-# - package-ecosystem: 'npm'
-# directory: '/'
-# schedule:
-# interval: 'weekly'
-#
-# - package-ecosystem: 'npm'
-# directory: '/bids-validator-web'
-# schedule:
-# interval: 'weekly'
diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml
deleted file mode 100644
index 911dbddc..00000000
--- a/.github/workflows/docker-build-push.yml
+++ /dev/null
@@ -1,89 +0,0 @@
-name: Build & publish containers
-
-on:
- push:
- tags:
- - 'v[0-9]+.[0-9]+.[0-9]+'
-
-jobs:
- push_docker_to_registry:
- name: Push Docker image to Docker Hub
- runs-on: ubuntu-latest
- steps:
- - name: Check out the repo
- uses: actions/checkout@v4
-
- - name: Log in to Docker Hub
- uses: docker/login-action@v3
- with:
- username: ${{ secrets.DOCKER_USERNAME }}
- password: ${{ secrets.DOCKER_PASSWORD }}
-
- - name: Extract metadata (tags, labels) for Docker
- id: meta
- uses: docker/metadata-action@v5
- with:
- images: bids/validator
-
- - name: Build and push Docker image
- uses: docker/build-push-action@v6
- with:
- context: .
- push: true
- tags: ${{ steps.meta.outputs.tags }}
- labels: ${{ steps.meta.outputs.labels }}
-
- push_singularity_to_registry:
- runs-on: ubuntu-latest
- needs:
- - push_docker_to_registry
- steps:
- - name: Set up Go 1.13
- uses: actions/setup-go@v5
- with:
- go-version: 1.13
- id: go
- - name: Install Dependencies
- run: |
- sudo apt-get update && sudo apt-get install -y \
- build-essential \
- libssl-dev \
- uuid-dev \
- libgpgme11-dev \
- squashfs-tools \
- libseccomp-dev \
- pkg-config
- - name: Install Singularity
- env:
- SINGULARITY_VERSION: 3.8.0
- GOPATH: /tmp/go
- run: |
- mkdir -p $GOPATH
- sudo mkdir -p /usr/local/var/singularity/mnt && \
- mkdir -p $GOPATH/src/github.com/sylabs && \
- cd $GOPATH/src/github.com/sylabs && \
- wget -qO- https://github.com/sylabs/singularity/releases/download/v${SINGULARITY_VERSION}/singularity-ce-${SINGULARITY_VERSION}.tar.gz | \
- tar xzv && \
- cd singularity-ce-${SINGULARITY_VERSION} && \
- ./mconfig -p /usr/local && \
- make -C builddir && \
- sudo make -C builddir install
- - name: Check out code for the container build
- uses: actions/checkout@v4
- - name: Extract metadata (tags, labels) for Docker
- id: meta
- uses: docker/metadata-action@v5
- with:
- images: bids/validator
- - name: Build Container
- run: |
- tags=${{ steps.meta.outputs.tags }}
- echo $tags
- singularity pull container.sif docker://${tags%,*}
- - name: Login and Deploy Container
- if: (github.event_name != 'pull_request')
- run: |
- tags=${{ steps.meta.outputs.tags }}
- echo ${{ secrets.GITHUB_TOKEN }} | singularity remote login -u ${{ github.actor }} --password-stdin oras://ghcr.io
- for tag in $(echo $tags | sed "s/,/ /g" | sed "s/bids\/validator/bids-standard\/bids-validator/g");
- do echo $tag; singularity push container.sif oras://ghcr.io/$tag; done
diff --git a/.github/workflows/node_tests.yml b/.github/workflows/node_tests.yml
deleted file mode 100644
index 422a9dcd..00000000
--- a/.github/workflows/node_tests.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-name: Node Tests
-
-on:
- push:
- branches: [master]
- pull_request:
- branches: [master]
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-jobs:
- build:
- strategy:
- fail-fast: false
- matrix:
- platform: [ubuntu-latest, macos-latest, windows-latest]
- node: [18]
-
- runs-on: ${{ matrix.platform }}
-
- steps:
- - name: Set git to use LF
- run: |
- git config --global core.autocrlf false
- git config --global core.eol lf
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: '18'
- cache: 'npm'
- - name: Set git name/email
- run: |
- git config --global user.email "bids.maintenance@gmail.com"
- git config --global user.name "bids-maintenance"
- - name: Set up Node
- run: |
- npm install -g npm@^7
- npm install
- - name: Eslint
- run: npm run lint
- - name: Get bids-examples data
- run: git submodule update --init
- - name: Jest tests
- run: npm run coverage -- --maxWorkers=2 --testTimeout=10000 --colors
- - name: Upload to codecov
- uses: codecov/codecov-action@v4
- with:
- token: ${{ secrets.CODECOV_TOKEN }}
- - name: Smoke tests
- run: |
- bids-validator/bin/bids-validator bids-validator/tests/data/valid_headers/ --ignoreNiftiHeaders
- bids-validator/bin/bids-validator bids-validator/tests/data/valid_headers/ --ignoreNiftiHeaders --json
diff --git a/.github/workflows/schema_web_deploy.yml b/.github/workflows/schema_web_deploy.yml
index 2778bf4e..5d9037c2 100644
--- a/.github/workflows/schema_web_deploy.yml
+++ b/.github/workflows/schema_web_deploy.yml
@@ -14,10 +14,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- # Use Node 18 for legacy build
- - uses: actions/setup-node@v4
- with:
- node-version: 18
- uses: denoland/setup-deno@v1
with:
deno-version: v1.x
@@ -25,10 +21,6 @@ jobs:
working-directory: ./web
- name: Install NPM deps
run: npm install
- - name: Build legacy validator website
- run: npm run web-export
- - name: Move legacy validator build into deno website
- run: mv bids-validator-web/out web/dist/legacy
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v3
with:
diff --git a/.github/workflows/test-bids-examples.yml b/.github/workflows/test-bids-examples.yml
deleted file mode 100644
index 15b922cc..00000000
--- a/.github/workflows/test-bids-examples.yml
+++ /dev/null
@@ -1,72 +0,0 @@
-name: test-bids-examples
-
-on:
- push:
- branches: ['*']
- pull_request:
- branches: ['*']
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-jobs:
- build:
- strategy:
- fail-fast: false
- matrix:
- platform: [ubuntu-latest]
- bids-examples-branch: [master]
-
- runs-on: ${{ matrix.platform }}
-
- env:
- TZ: Europe/Berlin
- FORCE_COLOR: 1
-
- steps:
- - name: Set up Node.js
- uses: actions/setup-node@v4
- with:
- node-version: 18
- - uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Upgrade npm
- run: npm install --global npm
-
- - name: Install bids-validator
- run: |
- npm install
- npm link ./bids-validator
- echo "./node_modules/.bin" >> $GITHUB_PATH
-
- - name: Get bids-examples data
- run: |
- git clone --depth 1 https://github.com/bids-standard/bids-examples
-
- - name: Display versions and environment information
- run: |
- echo $TZ
- export PATH="../node_modules/.bin:$PATH"
- date
- echo "npm"; npm --version
- echo "node"; node --version
- echo "bids-validator"; bids-validator --version
- which bids-validator
- ls -a $(which bids-validator)
-
- - name: Ignore examples not supported by legacy validator
- run: |
- for DS in bids-examples/mrs_* bids-examples/dwi_deriv; do
- touch $DS/.SKIP_VALIDATION
- done
-
- - name: Validate all BIDS datasets using bids-validator
- run: |
- export PATH="../node_modules/.bin:$PATH"
- cat ./run_tests.sh
- bash ./run_tests.sh
- shell: bash
- working-directory: ./bids-examples
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 9a51c992..00000000
--- a/Dockerfile
+++ /dev/null
@@ -1,16 +0,0 @@
-FROM node:18-alpine as build
-RUN npm install -g npm
-
-COPY . /src
-WORKDIR /src
-
-RUN npm install
-RUN npm -w bids-validator run build
-RUN npm -w bids-validator pack
-
-FROM node:18-alpine
-
-COPY --from=build /src/bids-validator-*.tgz /tmp
-RUN npm install -g /tmp/bids-validator-*.tgz
-
-ENTRYPOINT ["/usr/local/bin/bids-validator"]
diff --git a/babel.config.js b/babel.config.js
deleted file mode 100644
index 7a59ca8d..00000000
--- a/babel.config.js
+++ /dev/null
@@ -1,18 +0,0 @@
-module.exports = {
- presets: [
- [
- '@babel/preset-env',
- {
- targets: {
- node: 'current',
- },
- },
- 'jest',
- ],
- ],
- env: {
- test: {
- plugins: ['@babel/plugin-transform-modules-commonjs'],
- },
- },
-}
diff --git a/bids-validator-web/.eslintrc b/bids-validator-web/.eslintrc
deleted file mode 100644
index 55903ff5..00000000
--- a/bids-validator-web/.eslintrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "extends": ["eslint:recommended", "prettier", "next"],
-}
diff --git a/bids-validator-web/components/App.jsx b/bids-validator-web/components/App.jsx
deleted file mode 100644
index 34ee002f..00000000
--- a/bids-validator-web/components/App.jsx
+++ /dev/null
@@ -1,116 +0,0 @@
-import React from 'react'
-import Issues from '../components/Issues'
-import Validate from '../components/Validate'
-import validate from '../../bids-validator'
-import validatorPackageJson from 'bids-validator/package.json' assert { type: 'json' }
-const version = validatorPackageJson.version
-
-// component setup -----------------------------------------------------------
-const initState = () => ({
- dirName: '',
- list: {},
- nameError: null,
- projectId: '',
- refs: {},
- errors: [],
- warnings: [],
- summary: null,
- status: '',
- uploadStatus: '',
- options: {
- ignoreWarnings: false,
- ignoreNiftiHeaders: false,
- ignoreSubjectConsistency: false,
- },
-})
-
-export default class App extends React.Component {
- constructor() {
- super()
- this.state = initState()
- this.validate = this._validate.bind(this)
- this.reset = this._reset.bind(this)
- }
-
- _validate(selectedFiles) {
- const dirName = selectedFiles.list[0].webkitRelativePath.split('/')[0]
- const defaultConfig = `${dirName}/.bids-validator-config.json`
- this.setState({
- status: 'validating',
- showIssues: true,
- activeKey: 3,
- dirName,
- })
- return validate.BIDS(
- selectedFiles.list,
- {
- verbose: true,
- ...this.state.options,
- config: defaultConfig,
- },
- (issues, summary) => {
- if (issues === 'Invalid') {
- return this.setState({
- errors: 'Invalid',
- summary,
- status: 'validated',
- })
- } else {
- return this.setState({
- errors: issues.errors ? issues.errors : [],
- warnings: issues.warnings ? issues.warnings : [],
- summary,
- status: 'validated',
- })
- }
- },
- )
- }
-
- _reset() {
- this.setState(initState())
- }
-
- handleOptionToggle = (e) => {
- const { name } = e.target
- this.setState((prevState) => ({
- ...prevState,
- options: {
- ...prevState.options,
- [name]: !prevState.options[name],
- },
- }))
- }
-
- render() {
- return (
-
-
-
-
-
-
-
-
- {this.state.status === 'validated' ? (
-
- ) : null}
-
-
- )
- }
-}
diff --git a/bids-validator-web/components/ErrorLink.jsx b/bids-validator-web/components/ErrorLink.jsx
deleted file mode 100644
index f63f6811..00000000
--- a/bids-validator-web/components/ErrorLink.jsx
+++ /dev/null
@@ -1,80 +0,0 @@
-import React from 'react'
-
-// component setup --------------------------------------------------------
-
-export default class ErrorLink extends React.Component {
- // life cycle events ------------------------------------------------------
-
- render() {
- let dataURL = this._generateErrorLog(this.props.errors, this.props.warnings)
- return (
-
- Download error log for {this.props.dirName}
-
- )
- }
-
- // custom methods ---------------------------------------------------------
-
- /**
- * Generate Error Log
- *
- * Takes an array of errors and an array of
- * warnings and returns text error log encoded
- * as a url.
- */
- _generateErrorLog(errors, warnings) {
- let issueString = this._generateIssueLog(errors, 'Error')
- issueString += this._generateIssueLog(warnings, 'Warning')
- let errorURL =
- 'data:application/octet-stream;charset=utf-8,' +
- encodeURIComponent(issueString)
- return errorURL
- }
-
- /**
- * Generate Issue Log
- *
- * Takes an array of issues and a string of the
- * issue type and return a human readable log
- * of the issues as a string.
- */
- _generateIssueLog(issues, type) {
- let issueString = ''
- let endLine = '======================================================'
- for (var i = 0; i < issues.length; i++) {
- issueString += 'File Path: ' + issues[i].reason + '\n\n'
- for (var j = 0; j < issues[i].files.length; j++) {
- var file = issues[i].files[j]
- issueString += '\tType:\t\t' + type + '\n'
- if (!file || !file.file) {
- continue
- }
- if (file.file.name) {
- issueString += '\tFile:\t\t' + file.file.name + '\n'
- }
- if (file.file.webkitRelativePath) {
- issueString += '\tLocation:\t\t' + file.file.webkitRelativePath + '\n'
- }
- if (file.reason) {
- issueString += '\tReason:\t\t' + file.reason + '\n'
- }
- if (file.line) {
- issueString += '\tLine:\t\t' + file.line + '\n'
- }
- if (file.character) {
- issueString += '\tCharacter:\t' + file.character + '\n'
- }
- if (file.evidence) {
- issueString += '\tEvidence:\t' + file.evidence + '\n\n'
- }
- }
- issueString += '\n' + endLine + '\n\n\n'
- }
- return issueString
- }
-}
diff --git a/bids-validator-web/components/Issues.jsx b/bids-validator-web/components/Issues.jsx
deleted file mode 100644
index 42c41e5e..00000000
--- a/bids-validator-web/components/Issues.jsx
+++ /dev/null
@@ -1,137 +0,0 @@
-// dependencies -------------------------------------------------------
-
-import React from 'react'
-import PropTypes from 'prop-types'
-import pluralize from 'pluralize'
-import Results from './results/Results'
-import Spinner from './Spinner.jsx'
-import ErrorLink from './ErrorLink.jsx'
-import Summary from '../components/Summary'
-
-class Issues extends React.Component {
- constructor(props) {
- super(props)
- this._reset = this.props.reset.bind(this)
- }
- // life cycle events --------------------------------------------------
-
- render() {
- // short references
- let errors = this.props.errors
- let warnings = this.props.warnings
- let dirName = this.props.dirName
-
- // counts
- // let totalErrors = 0
- let totalWarnings = 0
- let warningCount = 0
- // let errorCount = 0
- if (errors !== 'Invalid') {
- // totalErrors = errors.length
- totalWarnings = warnings.length
- warningCount = totalWarnings + ' ' + pluralize('Warning', totalWarnings)
- // errorCount = totalErrors + ' ' + pluralize('Error', totalErrors)
- }
- // messages
- let specLink = (
-
- )
- let notBIDSMessage = (
-
- This directory failed an initial Quick Test. This means the basic names
- and structure of the files and directories do not comply with BIDS
- specification. Select a new folder {' '}
- and try again.
-
- )
- let warningsMessage = We found {warningCount} in your dataset.
- let errorMessage = Your dataset is not a valid BIDS dataset.
- let noErrorMessage = This is a valid BIDS dataset!
- let neurostarsLink = (
-
- If you have any questions please post on{' '}
-
- Neurostars
-
-
- )
- let sourcecode = (
-
- The source code for the validator can be found{' '}
-
- here
-
-
- )
-
- // determine message
- let message
- if (errors === 'Invalid') {
- message = notBIDSMessage
- } else if (errors.length > 0) {
- message = errorMessage
- } else if (warnings.length > 0) {
- message = warningsMessage
- } else {
- message = noErrorMessage
- }
-
- // loading animation
- let loading = (
-
- )
-
- // results
- let results = (
-
-
- ×
-
-
- {message}
- {errors !== 'Invalid' ? (
-
- ) : null}
- {(errors.length > 0 && errors !== 'Invalid') || warnings.length > 0 ? (
-
- ) : null}
- {specLink}
- {neurostarsLink}
- {sourcecode}
-
- )
-
- return {this.props.status === 'validating' ? loading : results}
- }
-}
-
-Issues.propTypes = {
- reset: PropTypes.func,
- errors: PropTypes.array,
- warnings: PropTypes.array,
- dirName: PropTypes.string,
- status: PropTypes.string,
-}
-
-Issues.defaultProps = {
- reset: () => {},
- errors: [],
- warnings: [],
- dirName: '',
- status: '',
-}
-
-export default Issues
diff --git a/bids-validator-web/components/List.jsx b/bids-validator-web/components/List.jsx
deleted file mode 100644
index adc3332c..00000000
--- a/bids-validator-web/components/List.jsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import React from 'react'
-import PropTypes from 'prop-types'
-
-export default class List extends React.Component {
- render() {
- if (this.props.items) {
- return this.props.items.map((item, index) => {
- return {item}
- })
- }
- }
-}
-
-List.propTypes = {
- items: PropTypes.array,
-}
-List.defaultProps = {
- items: [],
-}
diff --git a/bids-validator-web/components/Options.jsx b/bids-validator-web/components/Options.jsx
deleted file mode 100644
index 42521627..00000000
--- a/bids-validator-web/components/Options.jsx
+++ /dev/null
@@ -1,37 +0,0 @@
-import React from 'react'
-
-const Options = ({ setOption, options }) => (
- <>
-
-
- >
-)
-
-export default Options
diff --git a/bids-validator-web/components/Spinner.jsx b/bids-validator-web/components/Spinner.jsx
deleted file mode 100644
index 1108768c..00000000
--- a/bids-validator-web/components/Spinner.jsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import React from 'react'
-import PropTypes from 'prop-types'
-
-// component setup ---------------------------------------------------------------------------
-
-export default class Spinner extends React.Component {
- // life cycle events -------------------------------------------------------------------------
-
- render() {
- let spinner = (
-
- )
- return this.props.active ? spinner : null
- }
-}
-
-Spinner.propTypes = {
- text: PropTypes.string,
- active: PropTypes.bool,
-}
-
-Spinner.defaultProps = {
- text: 'Loading',
- active: false,
-}
diff --git a/bids-validator-web/components/Summary.jsx b/bids-validator-web/components/Summary.jsx
deleted file mode 100644
index ecb65320..00000000
--- a/bids-validator-web/components/Summary.jsx
+++ /dev/null
@@ -1,59 +0,0 @@
-// dependencies -------------------------------------------------------
-
-import React from 'react'
-import pluralize from 'pluralize'
-import bytes from 'bytes'
-import List from './List'
-
-class Summary extends React.Component {
- // life cycle events --------------------------------------------------
-
- render() {
- let summary = this.props.summary
- if (summary) {
- var numSessions =
- summary.sessions.length > 0 ? summary.sessions.length : 1
- return (
-
-
{this.props.dirName}
-
-
-
-
Summary
-
-
- {summary.totalFiles} {pluralize('File', summary.totalFiles)}
- , {bytes(summary.size)}
-
-
- {summary.subjects.length} -{' '}
- {pluralize('Subject', summary.subjects.length)}
-
-
- {numSessions} - {pluralize('Session', numSessions)}
-
-
-
-
-
-
Available Modalities
-
-
-
-
-
- )
- } else {
- return null
- }
- }
-}
-
-export default Summary
diff --git a/bids-validator-web/components/Upload.jsx b/bids-validator-web/components/Upload.jsx
deleted file mode 100644
index 6a2eaf7c..00000000
--- a/bids-validator-web/components/Upload.jsx
+++ /dev/null
@@ -1,31 +0,0 @@
-// dependencies -------------------------------------------------------
-
-import React from 'react'
-
-class Upload extends React.Component {
- // life cycle events --------------------------------------------------
- render() {
- return (
-
- )
- }
-
- // custom methods -----------------------------------------------------
- _onFileSelect(e) {
- if (e.target && e.target.files.length > 0) {
- let files = e.target.files
- let results = { list: files }
- this.props.onChange(results)
- }
- }
-}
-
-export default Upload
diff --git a/bids-validator-web/components/Validate.jsx b/bids-validator-web/components/Validate.jsx
deleted file mode 100644
index d400fa24..00000000
--- a/bids-validator-web/components/Validate.jsx
+++ /dev/null
@@ -1,51 +0,0 @@
-import React from 'react'
-import Upload from './Upload.jsx'
-import Spinner from './Spinner.jsx'
-import Options from './Options.jsx'
-
-class Validate extends React.Component {
- constructor(props) {
- super(props)
- this.state = {
- loading: false,
- }
-
- this._clearInput = this.props.reset
- this._onChange = this.props.onChange
- this._setRefs = this.props.setRefs
- }
-
- // life cycle events --------------------------------------------------
-
- render() {
- let { options, handleOptionToggle } = this.props
- let loading =
-
- let select = (
-
-
- Select a{' '}
-
- BIDS dataset
- {' '}
- to validate
-
-
-
-
-
- Note: Selecting a dataset only performs validation. Files are never
- uploaded.
-
-
- )
-
- return {this.props.loading ? loading : select}
- }
-}
-
-export default Validate
diff --git a/bids-validator-web/components/results/Issue.jsx b/bids-validator-web/components/results/Issue.jsx
deleted file mode 100644
index b02de023..00000000
--- a/bids-validator-web/components/results/Issue.jsx
+++ /dev/null
@@ -1,55 +0,0 @@
-// dependencies -------------------------------------------------------
-
-import React from 'react'
-import PropTypes from 'prop-types'
-
-// component setup ----------------------------------------------------
-
-export default class Issue extends React.Component {
- // life cycle events --------------------------------------------------
-
- render() {
- let error = this.props.error
-
- // build error location string
- let errLocation = ''
- if (error.line) {
- errLocation += 'Line: ' + error.line + ' '
- }
- if (error.character) {
- errLocation += 'Character: ' + error.character + ''
- }
- if (errLocation === '' && error.evidence) {
- errLocation = 'Evidence: '
- }
-
- return (
-
-
- {error.file.name}
-
- {error.file.size / 1000} KB | {error.file.type}
-
-
-
- Location:
- {error.file.webkitRelativePath}
- Reason:
- {error.reason}
-
-
- {errLocation}
- {error.evidence}
-
-
- )
- }
-
- // custom methods -----------------------------------------------------
-}
-
-Issue.propTypes = {
- file: PropTypes.object,
- error: PropTypes.object,
- type: PropTypes.string.isRequired,
-}
diff --git a/bids-validator-web/components/results/Issues.jsx b/bids-validator-web/components/results/Issues.jsx
deleted file mode 100644
index 7d2c5cec..00000000
--- a/bids-validator-web/components/results/Issues.jsx
+++ /dev/null
@@ -1,147 +0,0 @@
-// dependencies -----------------------------------------------------------
-
-import React from 'react'
-import PropTypes from 'prop-types'
-import { Card, Collapse } from 'react-bootstrap'
-import pluralize from 'pluralize'
-import Issue from './Issue'
-
-// component setup --------------------------------------------------------
-
-class Issues extends React.Component {
- constructor() {
- super()
- this.state = {
- showMore: [],
- errorOpen: false,
- }
- }
-
- // life cycle events ------------------------------------------------------
-
- render() {
- let self = this
- let issueFiles = this.props.issues
- let issues = issueFiles.map((issue, index) => {
- let files = issue.files
- if (this.state.showMore.indexOf(index) === -1) {
- files = issue.files.slice(0, 10)
- }
-
- // issue sub-errors
- let hasErrorFiles = false
- let subErrors = files.map(function (error, index2) {
- if (error && error.file) {
- hasErrorFiles = true
- return (
-
- )
- }
- })
-
- // issue card
- if (hasErrorFiles) {
- return (
-
-
- this.setState({ errorOpen: !this.state.errorOpen })
- }>
- {this._header(issue, index, this.props.issueType, hasErrorFiles)}
-
-
-
- {subErrors}
- {this._viewMore(issue.files, index)}
-
-
-
- )
- } else {
- return (
-
-
- {this._header(issue, index, this.props.issueType, hasErrorFiles)}
-
-
- )
- }
- })
- return {issues}
- }
-
- // template methods -------------------------------------------------------
-
- _header(issue, index, type, hasErrorFiles) {
- let issueCount = pluralize('files', issue.files.length)
- let fileCount
- if (hasErrorFiles) {
- fileCount = (
-
- {issue.files.length} {issueCount}
-
- )
- }
- return (
-
-
-
- {type} {index + 1}: [Code {issue.code}] {issue.key}
-
-
- {this._issueLink(issue)}
- {issue.reason}
- {fileCount}
-
- )
- }
-
- _issueLink(issue) {
- if (issue && issue.helpUrl) {
- return (
-
-
- Click here for more information about this issue
-
-
- )
- } else {
- return null
- }
- }
-
- _viewMore(files, index) {
- if (this.state.showMore.indexOf(index) === -1 && files.length > 10) {
- return (
-
- View {files.length - 10} more files
-
- )
- }
- }
-
- // custom methods ---------------------------------------------------------
-
- _showMore(index) {
- let showMore = this.state.showMore
- showMore.push(index)
- this.setState({ showMore })
- }
-}
-
-Issues.propTypes = {
- issues: PropTypes.array.isRequired,
- issueType: PropTypes.string.isRequired,
-}
-
-export default Issues
diff --git a/bids-validator-web/components/results/Results.jsx b/bids-validator-web/components/results/Results.jsx
deleted file mode 100644
index 57067a97..00000000
--- a/bids-validator-web/components/results/Results.jsx
+++ /dev/null
@@ -1,129 +0,0 @@
-// dependencies -----------------------------------------------------------
-
-import React from 'react'
-import { Card, Collapse, Alert } from 'react-bootstrap'
-import PropTypes from 'prop-types'
-import pluralize from 'pluralize'
-import Issues from './Issues'
-
-// component setup --------------------------------------------------------
-
-export default class ValidationResults extends React.Component {
- constructor() {
- super()
- this.state = {
- warningsOpen: false,
- errorsOpen: false,
- }
- }
- // life cycle events ------------------------------------------------------
-
- render() {
- let errors = this.props.errors
- let warnings = this.props.warnings
-
- // errors
- let errorsWrap
- if (errors.length > 0) {
- let fileCount = this._countFiles(errors)
- let errorHeader = (
-
- view {errors.length} {pluralize('error', errors.length)}{' '}
- {this._countText(fileCount)}
-
- )
- errorsWrap = (
-
-
- this.setState({ errorsOpen: !this.state.errorsOpen })
- }
- aria-controls="errors-issues"
- aria-expanded={this.state.errorsOpen}
- variant="danger"
- className="mb-0">
- {errorHeader}
-
-
-
-
-
-
-
- )
- }
-
- //warnings
- let warningWrap
- if (warnings.length > 0) {
- let fileCount = this._countFiles(warnings)
- let warningHeader = (
-
- view {warnings.length} {pluralize('warning', warnings.length)}{' '}
- {this._countText(fileCount)}
-
- )
- warningWrap = (
-
-
- this.setState({ warningsOpen: !this.state.warningsOpen })
- }
- aria-controls="warning-issues"
- aria-expanded={this.state.warningsOpen}
- variant="warning"
- className="mb-0">
- {warningHeader}
-
-
-
-
-
-
-
- )
- }
-
- // validations errors and warning wraps
- return (
- //
-
- {errorsWrap}
- {warningWrap}
-
- //
- )
- }
-
- // custom methods ---------------------------------------------------------
-
- _countFiles(issues) {
- let numFiles = 0
- for (let issue of issues) {
- if (issue.files.length > 1 || !!issue.files[0].file) {
- numFiles += issue.files.length
- }
- }
- return numFiles
- }
-
- _countText(count) {
- if (count > 0) {
- return (
-
- in {count} {pluralize('files', count)}
-
- )
- }
- }
-}
-
-ValidationResults.propTypes = {
- errors: PropTypes.array,
- warnings: PropTypes.array,
-}
-
-ValidationResults.Props = {
- errors: [],
- warnings: [],
-}
diff --git a/bids-validator-web/index.scss b/bids-validator-web/index.scss
deleted file mode 100644
index af3f4f35..00000000
--- a/bids-validator-web/index.scss
+++ /dev/null
@@ -1,156 +0,0 @@
-body {
- font-size: 14px;
-}
-
-h4 {
- font-size: 18px;
-}
-
-label {
- font-weight: bold;
-}
-
-h5 {
- font-size: 14px;
-}
-
-.page-wrapper {
- padding-top: 80px;
-}
-
-form.options label {
- margin: 0;
- padding-right: 2rem;
- font-weight: normal;
-}
-form.options input {
- margin-right: 0.4rem;
-}
-
-.validation-error {
- position: relative;
-}
-.validation-error > .card-header > .file-header > .pull-right {
- position: absolute;
- top: 15px;
- right: 15px;
-}
-
-.validation-error > .card-body > .file-header,
-.pull-right {
- float: right;
- top: 15px;
- right: 15px;
-}
-
-.issues {
- .validation-messages {
- padding-top: 20px;
- }
- button > span {
- float: right;
- }
- .issue {
- border-bottom: 1px solid #ccc;
- .pull-right {
- font-size: 14px;
- }
- }
- .issue:last-child {
- border-bottom: none;
- }
- .issues-view-more {
- padding-top: 15px;
- button {
- border: none;
- background: none;
- color: #337ab7;
- font-size: 18px;
- }
- button:hover {
- text-decoration: underline;
- color: #23527c;
- }
- }
-}
-
-.upload-panel > .alert,
-.error-header {
- cursor: pointer;
-}
-
-.summary {
- font-size: 14px;
-}
-
-.error-log {
- margin-bottom: 10px;
-}
-
-.loading-wrap {
- padding: 20px 0 30px;
- text-align: center;
- position: relative;
- span {
- text-transform: uppercase;
- margin-top: 5px;
- display: block;
- font-size: 12px;
- color: #337ab7;
- }
- .spinner,
- .spinnerinner {
- position: relative;
- border: 4px solid #337ab7;
- border-color: transparent #337ab7;
- margin: auto;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-border-radius: 50%;
- -moz-border-radius: 50%;
- border-radius: 50%;
- width: 45px;
- height: 45px;
- padding: 0;
- margin: 0;
- }
-
- .spinner {
- animation: spin 4s linear 0s infinite normal;
- margin: 0 auto;
- }
-
- .spinnerinner {
- border-width: 2px;
- margin: 21%;
- padding: 0;
- border-radius: 50%;
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- display: block;
- width: 60%;
- height: 60%;
- animation: innerspin 1s linear 0s infinite normal;
- }
-}
-
-@keyframes spin {
- from {
- -webkit-transform: rotate(0);
- }
- to {
- -webkit-transform: rotate(360deg);
- }
-}
-@keyframes innerspin {
- from {
- -webkit-transform: rotate(0);
- }
- to {
- -webkit-transform: rotate(360deg);
- }
-}
diff --git a/bids-validator-web/next.config.js b/bids-validator-web/next.config.js
deleted file mode 100644
index 13965153..00000000
--- a/bids-validator-web/next.config.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// next.config.js
-
-module.exports = {
- output: 'export',
- transpilePackages: ['bids-validator'],
- assetPrefix: './',
- webpack: (config, {}) => {
- config.watchOptions.ignored = '**/node_modules'
- return config
- },
-}
diff --git a/bids-validator-web/package.json b/bids-validator-web/package.json
deleted file mode 100644
index 9abd4978..00000000
--- a/bids-validator-web/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "bids-validator-web",
- "version": "1.14.15-dev.0",
- "description": "web client for bids-validator",
- "main": "index.js",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.22.10",
- "bootstrap": "^5.3.3",
- "eslint-config-next": "^14.2.13",
- "next": "^14.0.0",
- "pluralize": "^8.0.0",
- "react": "^18.3.1",
- "react-bootstrap": "^2.10.5",
- "react-dom": "^18.3.1",
- "sass": "^1.79.4"
- },
- "scripts": {
- "dev": "next",
- "build": "next build",
- "start": "next start"
- },
- "devDependencies": {
- "@next/eslint-plugin-next": "^14.2.13"
- }
-}
diff --git a/bids-validator-web/pages/_app.js b/bids-validator-web/pages/_app.js
deleted file mode 100644
index e766d5e6..00000000
--- a/bids-validator-web/pages/_app.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import '../../node_modules/bootstrap/dist/css/bootstrap.min.css'
-import '../index.scss'
-
-function MyApp({ Component, pageProps }) {
- return
-}
-
-export default MyApp
diff --git a/bids-validator-web/pages/index.js b/bids-validator-web/pages/index.js
deleted file mode 100644
index 35dc4231..00000000
--- a/bids-validator-web/pages/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import React from 'react'
-import App from '../components/App'
-
-const AppComponent = () =>
-
-export default AppComponent
diff --git a/bids-validator/bids_validator/rules/associated_data_rules.json b/bids-validator/bids_validator/rules/associated_data_rules.json
deleted file mode 100644
index 96de6a67..00000000
--- a/bids-validator/bids_validator/rules/associated_data_rules.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "associated_data": {
- "regexp": "^[\\/\\\\](?:@@@_associated_data_type_@@@)[\\/\\\\](?:.*)$",
- "tokens": {
- "@@@_associated_data_type_@@@": [
- "code",
- "derivatives",
- "sourcedata",
- "stimuli"
- ]
- }
- }
-}
diff --git a/bids-validator/bids_validator/rules/file_level_rules.json b/bids-validator/bids_validator/rules/file_level_rules.json
deleted file mode 100644
index 291c4c6c..00000000
--- a/bids-validator/bids_validator/rules/file_level_rules.json
+++ /dev/null
@@ -1,658 +0,0 @@
-{
- "anat_nonparametric": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?(?:_part-(imag|mag|phase|real))?(?:_chunk-[0-9]+)?_(?:@@@_anat_suffixes_@@@)\\.(@@@_anat_ext_@@@)$",
- "tokens": {
- "@@@_anat_suffixes_@@@": [
- "T1w",
- "T2w",
- "PDw",
- "T2starw",
- "FLAIR",
- "inplaneT1",
- "inplaneT2",
- "PDT2",
- "angio",
- "T2star",
- "FLASH",
- "PD"
- ],
- "@@@_anat_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "anat_parametric": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_(?:@@@_anat_suffixes_@@@)\\.(@@@_anat_ext_@@@)$",
- "tokens": {
- "@@@_anat_suffixes_@@@": [
- "T1map",
- "T2map",
- "T2starmap",
- "R1map",
- "R2map",
- "R2starmap",
- "PDmap",
- "MTRmap",
- "MTsat",
- "UNIT1",
- "T1rho",
- "MWFmap",
- "MTVmap",
- "PDT2map",
- "Chimap",
- "S0map",
- "M0map"
- ],
- "@@@_anat_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "anat_defacemask": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_mod-(?:@@@_anat_suffixes_@@@))?_defacemask\\.(@@@_anat_ext_@@@)$",
- "tokens": {
- "@@@_anat_suffixes_@@@": [
- "T1w",
- "T2w",
- "PDw",
- "T2starw",
- "FLAIR",
- "inplaneT1",
- "inplaneT2",
- "PDT2",
- "angio",
- "T1map",
- "T2map",
- "T2starmap",
- "R1map",
- "R2map",
- "R2starmap",
- "PDmap",
- "MTRmap",
- "MTsat",
- "UNIT1",
- "T1rho",
- "MWFmap",
- "MTVmap",
- "PDT2map",
- "Chimap",
- "TB1map",
- "RB1map",
- "S0map",
- "M0map",
- "MESE",
- "MEGRE",
- "VFA",
- "IRT1",
- "MP2RAGE",
- "MPM",
- "MTS",
- "MTR",
- "T2star",
- "FLASH",
- "PD"
- ],
- "@@@_anat_ext_@@@": ["nii.gz", "nii"]
- }
- },
-
- "anat_multiecho": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_echo-[0-9]+?(_part-(imag|mag|phase|real))?_(?:@@@_anat_suffixes_@@@)\\.(@@@_anat_ext_@@@)$",
- "tokens": {
- "@@@_anat_suffixes_@@@": ["MESE", "MEGRE"],
- "@@@_anat_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "anat_multiflip": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_flip-[0-9]+?(?:_part-(imag|mag|phase|real))?_(?:@@@_anat_suffixes_@@@)\\.(@@@_anat_ext_@@@)$",
- "tokens": {
- "@@@_anat_suffixes_@@@": ["VFA"],
- "@@@_anat_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "anat_multiinv": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_inv-[0-9]+?(?:_part-(imag|mag|phase|real))?_(?:@@@_anat_suffixes_@@@)\\.(@@@_anat_ext_@@@)$",
- "tokens": {
- "@@@_anat_suffixes_@@@": ["IRT1"],
- "@@@_anat_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "anat_mp2rage": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?(?:_flip-[0-9]+)?_inv-[0-9]+?(?:_part-(imag|mag|phase|real))?_(?:@@@_anat_suffixes_@@@)\\.(@@@_anat_ext_@@@)$",
- "tokens": {
- "@@@_anat_suffixes_@@@": ["MP2RAGE"],
- "@@@_anat_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "anat_vfa_mt": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?_flip-[0-9]+?_mt-(on|off)?(?:_part-(imag|mag|phase|real))?_(?:@@@_anat_suffixes_@@@)\\.(@@@_anat_ext_@@@)$",
- "tokens": {
- "@@@_anat_suffixes_@@@": ["MPM", "MTS"],
- "@@@_anat_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "anat_mtr": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_mt-(on|off)?(?:_part-(imag|mag|phase|real))?_(?:@@@_anat_suffixes_@@@)\\.(@@@_anat_ext_@@@)$",
- "tokens": {
- "@@@_anat_suffixes_@@@": ["MTR"],
- "@@@_anat_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
- "anat_cont": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?anat[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?(?:_part-(imag|mag|phase|real))?(?:_recording-[a-zA-Z0-9]+)?(?:_chunk-[0-9]+)?(?:@@@_cont_ext_@@@)$",
- "tokens": {
- "@@@_cont_ext_@@@": [
- "_physio\\.tsv\\.gz",
- "_stim\\.tsv\\.gz",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
-
- "behavioral": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?beh[\\/\\\\]\\1(_\\2)?_task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?((?:@@@_behavioral_ext_@@@)|(?:_recording-[a-zA-Z0-9]+)?(?:@@@_cont_ext_@@@))$",
- "tokens": {
- "@@@_behavioral_ext_@@@": [
- "_beh\\.json",
- "_beh\\.tsv",
- "_events\\.json",
- "_events\\.tsv"
- ],
- "@@@_cont_ext_@@@": [
- "_physio\\.tsv\\.gz",
- "_stim\\.tsv\\.gz",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
-
- "dwi": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?dwi[\\/\\\\]\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_dir-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_part-(imag|mag|phase|real))?((?:@@@_dwi_ext_@@@)|(?:_recording-[a-zA-Z0-9]+)?(?:@@@_cont_ext_@@@))$",
- "tokens": {
- "@@@_dwi_ext_@@@": [
- "_dwi\\.nii\\.gz",
- "_dwi\\.nii",
- "_dwi\\.json",
- "_dwi\\.bvec",
- "_dwi\\.bval",
- "_sbref\\.nii\\.gz",
- "_sbref\\.nii",
- "_sbref\\.json"
- ],
- "@@@_cont_ext_@@@": [
- "_physio\\.tsv\\.gz",
- "_stim\\.tsv\\.gz",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
-
- "fmap_gre": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?fmap[\\/\\\\]\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_(?:@@@_field_map_type_@@@)\\.(@@@_field_map_ext_@@@)$",
- "tokens": {
- "@@@_field_map_type_@@@": [
- "phasediff",
- "phase1",
- "phase2",
- "magnitude1",
- "magnitude2",
- "magnitude",
- "fieldmap"
- ],
- "@@@_field_map_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "fmap_pepolar_asl": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?fmap[\\/\\\\]\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?_dir-[a-zA-Z0-9]+(?:_run-[0-9]+)?(?:_part-(mag|phase|real|imag))?(?:_chunk-[0-9]+)?_(?:@@@_field_map_type_@@@)\\.(@@@_field_map_ext_@@@)$",
- "tokens": {
- "@@@_field_map_type_@@@": ["m0scan", "epi"],
- "@@@_field_map_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "fmap_TB1DAM": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?fmap[\\/\\\\]\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_flip-[0-9]+?(?:_part-(imag|mag|phase|real))?_(?:@@@_field_map_type_@@@)\\.(@@@_field_map_ext_@@@)$",
- "tokens": {
- "@@@_field_map_type_@@@": ["TB1DAM"],
- "@@@_field_map_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "fmap_TB1EPI": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?fmap[\\/\\\\]\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_echo-[0-9]+?_flip-[0-9]+?(?:_inv-[0-9]+)?(?:_part-(imag|mag|phase|real))?_(?:@@@_field_map_type_@@@)\\.(@@@_field_map_ext_@@@)$",
- "tokens": {
- "@@@_field_map_type_@@@": ["TB1EPI"],
- "@@@_field_map_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "fmap_rf": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?fmap[\\/\\\\]\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?(?:_flip-[0-9]+)?(?:_inv-[0-9]+)?(?:_part-(imag|mag|phase|real))?_(?:@@@_field_map_type_@@@)\\.(@@@_field_map_ext_@@@)$",
- "tokens": {
- "@@@_field_map_type_@@@": ["TB1AFI", "TB1TFL", "TB1RFM", "RB1COR"],
- "@@@_field_map_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "fmap_TB1SRGE": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?fmap[\\/\\\\]\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?_flip-[0-9]+?_inv-[0-9]+?(?:_part-(imag|mag|phase|real))?_(?:@@@_field_map_type_@@@)\\.(@@@_field_map_ext_@@@)$",
- "tokens": {
- "@@@_field_map_type_@@@": ["TB1SRGE"],
- "@@@_field_map_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "fmap_parametric": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?fmap[\\/\\\\]\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_(?:@@@_field_map_type_@@@)\\.(@@@_field_map_ext_@@@)$",
- "tokens": {
- "@@@_field_map_type_@@@": ["TB1map", "RB1map"],
- "@@@_field_map_ext_@@@": ["nii\\.gz", "nii", "json"]
- }
- },
-
- "func": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?func[\\/\\\\]\\1(_\\2)?_task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_dir-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?(?:_part-(imag|mag|phase|real))?(?:@@@_func_ext_@@@)$",
- "tokens": {
- "@@@_func_ext_@@@": [
- "_bold\\.nii\\.gz",
- "_bold\\.nii",
- "_bold\\.json",
- "_cbv\\.nii\\.gz",
- "_cbv\\.nii",
- "_cbv\\.json",
- "_sbref\\.nii\\.gz",
- "_sbref\\.nii",
- "_sbref\\.json"
- ]
- }
- },
-
- "func_phase_deprecated": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?func[\\/\\\\]\\1(_\\2)?_task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_dir-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?(?:@@@_func_ext_@@@)$",
- "tokens": {
- "@@@_func_ext_@@@": ["_phase\\.nii\\.gz", "_phase\\.nii", "_phase\\.json"]
- }
- },
-
- "func_events": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?func[\\/\\\\]\\1(_\\2)?_task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_dir-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:@@@_func_ext_@@@)$",
- "tokens": {
- "@@@_func_ext_@@@": ["_events\\.tsv", "_events\\.json"]
- }
- },
-
- "func_timeseries": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?func[\\/\\\\]\\1(_\\2)?_task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_dir-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_recording-[a-zA-Z0-9]+)?(?:@@@_cont_ext_@@@)$",
- "tokens": {
- "@@@_cont_ext_@@@": [
- "_physio\\.tsv\\.gz",
- "_stim\\.tsv\\.gz",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
-
- "func_bold": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?func[\\/\\\\]\\1(_\\2)?_task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_dir-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?(?:_part-(imag|mag|phase|real))?(?:@@@_func_bold_ext_@@@)$",
- "tokens": {
- "@@@_func_bold_ext_@@@": [
- "_bold\\.nii\\.gz",
- "_bold\\.nii",
- "_sbref\\.nii\\.gz",
- "_sbref\\.nii"
- ]
- }
- },
-
- "asl": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?perf[\\/\\\\]\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_dir-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:(?:@@@_asl_type_@@@)|(?:_recording-[a-zA-Z0-9]+)?(?:@@@_cont_ext_@@@))$",
- "tokens": {
- "@@@_asl_type_@@@": [
- "_asl\\.nii\\.gz",
- "_asl\\.nii",
- "_asl\\.json",
- "_m0scan\\.nii\\.gz",
- "_m0scan\\.nii",
- "_m0scan\\.json",
- "_aslcontext\\.tsv",
- "_asllabeling\\.jpg"
- ],
- "@@@_cont_ext_@@@": [
- "_physio\\.tsv\\.gz",
- "_stim\\.tsv\\.gz",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
-
- "eeg": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?eeg[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_split-[0-9]+)?(?:_space-(@@@_eeg_space_@@@))?((_eeg\\.(@@@_eeg_type_@@@)|(@@@_eeg_ext_@@@))|(?:_recording-[a-zA-Z0-9]+)?(?:@@@_cont_ext_@@@))$",
- "tokens": {
- "@@@_eeg_space_@@@": [
- "Other",
- "CapTrak",
- "EEGLAB",
- "EEGLAB-HJ",
- "CTF",
- "ElektaNeuromag",
- "4DBti",
- "KitYokogawa",
- "ChietiItab",
- "ICBM452AirSpace",
- "ICBM452Warp5Space",
- "IXI549Space",
- "fsaverage",
- "fsaverageSym",
- "fsLR",
- "MNIColin27",
- "MNI152Lin",
- "MNI152NLin2009aSym",
- "MNI152NLin2009bSym",
- "MNI152NLin2009cSym",
- "MNI152NLin2009aAsym",
- "MNI152NLin2009bAsym",
- "MNI152NLin2009cAsym",
- "MNI152NLin6Sym",
- "MNI152NLin6ASym",
- "MNI305",
- "NIHPD",
- "OASIS30AntsOASISAnts",
- "OASIS30Atropos",
- "Talairach",
- "UNCInfant",
- "fsaverage3",
- "fsaverage4",
- "fsaverage5",
- "fsaverage6",
- "fsaveragesym",
- "UNCInfant0V21",
- "UNCInfant1V21",
- "UNCInfant2V21",
- "UNCInfant0V22",
- "UNCInfant1V22",
- "UNCInfant2V22",
- "UNCInfant0V23",
- "UNCInfant1V23",
- "UNCInfant2V23"
- ],
- "@@@_eeg_type_@@@": ["vhdr", "vmrk", "eeg", "edf", "bdf", "set", "fdt"],
- "@@@_eeg_ext_@@@": [
- "_events\\.json",
- "_events\\.tsv",
- "_electrodes\\.json",
- "_electrodes\\.tsv",
- "_channels\\.json",
- "_channels\\.tsv",
- "_eeg\\.json",
- "_coordsystem\\.json",
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif"
- ],
- "@@@_cont_ext_@@@": [
- "_physio\\.tsv\\.gz",
- "_stim\\.tsv\\.gz",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
- "ieeg": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?ieeg[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_split-[0-9]+)?(?:_space-(@@@_ieeg_space_@@@))?((_ieeg\\.(@@@_ieeg_type_@@@)|(@@@_ieeg_ext_@@@))|(?:_recording-[a-zA-Z0-9]+)?(?:@@@_cont_ext_@@@))$",
- "tokens": {
- "@@@_ieeg_space_@@@": [
- "Other",
- "Pixels",
- "ACPC",
- "ScanRAS",
- "ICBM452AirSpace",
- "ICBM452Warp5Space",
- "IXI549Space",
- "fsaverage",
- "fsaverageSym",
- "fsLR",
- "MNIColin27",
- "MNI152Lin",
- "MNI152NLin2009aSym",
- "MNI152NLin2009bSym",
- "MNI152NLin2009cSym",
- "MNI152NLin2009aAsym",
- "MNI152NLin2009bAsym",
- "MNI152NLin2009cAsym",
- "MNI152NLin6Sym",
- "MNI152NLin6ASym",
- "MNI305",
- "NIHPD",
- "OASIS30AntsOASISAnts",
- "OASIS30Atropos",
- "Talairach",
- "UNCInfant",
- "fsaverage3",
- "fsaverage4",
- "fsaverage5",
- "fsaverage6",
- "fsaveragesym",
- "UNCInfant0V21",
- "UNCInfant1V21",
- "UNCInfant2V21",
- "UNCInfant0V22",
- "UNCInfant1V22",
- "UNCInfant2V22",
- "UNCInfant0V23",
- "UNCInfant1V23",
- "UNCInfant2V23"
- ],
- "@@@_ieeg_type_@@@": [
- "edf",
- "vhdr",
- "vmrk",
- "eeg",
- "set",
- "fdt",
- "nwb",
- "mefd[\\/\\\\].*"
- ],
- "@@@_ieeg_ext_@@@": [
- "_events\\.json",
- "_events\\.tsv",
- "_electrodes\\.json",
- "_electrodes\\.tsv",
- "_channels\\.json",
- "_channels\\.tsv",
- "_ieeg\\.json",
- "_coordsystem\\.json",
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif"
- ],
- "@@@_cont_ext_@@@": [
- "_physio\\.tsv\\.gz",
- "_stim\\.tsv\\.gz",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
-
- "meg": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?meg[\\/\\\\]\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_split-[0-9]+)?(_digitizer\\.txt|_meg(@@@_meg_type_@@@[\\/\\\\](.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*|[\\/\\\\](.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*)|(@@@_meg_ext_@@@)|(?:_recording-[a-zA-Z0-9]+)?(?:@@@_cont_ext_@@@))$",
- "tokens": {
- "@@@_meg_type_@@@": [
- "\\.ds[\\/\\\\].*",
- "\\.(?:chn|kdf|trg)",
- "\\.(?:raw|raw\\.mhd)",
- "\\.fif",
- "\\.(?:con|sqd)",
- "\\.(?:kdf|chn|trg)"
- ],
- "@@@_meg_ext_@@@": [
- "_events\\.json",
- "_events\\.tsv",
- "_channels\\.json",
- "_channels\\.tsv",
- "_electrodes\\.json",
- "_electrodes\\.tsv",
- "_meg\\.json",
- "_coordsystem\\.json",
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif",
- "_headshape\\.pos",
- "_markers\\.(?:mrk|sqd)"
- ],
- "@@@_cont_ext_@@@": [
- "_physio\\.tsv\\.gz",
- "_stim\\.tsv\\.gz",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
-
- "meg_calbibration": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?meg[\\/]\\1(_\\2)?_acq-calibration_meg\\.dat$"
- },
-
- "meg_crosstalk": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?meg[\\/]\\1(_\\2)?_acq-crosstalk_meg\\.fif$"
- },
-
- "stimuli": {
- "regexp": "^[\\/\\\\](?:stimuli)[\\/\\\\](?:.*)$"
- },
-
- "nirs": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?nirs[\\/\\\\]\\1(_\\2)?(((?:_acq-[a-zA-Z0-9]+)?(@@@_nirs_optodes_@@@))|((?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_nirs\\.(@@@_nirs_type_@@@)|(@@@_nirs_ext_@@@))))$",
- "tokens": {
- "@@@_nirs_type_@@@": ["snirf"],
- "@@@_nirs_ext_@@@": [
- "_events\\.json",
- "_events\\.tsv",
- "_channels\\.json",
- "_channels\\.tsv",
- "_nirs\\.json",
- "_photo\\.jpg"
- ],
- "@@@_nirs_optodes_@@@": [
- "_optodes\\.tsv",
- "_optodes\\.json",
- "_coordsystem\\.json"
- ]
- }
- },
-
- "pet": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?pet[\\/\\\\](sub-[a-zA-Z0-9]+)(?:(_ses-[a-zA-Z0-9]+))?(?:_task-[a-zA-Z0-9]+)?(?:_trc-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:(?:@@@_pet_ext_@@@)|(?:_recording-[a-zA-Z0-9]+)?(?:@@@_cont_ext_@@@))$",
- "tokens": {
- "@@@_pet_ext_@@@": [
- "_pet\\.nii\\.gz",
- "_pet\\.nii",
- "_pet\\.json",
- "_events\\.json",
- "_events\\.tsv"
- ],
- "@@@_cont_ext_@@@": [
- "_physio\\.tsv\\.gz",
- "_stim\\.tsv\\.gz",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
-
- "pet_blood": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?pet[\\/\\\\](sub-[a-zA-Z0-9]+)(?:(_ses-[a-zA-Z0-9]+))?(?:_task-[a-zA-Z0-9]+)?(?:_trc-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_recording-[a-zA-Z0-9]+)_(@@@_pet_ext_@@@)$",
- "tokens": {
- "@@@_pet_ext_@@@": ["blood\\.tsv\\.gz", "blood\\.tsv", "blood\\.json"]
- }
- },
- "motion": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?motion[\\/\\\\]\\1(_\\2)?_task-[a-zA-Z0-9]+(_tracksys-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_(@@@_motion_ext_@@@))|((?:_tracksys-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_(@@@_cont_ext_@@@))$",
- "tokens": {
- "@@@_motion_ext_@@@": [
- "channels\\.json",
- "channels\\.tsv",
- "motion\\.json",
- "motion\\.tsv"
- ],
- "@@@_cont_ext_@@@": ["events\\.json", "events\\.tsv"]
- }
- },
- "microscopy": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?micr[\\/\\\\](sub-[a-zA-Z0-9]+)(?:(_ses-[a-zA-Z0-9]+))?(?:_sample-[a-zA-Z0-9]+)(?:_acq-[a-zA-Z0-9]+)?(?:_stain-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_chunk-[0-9]+)?((@@@_microscopy_type_@@@)(@@@_microscopy_ext_@@@))$",
- "tokens": {
- "@@@_microscopy_type_@@@": [
- "_TEM",
- "_SEM",
- "_uCT",
- "_BF",
- "_DF",
- "_PC",
- "_DIC",
- "_FLUO",
- "_CONF",
- "_PLI",
- "_CARS",
- "_2PE",
- "_MPE",
- "_SR",
- "_NLO",
- "_OCT",
- "_SPIM",
- "_XPCT"
- ],
- "@@@_microscopy_ext_@@@": [
- "\\.ome\\.tif",
- "\\.ome\\.btf",
- "\\.ome\\.zarr[\\/\\\\].*",
- "\\.tif",
- "\\.png"
- ]
- }
- },
- "microscopy_photo": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?micr[\\/\\\\](sub-[a-zA-Z0-9]+)(?:(_ses-[a-zA-Z0-9]+))?(?:_sample-[a-zA-Z0-9]+)(?:_acq-[a-zA-Z0-9]+)?(@@@_photo_ext_@@@)$",
- "tokens": {
- "@@@_photo_ext_@@@": [
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif",
- "_photo\\.json"
- ]
- }
- },
- "microscopy_json": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?micr[\\/\\\\](sub-[a-zA-Z0-9]+)(?:(_ses-[a-zA-Z0-9]+))?(?:_sample-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_stain-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_chunk-[0-9]+)?(@@@_microscopy_type_@@@)\\.json$",
- "tokens": {
- "@@@_microscopy_type_@@@": [
- "_TEM",
- "_SEM",
- "_uCT",
- "_BF",
- "_DF",
- "_PC",
- "_DIC",
- "_FLUO",
- "_CONF",
- "_PLI",
- "_CARS",
- "_2PE",
- "_MPE",
- "_SR",
- "_NLO",
- "_OCT",
- "_SPIM",
- "_XPCT"
- ]
- }
- }
-}
diff --git a/bids-validator/bids_validator/rules/phenotypic_rules.json b/bids-validator/bids_validator/rules/phenotypic_rules.json
deleted file mode 100644
index b981c01a..00000000
--- a/bids-validator/bids_validator/rules/phenotypic_rules.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "phenotypic_data": {
- "regexp": "^[\\/\\\\](?:phenotype)[\\/\\\\](?:.*\\.tsv|.*\\.json)$"
- }
-}
diff --git a/bids-validator/bids_validator/rules/session_level_rules.json b/bids-validator/bids_validator/rules/session_level_rules.json
deleted file mode 100644
index 90ba9982..00000000
--- a/bids-validator/bids_validator/rules/session_level_rules.json
+++ /dev/null
@@ -1,267 +0,0 @@
-{
- "scans": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(@@@_scat_ext_@@@)$",
- "tokens": {
- "@@@_scat_ext_@@@": ["_scans\\.tsv", "_scans\\.json"]
- }
- },
-
- "func_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?_task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?(@@@_func_ses_ext_@@@)$",
- "tokens": {
- "@@@_func_ses_ext_@@@": [
- "_bold\\.json",
- "_sbref\\.json",
- "_events\\.json",
- "_events\\.tsv",
- "_physio\\.json",
- "_stim\\.json"
- ]
- }
- },
-
- "asl_ses": {
- "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(@@@_asl_ses_ext_@@@)$",
- "tokens": {
- "@@@_asl_ses_ext_@@@": [
- "_asl\\.json",
- "_aslcontext\\.tsv",
- "_m0scan\\.json",
- "_asllabeling\\.jpg"
- ]
- }
- },
-
- "pet_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_trc-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+_)?(@@@_pet_ses_type_@@@)$",
- "tokens": {
- "@@@_pet_ses_type_@@@": ["_pet\\.json", "_events\\.json", "_events\\.tsv"]
- }
- },
-
- "anat_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+_)?(@@@_anat_ses_type_@@@)\\.json$",
- "tokens": {
- "@@@_anat_ses_type_@@@": [
- "T1w",
- "T2w",
- "T1map",
- "T2map",
- "T1rho",
- "FLAIR",
- "PD",
- "PDT2",
- "inplaneT1",
- "inplaneT2",
- "angio",
- "defacemask",
- "SWImagandphase"
- ]
- }
- },
-
- "dwi_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_)?dwi\\.(?:@@@_dwi_ses_ext_@@@)$",
- "tokens": {
- "@@@_dwi_ses_ext_@@@": ["json", "bval", "bvec"]
- }
- },
-
- "meg_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(@@@_meg_ses_type_@@@)$",
- "tokens": {
- "@@@_meg_ses_type_@@@": [
- "_events\\.tsv",
- "_channels\\.tsv",
- "_channels\\.json",
- "_meg\\.json",
- "_coordsystem\\.json",
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif",
- "_headshape\\.pos"
- ]
- }
- },
-
- "eeg_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_space-(@@@_eeg_space_@@@))?(@@@_eeg_ses_type_@@@)$",
- "tokens": {
- "@@@_eeg_ses_type_@@@": [
- "_events\\.tsv",
- "_channels\\.tsv",
- "_channels\\.json",
- "_electrodes\\.tsv",
- "_electrodes\\.json",
- "_eeg\\.json",
- "_coordsystem\\.json",
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif"
- ],
- "@@@_eeg_space_@@@": [
- "Other",
- "CapTrak",
- "EEGLAB",
- "EEGLAB-HJ",
- "CTF",
- "ElektaNeuromag",
- "4DBti",
- "KitYokogawa",
- "ChietiItab",
- "ICBM452AirSpace",
- "ICBM452Warp5Space",
- "IXI549Space",
- "fsaverage",
- "fsaverageSym",
- "fsLR",
- "MNIColin27",
- "MNI152Lin",
- "MNI152NLin2009aSym",
- "MNI152NLin2009bSym",
- "MNI152NLin2009cSym",
- "MNI152NLin2009aAsym",
- "MNI152NLin2009bAsym",
- "MNI152NLin2009cAsym",
- "MNI152NLin6Sym",
- "MNI152NLin6ASym",
- "MNI305",
- "NIHPD",
- "OASIS30AntsOASISAnts",
- "OASIS30Atropos",
- "Talairach",
- "UNCInfant",
- "fsaverage3",
- "fsaverage4",
- "fsaverage5",
- "fsaverage6",
- "fsaveragesym",
- "UNCInfant0V21",
- "UNCInfant1V21",
- "UNCInfant2V21",
- "UNCInfant0V22",
- "UNCInfant1V22",
- "UNCInfant2V22",
- "UNCInfant0V23",
- "UNCInfant1V23",
- "UNCInfant2V23"
- ]
- }
- },
-
- "ieeg_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_space-(@@@_ieeg_space_@@@))?(@@@_ieeg_ses_type_@@@)$",
- "tokens": {
- "@@@_ieeg_ses_type_@@@": [
- "_events\\.tsv",
- "_channels\\.tsv",
- "_channels\\.json",
- "_electrodes\\.tsv",
- "_electrodes\\.json",
- "_ieeg\\.json",
- "_coordsystem\\.json",
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif"
- ],
- "@@@_ieeg_space_@@@": [
- "Other",
- "Pixels",
- "ACPC",
- "ScanRAS",
- "ICBM452AirSpace",
- "ICBM452Warp5Space",
- "IXI549Space",
- "fsaverage",
- "fsaverageSym",
- "fsLR",
- "MNIColin27",
- "MNI152Lin",
- "MNI152NLin2009aSym",
- "MNI152NLin2009bSym",
- "MNI152NLin2009cSym",
- "MNI152NLin2009aAsym",
- "MNI152NLin2009bAsym",
- "MNI152NLin2009cAsym",
- "MNI152NLin6Sym",
- "MNI152NLin6ASym",
- "MNI305",
- "NIHPD",
- "OASIS30AntsOASISAnts",
- "OASIS30Atropos",
- "Talairach",
- "UNCInfant",
- "fsaverage3",
- "fsaverage4",
- "fsaverage5",
- "fsaverage6",
- "fsaveragesym",
- "UNCInfant0V21",
- "UNCInfant1V21",
- "UNCInfant2V21",
- "UNCInfant0V22",
- "UNCInfant1V22",
- "UNCInfant2V22",
- "UNCInfant0V23",
- "UNCInfant1V23",
- "UNCInfant2V23"
- ]
- }
- },
-
- "motion_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(@@@_motion_ses_type_@@@)$",
- "tokens": {
- "@@@_motion_ses_type_@@@": [
- "_events.tsv",
- "_events.json",
- "_channels.tsv",
- "_channels.json",
- "_motion.json",
- "_coordsystem.json"
- ]
- }
- },
- "microscopy_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(?:_sample-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_stain-[a-zA-Z0-9]+)?(?:_run-[0-9]+_)?(?:_chunk-[0-9]+)?(@@@_microscopy_ses_type_@@@)$",
- "tokens": {
- "@@@_microscopy_ses_type_@@@": [
- "_TEM\\.json",
- "_SEM\\.json",
- "_uCT\\.json",
- "_BF\\.json",
- "_DF\\.json",
- "_PC\\.json",
- "_DIC\\.json",
- "_FLUO\\.json",
- "_CONF\\.json",
- "_PLI\\.json",
- "_CARS\\.json",
- "_2PE\\.json",
- "_MPE\\.json",
- "_SR\\.json",
- "_NLO\\.json",
- "_OCT\\.json",
- "_SPIM\\.json",
- "_XPCT\\.json"
- ]
- }
- },
-
- "nirs_ses": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\](?:(ses-[a-zA-Z0-9]+)[\\/\\\\])?\\1(_\\2)?(((?:_acq-[a-zA-Z0-9]+)?(@@@_nirs_optodes_@@@))|((?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(@@@_nirs_ses_type_@@@)))$",
- "tokens": {
- "@@@_nirs_ses_type_@@@": [
- "_events\\.tsv",
- "_channels\\.tsv",
- "_nirs\\.json",
- "_photo\\.jpg"
- ],
- "@@@_nirs_optodes_@@@": [
- "_optodes\\.tsv",
- "_optodes\\.json",
- "_coordsystem\\.json"
- ]
- }
- }
-}
diff --git a/bids-validator/bids_validator/rules/subject_level_rules.json b/bids-validator/bids_validator/rules/subject_level_rules.json
deleted file mode 100644
index d2e80d92..00000000
--- a/bids-validator/bids_validator/rules/subject_level_rules.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "subject_level": {
- "regexp": "^[\\/\\\\](sub-[a-zA-Z0-9]+)[\\/\\\\]\\1(@@@_subject_level_ext_@@@)$",
- "tokens": {
- "@@@_subject_level_ext_@@@": ["_sessions\\.tsv", "_sessions\\.json"]
- }
- }
-}
diff --git a/bids-validator/bids_validator/rules/top_level_rules.json b/bids-validator/bids_validator/rules/top_level_rules.json
deleted file mode 100644
index 33e2a39d..00000000
--- a/bids-validator/bids_validator/rules/top_level_rules.json
+++ /dev/null
@@ -1,279 +0,0 @@
-{
- "root_top": {
- "regexp": "^[\\/\\\\]?(@@@_root_files_@@@)$",
- "tokens": {
- "@@@_root_files_@@@": [
- "README",
- "README\\.md",
- "README\\.rst",
- "README\\.txt",
- "CHANGES",
- "CITATION\\.cff",
- "LICENSE",
- "dataset_description\\.json",
- "genetic_info\\.json",
- "participants\\.tsv",
- "participants\\.json",
- "phasediff.json",
- "phase1\\.json",
- "phase2\\.json",
- "fieldmap\\.json",
- "TB1DAM\\.json",
- "TB1EPI\\.json",
- "TB1AFI\\.json",
- "TB1TFL\\.json",
- "TB1RFM\\.json",
- "TB1SRGE\\.json",
- "RB1COR\\.json",
- "events\\.json",
- "scans\\.json",
- "samples\\.json",
- "samples\\.tsv"
- ]
- }
- },
-
- "func_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_ce-[a-zA-Z0-9]+)?(?:_dir-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_echo-[0-9]+)?((?:@@@_func_top_ext_@@@)|(?:_recording-[a-zA-Z0-9]+)?(?:@@@_cont_ext_@@@))$",
- "tokens": {
- "@@@_func_top_ext_@@@": [
- "_bold\\.json",
- "_sbref\\.json",
- "_events\\.json",
- "_events\\.tsv",
- "_beh\\.json"
- ],
- "@@@_cont_ext_@@@": ["_physio\\.json", "_stim\\.json"]
- }
- },
-
- "asl_top": {
- "regexp": "^\\/(?:ses-[a-zA-Z0-9]+_)?(?:_acq-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(@@@_asl_top_ext_@@@)$",
- "tokens": {
- "@@@_asl_top_ext_@@@": [
- "_asl\\.json",
- "_m0scan\\.json",
- "_aslcontext\\.tsv",
- "_labeling.jpg"
- ]
- }
- },
-
- "pet_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:task-[a-zA-Z0-9]+_)?(?:trc-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(@@@_pet_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_pet_suffixes_@@@": ["pet"]
- }
- },
-
- "anat_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:task-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(@@@_anat_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_anat_suffixes_@@@": [
- "T1w",
- "T2w",
- "T1map",
- "T2map",
- "T1rho",
- "FLAIR",
- "PD",
- "PDT2",
- "inplaneT1",
- "inplaneT2",
- "angio",
- "SWImagandphase",
- "T2star",
- "FLASH",
- "PDmap",
- "photo"
- ]
- }
- },
-
- "VFA_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:ce-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:echo-[0-9]+_)?(?:flip-[0-9]+_)?(?:part-(mag|phase|real|imag)_)?(@@@_mese_megre_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_mese_megre_suffixes_@@@": ["VFA"]
- }
- },
-
- "megre_mese_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:ce-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:echo-[0-9]+_)?(?:part-(mag|phase|real|imag)_)?(@@@_mese_megre_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_mese_megre_suffixes_@@@": ["MEGRE", "MESE"]
- }
- },
-
- "irt1_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:ce-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:inv-[0-9]+_)?(?:part-(mag|phase|real|imag)_)?(@@@_irt1_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_irt1_suffixes_@@@": ["IRT1"]
- }
- },
-
- "mpm_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:ce-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:echo-[0-9]+_)?(?:flip-[0-9]+_)?(?:mt-(on|off)_)(?:part-(mag|phase|real|imag)_)?(@@@_mpm_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_mpm_suffixes_@@@": ["MPM"]
- }
- },
-
- "mts_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:ce-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:echo-[0-9]+_)?(?:flip-[0-9]+_mt-(on|off)_)?(?:part-(mag|phase|real|imag)_)?(@@@_mts_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_mts_suffixes_@@@": ["MTS"]
- }
- },
-
- "mtr_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:ce-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:mt-(on|off)_)?(?:part-(mag|phase|real|imag)_)?(@@@_mtr_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_mtr_suffixes_@@@": ["MTR"]
- }
- },
-
- "mp2rage_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:ce-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:echo-[0-9]+_)?(?:flip-[0-9]+_)?(?:inv-[0-9]+_)?(?:part-(mag|phase|real|imag)_)?(@@@_mp2rage_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_mp2rage_suffixes_@@@": ["MP2RAGE"]
- }
- },
-
- "unit1_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:task-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:ce-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:chunk-[0-9]+_)?(@@@_unit1_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_unit1_suffixes_@@@": ["UNIT1"]
- }
- },
-
- "dwi_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:dir-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:part-(mag|phase|real|imag)_)?(?:chunk-[0-9]+_)?(dwi\\.(?:@@@_dwi_top_ext_@@@)|sbref\\.json)$",
- "tokens": {
- "@@@_dwi_top_ext_@@@": ["json", "bval", "bvec"]
- }
- },
- "eeg_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:@@@_eeg_top_ext_@@@)$",
- "tokens": {
- "@@@_eeg_top_ext_@@@": [
- "_eeg\\.json",
- "_channels\\.tsv",
- "_channels\\.json",
- "_electrodes\\.tsv",
- "_electrodes\\.json",
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif",
- "_coordsystem\\.json"
- ]
- }
- },
- "ieeg_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:@@@_ieeg_top_ext_@@@)$",
- "tokens": {
- "@@@_ieeg_top_ext_@@@": [
- "_ieeg\\.json",
- "_channels\\.tsv",
- "_channels\\.json",
- "_electrodes\\.tsv",
- "_electrodes\\.json",
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif",
- "_coordsystem\\.json"
- ]
- }
- },
- "meg_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:@@@_meg_top_ext_@@@)$",
- "tokens": {
- "@@@_meg_top_ext_@@@": [
- "_meg\\.json",
- "_channels\\.tsv",
- "_channels\\.json",
- "_photo\\.jpg",
- "_photo\\.png",
- "_photo\\.tif",
- "_coordsystem\\.json"
- ]
- }
- },
- "motion_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?task-[a-zA-Z0-9]+(?:@@@_motion_top_ext_@@@)$",
- "tokens": {
- "@@@_motion_top_ext_@@@": [
- "_motion\\.json",
- "_channels\\.tsv",
- "_channels\\.json",
- "_coordsystem\\.json"
- ]
- }
- },
- "nirs_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(((?:_acq-[a-zA-Z0-9]+)?(@@@_nirs_optodes_@@@))|(task-[a-zA-Z0-9]+(?:_acq-[a-zA-Z0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:@@@_nirs_top_ext_@@@)))$",
- "tokens": {
- "@@@_nirs_top_ext_@@@": [
- "_nirs\\.json",
- "_channels\\.tsv",
- "_photo\\.jpg"
- ],
- "@@@_nirs_optodes_@@@": [
- "_optodes\\.tsv",
- "_optodes\\.json",
- "_coordsystem\\.json"
- ]
- }
- },
- "fmap_epi_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:ce-[a-zA-Z0-9]+_)?(?:dir-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:part-(mag|phase|real|imag)_)?(?:chunk-[0-9]+_)?(?:@@@_field_map_type_@@@)\\.json$",
- "tokens": {
- "@@@_field_map_type_@@@": ["m0scan", "epi"]
- }
- },
- "fmap_gre_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:chunk-[0-9]+_)?(@@@_fmap_gre_suffixes_@@@)\\.json$",
- "tokens": {
- "@@@_fmap_gre_suffixes_@@@": [
- "magnitude1",
- "magnitude2",
- "phasediff",
- "phase1",
- "phase2",
- "magnitude",
- "fieldmap"
- ]
- }
- },
- "other_top_files": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:task-[a-zA-Z0-9]+_)?(?:acq-[a-zA-Z0-9]+_)?(?:rec-[a-zA-Z0-9]+_)?(?:run-[0-9]+_)?(?:recording-[a-zA-Z0-9]+_)?(@@@_other_top_files_ext_@@@)$",
- "tokens": {
- "@@@_other_top_files_ext_@@@": ["physio\\.json", "stim\\.json"]
- }
- },
-
- "microscopy_top": {
- "regexp": "^[\\/\\\\](?:ses-[a-zA-Z0-9]+_)?(?:_sample-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_stain-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_chunk-[0-9]+)?(?:@@@_microscopy_top_ext_@@@)$",
- "tokens": {
- "@@@_microscopy_top_ext_@@@": [
- "_TEM\\.json",
- "_SEM\\.json",
- "_uCT\\.json",
- "_BF\\.json",
- "_DF\\.json",
- "_PC\\.json",
- "_DIC\\.json",
- "_FLUO\\.json",
- "_CONF\\.json",
- "_PLI\\.json",
- "_CARS\\.json",
- "_2PE\\.json",
- "_MPE\\.json",
- "_SR\\.json",
- "_NLO\\.json",
- "_OCT\\.json",
- "_SPIM\\.json",
- "_XPCT\\.json"
- ]
- }
- }
-}
diff --git a/bids-validator/bids_validator/tsv/non_custom_columns.json b/bids-validator/bids_validator/tsv/non_custom_columns.json
deleted file mode 100644
index 75dd3b61..00000000
--- a/bids-validator/bids_validator/tsv/non_custom_columns.json
+++ /dev/null
@@ -1,105 +0,0 @@
-{
- "channels": [
- "description",
- "high_cutoff",
- "low_cutoff",
- "name",
- "notch",
- "source",
- "detector",
- "wavelength_actual",
- "wavelength_nominal",
- "wavelength_emission_actual",
- "component",
- "short_channel",
- "sampling_frequency",
- "software_filters",
- "status",
- "status_description",
- "type",
- "units",
- "reference",
- "group",
- "tracking_system",
- "tracked_point",
- "component",
- "placement",
- "HED"
- ],
- "electrodes": [
- "name",
- "x",
- "y",
- "z",
- "size",
- "material",
- "manufacturer",
- "group",
- "hemisphere",
- "type",
- "impedance",
- "dimension",
- "HED"
- ],
- "optodes": [
- "name",
- "type",
- "x",
- "y",
- "z",
- "template_x",
- "template_y",
- "template_z",
- "source_type",
- "detector_type",
- "HED"
- ],
- "events": [
- "duration",
- "HED",
- "onset",
- "trial_type",
- "response_time",
- "stim_file",
- "HED"
- ],
- "misc": [],
- "participants": ["participant_id", "HED"],
- "phenotype": ["participant_id", "HED"],
- "scans": ["acq_time", "filename", "HED"],
- "samples": [
- "sample_id",
- "participant_id",
- "sample_type",
- "pathology",
- "derived_from",
- "HED"
- ],
- "sessions": ["acq_time", "session_id", "HED"],
- "aslcontext": ["volume_type", "HED"],
- "blood": [
- "time",
- "plasma_radioactivity",
- "whole_blood_radioactivity",
- "metabolite_parent_fraction",
- "hplc_recovery_fractions",
- "HED"
- ],
- "nirs": [
- "name",
- "type",
- "source",
- "detector",
- "wavelength_nominal",
- "units",
- "sampling_frequency",
- "component",
- "wavelength_actual",
- "description",
- "wavelength_emission_actual",
- "short_channel",
- "status",
- "status_description",
- "HED"
- ]
-}
diff --git a/bids-validator/bin/bids-validator b/bids-validator/bin/bids-validator
deleted file mode 100755
index c3490f04..00000000
--- a/bids-validator/bin/bids-validator
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env node
-function entry(cli) {
- cli(process.argv.slice(2)).catch(code => {
- process.exit(code)
- })
-}
-
-try {
- // Test if there's a development tree to run
- require.resolve('../cli.js')
- process.env.ESBUILD_MAX_BUFFER = 64 * 1024 * 1024
- // For dev, use esbuild-runner
- require('esbuild-runner/register')
- const { default: cli } = require('../cli.js')
- entry(cli)
-} catch (err) {
- if (err.code === 'MODULE_NOT_FOUND') {
- const { default: cli } = require('bids-validator/cli')
- entry(cli)
- } else {
- console.log(err)
- process.exitCode = 1
- }
-}
diff --git a/bids-validator/bin/test-submodule-exists b/bids-validator/bin/test-submodule-exists
deleted file mode 100755
index f111f3c0..00000000
--- a/bids-validator/bin/test-submodule-exists
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env node
-/* eslint-disable no-console */
-const fs = require('fs')
-
-/**
- * checks that submodule directory exists and is not empty
- * @param {string} path
- * @returns {boolean}
- */
-const checkTestData = path => {
- const submoduleDirExists = fs.existsSync(path) && fs.readdirSync(path).length
- return submoduleDirExists
-}
-
-/**
- * if submodule at current test version does not exist,
- * prompt user to update submodule
- */
-const main = () => {
- let testDataExists
- try {
- testDataExists = checkTestData('bids-validator/tests/data/bids-examples')
- } catch (err) {
- testDataExists = false
- console.error(err)
- }
- if (!testDataExists) {
- console.error(
- "\nError: It looks like you're missing the bids-examples test files. Please run `git submodule update --init --depth 1`.\n See project README for more information.\n",
- )
- process.exit(1)
- }
-}
-
-main()
diff --git a/bids-validator/cli.js b/bids-validator/cli.js
deleted file mode 100644
index 65be0ed1..00000000
--- a/bids-validator/cli.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/*eslint no-console: ["error", {allow: ["log"]}] */
-
-import { parseOptions } from './validators/options'
-import validate from './index.js'
-
-const format = validate.consoleFormat
-import colors from 'colors/safe'
-import fs from 'fs'
-import { filenamesOnly } from './utils/filenamesOnly.js'
-
-const errorToString = (err) => {
- if (err instanceof Error) return err.stack
- else if (typeof err === 'object') return JSON.parse(err)
- else return err
-}
-
-/**
- * Write a large string or buffer to stdout and wait for the drain event
- *
- * This is needed to avoid truncating buffered output when piped
- * @param {string} data
- * @param {function} cb
- */
-const writeStdout = (data, cb) => {
- if (!process.stdout.write(data)) {
- process.stdout.once('drain', cb)
- } else {
- process.nextTick(cb)
- }
-}
-
-export function cli(argumentOverride) {
- return new Promise((resolve, reject) => {
- // Setup CLI state when called via Node.js
- if (process.env['NO_COLOR'] !== undefined) {
- colors.disable()
- }
- process.title = 'bids-validator'
- const argv = parseOptions(argumentOverride)
- const dir = argv._[0]
- const options = argv
- process.on('unhandledRejection', (err) => {
- console.log(
- format.unexpectedError(
- // eslint-disable-next-line
- `Unhandled rejection (\n reason: ${errorToString(err)}\n).\n`,
- ),
- )
- reject(3)
- })
-
- if (options.filenames) {
- return filenamesOnly()
- }
-
- try {
- // Test if we can access the dataset directory at all
- fs.opendirSync(dir)
- } catch (err) {
- console.log(colors.red(dir + ' does not exist or is inaccessible'))
- reject(2)
- }
-
- validate.BIDS(dir, options, function (issues, summary) {
- function resolveOrReject() {
- if (
- issues === 'Invalid' ||
- (issues.errors && issues.errors.length >= 1) ||
- (issues.config && issues.config.length >= 1)
- ) {
- reject(1)
- } else {
- resolve(0)
- }
- }
- if (options.json) {
- writeStdout(JSON.stringify({ issues, summary }), resolveOrReject)
- } else {
- writeStdout(
- format.issues(issues, options) +
- '\n' +
- format.summary(summary, options),
- resolveOrReject,
- )
- }
- })
- })
-}
-
-export default cli
diff --git a/bids-validator/index.js b/bids-validator/index.js
deleted file mode 100644
index 593103f0..00000000
--- a/bids-validator/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// import validations
-import validate from './validators'
-
-// export validations for use in other applications
-export default validate
diff --git a/bids-validator/package.json b/bids-validator/package.json
deleted file mode 100644
index 3b330701..00000000
--- a/bids-validator/package.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "name": "bids-validator",
- "version": "1.14.15-dev.0",
- "description": "",
- "main": "./dist/commonjs/index.js",
- "exports": {
- ".": {
- "import": "./dist/esm/index.js",
- "require": "./dist/commonjs/index.js"
- },
- "./cli": {
- "require": "./dist/commonjs/cli.js"
- },
- "./utils/consoleFormat": {
- "require": "./dist/commonjs/consoleFormat.js"
- },
- "./package.json": "./package.json"
- },
- "scripts": {
- "build": "node ./esbuild.mjs",
- "prepublishOnly": "npm run build"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/bids-standard/bids-validator.git"
- },
- "engines": {
- "node": ">=18.0.0"
- },
- "bin": {
- "bids-validator": "bin/bids-validator"
- },
- "author": "Squishymedia",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/bids-standard/bids-validator/issues"
- },
- "homepage": "https://github.com/bids-standard/bids-validator",
- "dependencies": {
- "@aws-sdk/client-s3": "^3.637.0",
- "ajv": "^6.5.2",
- "bytes": "^3.1.2",
- "colors": "^1.4.0",
- "cross-fetch": "^4.0.0",
- "date-fns": "^4.1.0",
- "events": "^3.3.0",
- "exifreader": "^4.23.7",
- "hed-validator": "^3.15.4",
- "ignore": "^6.0.2",
- "is-utf8": "^0.2.1",
- "jest": "^29.7.0",
- "jshint": "^2.13.6",
- "lerna": "^8.1.8",
- "lodash": "^4.17.21",
- "minimatch": "3.0.5",
- "next": "14.2.13",
- "nifti-js": "^1.0.1",
- "p-limit": "^2.1.0",
- "pako": "^1.0.6",
- "path": "^0.12.7",
- "pluralize": "^8.0.0",
- "semver": "^7.6.3",
- "stream-browserify": "^3.0.0",
- "table": "^6.8.2",
- "util": "^0.12.5",
- "xml2js": "^0.6.2",
- "yaml": "^2.3.1",
- "yargs": "^17.7.2"
- },
- "devDependencies": {
- "adm-zip": "",
- "chai": "",
- "esbuild": "^0.24.0",
- "esbuild-plugin-globals": "^0.2.0",
- "esbuild-runner": "^2.2.2",
- "eslint": "^8.57.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
- "husky": "^9.1.6",
- "lockfile": "^1.0.4",
- "sync-request": "6.1.0"
- },
- "browser": {
- "fs": false,
- "child_process": false,
- "stream": "stream-browserify"
- },
- "files": [
- "dist/*",
- "schema/*"
- ]
-}
diff --git a/bids-validator/tests/bids-web.spec.js b/bids-validator/tests/bids-web.spec.js
deleted file mode 100644
index a92deb1d..00000000
--- a/bids-validator/tests/bids-web.spec.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * eslint no-console: ["error", { allow: ["log"] }]
- * @jest-environment jsdom
- */
-
-import './bids.spec.js'
diff --git a/bids-validator/tests/bids.spec.js b/bids-validator/tests/bids.spec.js
deleted file mode 100644
index 22c70020..00000000
--- a/bids-validator/tests/bids.spec.js
+++ /dev/null
@@ -1,357 +0,0 @@
-/**
- * eslint no-console: ["error", { allow: ["log"] }]
- */
-import { assert } from 'chai'
-
-import validate from '../index.js'
-import fs from 'fs'
-import path from 'path'
-import { createFileList } from './env/FileList.js'
-import isNode from '../utils/isNode.js'
-
-function getDirectories(srcpath) {
- return fs.readdirSync(srcpath).filter(function (file) {
- return (
- file !== '.git' && fs.statSync(path.join(srcpath, file)).isDirectory()
- )
- })
-}
-
-const missing_session_files = [
- '7t_trt',
- 'ds004332',
- 'ds006',
- 'ds007',
- 'ds008',
- 'ds051',
- 'ds052',
- 'ds105',
- 'ds109',
- 'ds113b',
- 'ds000117',
- 'ds000247',
- 'ieeg_motorMiller2007',
- 'ieeg_visual',
- 'eeg_ds003654s_hed_inheritance',
- 'eeg_ds003645s_hed_demo',
- 'motion_dualtask',
-]
-
-const dataDirectory = path.join('bids-validator', 'tests', 'data')
-
-// Generate validate.BIDS input for included minimal tests
-function createDatasetFileList(inputPath) {
- const testDatasetPath = path.join(dataDirectory, inputPath)
- if (!isNode) {
- return createFileList(testDatasetPath)
- } else {
- return testDatasetPath
- }
-}
-
-// Generate validate.BIDS input for bids-examples
-function createExampleFileList(inputPath) {
- return createDatasetFileList(path.join('bids-examples', inputPath))
-}
-
-function assertErrorCode(errors, expected_error_code) {
- const matchingErrors = errors.filter(function (error) {
- return error.code === expected_error_code
- })
- assert(matchingErrors.length > 0)
-}
-
-describe('BIDS example datasets ', function () {
- // Default validate.BIDS options
- const options = { ignoreNiftiHeaders: true, json: true }
- const enableNiftiHeaders = { json: true }
-
- describe('basic example dataset tests', () => {
- const bidsExamplePath = path.join(dataDirectory, 'bids-examples')
- getDirectories(bidsExamplePath).forEach(function testDataset(inputPath) {
- it(inputPath, (isdone) => {
- validate.BIDS(
- createExampleFileList(inputPath),
- options,
- function (issues) {
- let warnings = issues.warnings
- let session_flag = false
- for (const warning in warnings) {
- if (warnings[warning]['code'] === 38) {
- session_flag = true
- break
- }
- }
- if (missing_session_files.indexOf(inputPath) === -1) {
- assert.deepEqual(session_flag, false)
- } else {
- assert.deepEqual(session_flag, true)
- }
- isdone()
- },
- )
- })
- })
- })
-
- // we need to have at least one non-dynamic test
- it('validates path without trailing backslash', function (isdone) {
- validate.BIDS(
- createExampleFileList('ds001'),
- options,
- function (issues, summary) {
- const errors = issues.errors
- const warnings = issues.warnings
- assert(summary.sessions.length === 0)
- assert(summary.subjects.length === 16)
- assert.deepEqual(summary.tasks, ['balloon analog risk task'])
- expect(summary.modalities).toEqual(['MRI'])
- assert(summary.totalFiles === 135)
- assert.deepEqual(errors.length, 1)
- assert(warnings.length === 3)
- assert(
- warnings.findIndex((warning) => warning.code === 13) > -1,
- 'warnings do not contain a code 13',
- )
- isdone()
- },
- )
- })
-
- // we need to have at least one non-dynamic test
- it('validates dataset with valid nifti headers', function (isdone) {
- const options = { ignoreNiftiHeaders: false }
- validate.BIDS(
- createDatasetFileList('valid_headers'),
- options,
- function (issues, summary) {
- const errors = issues.errors
- const warnings = issues.warnings
- assert(summary.sessions.length === 0)
- assert(summary.subjects.length === 1)
- assert.deepEqual(summary.tasks, ['rhyme judgment'])
- assert.isFalse(summary.dataProcessed)
- expect(summary.modalities).toEqual(['MRI'])
- expect(summary.totalFiles).toEqual(8)
- assert(
- errors.findIndex((error) => error.code === 60) > -1,
- 'errors do not contain a code 60',
- )
- assert.deepEqual(warnings.length, 4)
- assert(
- warnings.findIndex((warning) => warning.code === 13) > -1,
- 'warnings do not contain a code 13',
- )
- assert.deepEqual(summary.subjectMetadata[0], {
- age: 25,
- participantId: '01',
- sex: 'M',
- })
- isdone()
- },
- )
- })
-
- // test for duplicate files present with both .nii and .nii.gz extension
- it('validates dataset for duplicate files present with both .nii and .nii.gz extension', function (isdone) {
- validate.BIDS(
- createDatasetFileList('valid_filenames'),
- enableNiftiHeaders,
- function (issues) {
- assertErrorCode(issues.errors, 74)
- isdone()
- },
- )
- })
-
- it('includes issue 53 NO_T1W for dataset without T1w files', function (isdone) {
- validate.BIDS(createDatasetFileList('no_t1w'), options, function (issues) {
- assertErrorCode(issues.ignored, 53)
- isdone()
- })
- })
-
- // test for illegal characters used in acq and task name
- it('validates dataset with illegal characters in task name', function (isdone) {
- validate.BIDS(
- createDatasetFileList('valid_filenames'),
- enableNiftiHeaders,
- function (issues) {
- assertErrorCode(issues.errors, 58)
- isdone()
- },
- )
- })
-
- // test for illegal characters used in sub name
- it('validates dataset with illegal characters in sub name', function (isdone) {
- validate.BIDS(
- createDatasetFileList('valid_filenames'),
- enableNiftiHeaders,
- function (issues) {
- assertErrorCode(issues.errors, 64)
- isdone()
- },
- )
- })
-
- it('checks for subjects with no valid data', function (isdone) {
- validate.BIDS(
- createDatasetFileList('no_valid_data'),
- options,
- function (issues) {
- assertErrorCode(issues.errors, 67)
- isdone()
- },
- )
- })
-
- it('validates MRI modalities', function (isdone) {
- validate.BIDS(
- createExampleFileList('ds001'),
- options,
- function (issues, summary) {
- var errors = issues.errors
- var warnings = issues.warnings
- assert(summary.sessions.length === 0)
- assert(summary.subjects.length === 16)
- assert.deepEqual(summary.tasks, ['balloon analog risk task'])
- assert(summary.modalities.includes('MRI'))
- assert(summary.totalFiles === 135)
- assert.deepEqual(errors.length, 1)
- assert(warnings.length === 3)
- assert(
- warnings.findIndex((warning) => warning.code === 13) > -1,
- 'warnings do not contain a code 13',
- )
- isdone()
- },
- )
- })
-
- it('blacklists modalities specified', function (isdone) {
- const _options = { ...options, blacklistModalities: ['MRI'] }
- validate.BIDS(
- createExampleFileList('ds001'),
- _options,
- function (issues, summary) {
- var errors = issues.errors
- var warnings = issues.warnings
- assert(summary.sessions.length === 0)
- assert(summary.subjects.length === 16)
- assert.deepEqual(summary.tasks, ['balloon analog risk task'])
- assert(summary.modalities.includes('MRI'))
- assert(summary.totalFiles === 135)
- assert.deepEqual(errors.length, 2)
- assert(warnings.length === 3)
- assert(
- warnings.findIndex((warning) => warning.code === 13) > -1,
- 'warnings do not contain a code 13',
- )
- assert(
- errors.findIndex((error) => error.code === 139) > -1,
- 'errors do contain a code 139',
- )
-
- isdone()
- },
- )
- })
-
- it('checks for data dictionaries without corresponding data files', function (isdone) {
- validate.BIDS(
- createDatasetFileList('unused_data_dict'),
- options,
- function (issues) {
- assert.notEqual(
- issues.errors.findIndex((issue) => issue.code === 90),
- -1,
- )
- isdone()
- },
- )
- })
-
- it('checks for fieldmaps with no _magnitude file', function (isdone) {
- validate.BIDS(
- createDatasetFileList('fieldmap_without_magnitude'),
- options,
- function (issues) {
- assert.notEqual(
- issues.errors.findIndex((issue) => issue.code === 91),
- -1,
- )
- isdone()
- },
- )
- })
-
- it('should not throw a warning if all _phasediff.nii are associated with _magnitude1.nii', function (isdone) {
- validate.BIDS(
- createExampleFileList('hcp_example_bids'),
- options,
- function (issues) {
- assert.deepEqual(issues.errors, [])
- isdone()
- },
- )
- })
-
- it('should throw a warning if there are _phasediff.nii without an associated _magnitude1.nii', function (isdone) {
- validate.BIDS(
- createDatasetFileList('phasediff_without_magnitude1'),
- options,
- function (issues) {
- assert.notEqual(issues.warnings.findIndex((issue) => issue.code === 92))
- isdone()
- },
- )
- })
-
- it('should not throw an error if it encounters no non-utf-8 files', function (isdone) {
- validate.BIDS(
- createDatasetFileList('valid_dataset'),
- options,
- function (issues) {
- assert.equal(
- issues.errors.findIndex((issue) => issue.code === 123),
- -1,
- )
- isdone()
- },
- )
- })
-
- it('should validate pet data', function (isdone) {
- validate.BIDS(
- createDatasetFileList('broken_pet_example_2-pet_mri'),
- options,
- function (issues) {
- assertErrorCode(issues.errors, 55)
- isdone()
- },
- )
- })
-
- it('should validate pet blood data', function (isdone) {
- validate.BIDS(
- createDatasetFileList('broken_pet_example_3-pet_blood'),
- options,
- function (issues) {
- assertErrorCode(issues.errors, 55)
- isdone()
- },
- )
- })
-
- it('should catch missing tsv columns', function (isdone) {
- validate.BIDS(
- createDatasetFileList('pet_blood_missing_tsv_column'),
- options,
- function (issues) {
- assertErrorCode(issues.errors, 211)
- isdone()
- },
- )
- })
-})
diff --git a/bids-validator/tests/bval.spec.js b/bids-validator/tests/bval.spec.js
deleted file mode 100644
index 584c6455..00000000
--- a/bids-validator/tests/bval.spec.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import assert from 'assert'
-import bval from '../validators/bval/bval'
-
-describe('bval', function () {
- it('should allow proper bval contents', function () {
- const val = '4 6 2 5 3 23 5'
- bval({}, val, function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should not allow more than one row', function () {
- const val = '0 4 3 6 1 6 2 4 1\n 4 3 5 2 4 2 4 5'
- bval({}, val, function (issues) {
- assert(issues.length == 1 && issues[0].code == 30)
- })
- })
-
- it('should catch doublespace separators', function () {
- const val = '4 6 2 5 3 23 5'
- bval({}, val, function (issues) {
- assert(issues.length == 1 && issues[0].code == 47)
- })
- })
-
- it('should not allow undefined bvals', function () {
- const val = undefined
- bval({}, val, function (issues) {
- assert(issues.length == 1 && issues[0].code == 89)
- })
- })
-
- it('should not allow bvals of types other than string', function () {
- const val = [0, 1, 2, 3]
- bval({}, val, function (issues) {
- assert(issues.length == 1 && issues[0].code == 89)
- })
- })
-
- it('should not allow bvecs to be submitted in place of bval', function () {
- const val = '4 6 7\n 2 3 4\n 4 5 6'
- bval({}, val, function (issues) {
- assert(issues.length == 1 && issues[0].code == 30)
- })
- })
-})
diff --git a/bids-validator/tests/bvec.spec.js b/bids-validator/tests/bvec.spec.js
deleted file mode 100644
index 9c815589..00000000
--- a/bids-validator/tests/bvec.spec.js
+++ /dev/null
@@ -1,59 +0,0 @@
-import assert from 'assert'
-import bvec from '../validators/bvec/bvec'
-
-describe('bvec', function () {
- it('should allow valid bvec contents', function () {
- const vec = '4 6 2 5\n3 2 3 5\n6 4 3 5'
- bvec({}, vec, function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should not allow more or less than 3 rows', function () {
- let vec = '0 4 3 6 1 6 2 4\n 4 3 5 2 4 2 4 5'
- bvec({}, vec, function (issues) {
- assert(issues.length == 1 && issues[0].code == 31)
- })
-
- vec =
- '0 4 3 6 1 6 2 4\n 4 3 5 2 4 2 4 5\n 4 3 5 2 4 2 4 5\n 4 3 5 2 4 2 4 5'
- bvec({}, vec, function (issues) {
- assert(issues.length == 1 && issues[0].code == 31)
- })
- })
-
- it('should not allow rows of inconsistent length', function () {
- const vec = '0 4 3 6 1 6 4\n 4 3 4 2 4 5\n 4 3 5 2 4 2 4 5'
- bvec({}, vec, function (issues) {
- assert(issues.length == 1 && issues[0].code == 46)
- })
- })
-
- it('should catch doublespace separators', function () {
- const vec = '4 6 2 5\n3 2 3 5\n6 4 3 5'
- bvec({}, vec, function (issues) {
- assert(issues.length == 1 && issues[0].code == 47)
- })
- })
-
- it('should not allow undefined bvecs', function () {
- const vec = undefined
- bvec({}, vec, function (issues) {
- assert(issues.length == 1 && issues[0].code == 88)
- })
- })
-
- it('should not allow bvecs of types other than string', function () {
- const vec = [0, 1, 2, 3]
- bvec({}, vec, function (issues) {
- assert(issues.length == 1 && issues[0].code == 88)
- })
- })
-
- it('should not allow bvals to be submitted in place of bvec', function () {
- const vec = '4 6 7'
- bvec({}, vec, function (issues) {
- assert(issues.length == 1 && issues[0].code == 31)
- })
- })
-})
diff --git a/bids-validator/tests/cli.spec.js b/bids-validator/tests/cli.spec.js
deleted file mode 100644
index ec0243e1..00000000
--- a/bids-validator/tests/cli.spec.js
+++ /dev/null
@@ -1,99 +0,0 @@
-import cli from '../cli'
-import path from 'path'
-
-const dir = process.cwd()
-const data_dir = path.join(dir, 'bids-validator', 'tests', 'data')
-const data_with_errors = path.join(data_dir, 'empty_files')
-const data_without_errors = path.join(data_dir, 'valid_dataset')
-
-const colorRegEx = new RegExp(
- // eslint-disable-next-line no-control-regex
- '[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]',
-)
-
-expect.extend({
- toBeJSON: function (received) {
- try {
- JSON.parse(received)
- return {
- pass: true,
- }
- } catch (err) {
- return {
- pass: false,
- }
- }
- },
-})
-
-let mockStdout
-let mockStderr
-let mockExit
-let mockConsoleError
-
-describe('CLI', () => {
- beforeEach(() => {
- // bids-validator uses these
- mockStdout = jest
- .spyOn(process.stdout, 'write')
- .mockImplementation(() => true)
- mockStderr = jest
- .spyOn(process.stderr, 'write')
- .mockImplementation(() => true)
- // Yargs uses these
- mockExit = jest.spyOn(process, 'exit').mockImplementation(() => true)
- mockConsoleError = jest
- .spyOn(console, 'error')
- .mockImplementation(() => true)
- })
- afterEach(() => {
- mockStdout.mockRestore()
- mockStderr.mockRestore()
- mockExit.mockRestore()
- mockConsoleError.mockRestore()
- })
- it('should display usage hints when no arguments / options are provided', async () => {
- try {
- await cli(' ')
- } catch (code) {
- expect(code).toEqual(2)
- // 'jest' is the process name here but usually it is 'bids-validator'
- expect(mockConsoleError.mock.calls[0][0]).toEqual(
- expect.stringContaining(' [options]'),
- )
- }
- })
-
- it('should accept a directory as the first argument without error', async () => {
- await expect(cli(data_without_errors)).resolves.toEqual(0)
- })
-
- it('without errors should exit with code 0', async () => {
- await expect(cli(`${data_without_errors} --json`)).resolves.toEqual(0)
- })
-
- it('with errors should not exit with code 0', async () => {
- await expect(cli(`${data_with_errors}`)).rejects.toEqual(1)
- })
-
- it('with errors should not exit with code 0 with --json argument', async () => {
- await expect(cli(`${data_with_errors} --json`)).rejects.toEqual(1)
- })
-
- it('should print valid json when the --json argument is provided', async () => {
- await expect(cli(`${data_without_errors} --json`)).resolves.toEqual(0)
- expect(mockStdout).toBeCalledWith(expect.toBeJSON())
- })
-
- it('should print with colors by default', async () => {
- await cli(`${data_without_errors}`)
- expect(mockStdout.mock.calls[0][0]).toMatch(colorRegEx)
- })
-
- it('should print without colors when NO_COLOR env set', async () => {
- process.env.NO_COLOR = 'any value'
- await cli(`${data_without_errors}`)
- expect(mockStdout.mock.calls[0][0]).not.toMatch(colorRegEx)
- delete process.env.NO_COLOR
- })
-})
diff --git a/bids-validator/tests/consoleFormat.spec.js b/bids-validator/tests/consoleFormat.spec.js
deleted file mode 100644
index e443eb1c..00000000
--- a/bids-validator/tests/consoleFormat.spec.js
+++ /dev/null
@@ -1,101 +0,0 @@
-import assert from 'assert'
-import Issue from '../utils/issues'
-import consoleFormat from '../utils/consoleFormat'
-
-describe('console format', () => {
- let issues
- beforeEach(() => {
- issues = {
- errors: [
- {
- key: 'TEST_ERROR',
- severity: 'error',
- reason: 'testing consoleFormat',
- files: [
- new Issue({
- key: 'TEST_ERROR',
- file: '/nonexistent/test/file.wut',
- code: 0,
- evidence: 'none',
- line: -1,
- character: -1,
- severity: 'error',
- reason: 'testing consoleFormat',
- }),
- ],
- additionalFileCount: 0,
- },
- ],
- warnings: [
- {
- key: 'TEST_WARNING',
- severity: 'warning',
- reason: 'testing consoleFormat',
- files: [
- new Issue({
- key: 'TEST_WARNING',
- file: '/nonexistent/test/file.wut',
- code: 2,
- evidence: 'none',
- line: -1,
- character: -1,
- severity: 'warning',
- reason: 'testing consoleFormat',
- }),
- ],
- additionalFileCount: 0,
- },
- ],
- summary: {
- sessions: [],
- subjects: [],
- tasks: [],
- modalities: [],
- totalFiles: 0,
- size: 0,
- },
- }
- })
-
- describe('logIssues', () => {
- it('takes an array of errors and returns them formatted as an array', () => {
- const output = consoleFormat.logIssues(issues.errors, 'red', {
- verbose: true,
- })
- assert(Array.isArray(output))
- assert.deepEqual(output, [
- '\t\u001b[31m1: [ERR] testing consoleFormat (code: undefined - TEST_ERROR)\u001b[39m',
- '\t\ttesting consoleFormat',
- '\t\t@ line: -1 character: -1',
- '\t\tEvidence: none',
- '',
- ])
- })
- it('takes an array of warnings and returns them formatted as an array', () => {
- const output = consoleFormat.logIssues(issues.warnings, 'yellow', {
- verbose: true,
- })
- assert.deepEqual(output, [
- '\t\u001b[33m1: [WARN] testing consoleFormat (code: undefined - TEST_WARNING)\u001b[39m',
- '\t\ttesting consoleFormat',
- '\t\t@ line: -1 character: -1',
- '\t\tEvidence: none',
- '',
- ])
- })
- })
-
- describe('issues', () => {
- it('formats issues as a string a given issues object', () => {
- const output = consoleFormat.issues(issues, {})
- assert.equal(typeof output, 'string')
- })
- })
-
- describe('summary', () => {
- it('formats summary as a string a given issues object', () => {
- const output = consoleFormat.summary(issues.summary, {})
- assert.equal(typeof output, 'string')
- })
- })
-})
diff --git a/bids-validator/tests/env/FileList.js b/bids-validator/tests/env/FileList.js
deleted file mode 100644
index 40232a74..00000000
--- a/bids-validator/tests/env/FileList.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * for use in test suites using File & FileList browser APIs in jsdom environment
- */
-
-import fs from 'fs'
-
-import path from 'path'
-import mime from 'mime-types'
-
-function createFileList(dir) {
- const str = dir.substr(dir.lastIndexOf(path.sep) + 1) + '$'
- const rootpath = dir.replace(new RegExp(str), '')
- const paths = getFilepaths(dir, [], rootpath)
- return paths.map((path) => {
- return createFile(path, path.replace(rootpath, ''))
- })
-}
-
-function getFilepaths(dir, files_) {
- files_ = files_ || []
- const files = fs.readdirSync(dir)
- files
- .map((file) => path.join(dir, file))
- .map((path) =>
- isDirectory(path) ? getFilepaths(path, files_) : files_.push(path),
- )
- return files_
-}
-
-function isDirectory(path) {
- const pathStat = fs.lstatSync(path)
- let isDir = pathStat.isDirectory()
- if (pathStat.isSymbolicLink()) {
- try {
- var targetPath = fs.realpathSync(path)
- isDir = fs.lstatSync(targetPath).isDirectory()
- } catch (err) {
- isDir = false
- }
- }
- return isDir
-}
-
-function addFileList(input, file_paths) {
- if (typeof file_paths === 'string') file_paths = [file_paths]
- else if (!Array.isArray(file_paths)) {
- throw new Error(
- 'file_paths needs to be a file path string or an Array of file path strings',
- )
- }
-
- const file_list = file_paths.map((fp) => createFile(fp))
- file_list.__proto__ = Object.create(FileList.prototype)
-
- Object.defineProperty(input, 'files', {
- value: file_list,
- writable: false,
- })
-
- return input
-}
-
-function createFile(file_path, relativePath) {
- const file = fs.statSync(file_path)
-
- const browserFile = new File(
- [new fs.readFileSync(file_path)],
- path.basename(file_path),
- {
- type: mime.lookup(file_path) || '',
- lastModified: file.mtimeMs,
- },
- )
- browserFile.webkitRelativePath = relativePath || file_path
-
- return browserFile
-}
-
-export { addFileList, createFile, createFileList }
-
-export default {
- addFileList,
- createFile,
- createFileList,
-}
diff --git a/bids-validator/tests/events.spec.js b/bids-validator/tests/events.spec.js
deleted file mode 100644
index 19ac4b0f..00000000
--- a/bids-validator/tests/events.spec.js
+++ /dev/null
@@ -1,93 +0,0 @@
-import assert from 'assert'
-import validateEvents from '../validators/events/validate'
-
-describe('Events', function () {
- const headers = [
- [
- {
- path: '/sub01/sub01_task-test_bold.nii.gz',
- relativePath: '/sub01/sub01_task-test_bold.nii.gz',
- },
- { dim: [4, 0, 0, 0, 10] },
- ],
- ]
-
- it('all files in the /stimuli folder should be included in an _events.tsv file', () => {
- // stimuli.events will have all of the
- // files included in the stim_file column of every _events.tsv file.
- // stimuli.directory will have all of the
- // files included in the /stimuli directory.
- const stimuli = {
- events: ['/stimuli/images/red-square.jpg'],
- directory: [{ relativePath: '/stimuli/images/blue-square.jpg' }],
- }
- const issues = validateEvents([], stimuli, [], {})
- assert.strictEqual(issues.length, 1)
- assert.strictEqual(issues[0].code, 77)
- })
-
- it('should not throw issues if all files in the /stimuli folder are included in an _events.tsv file', () => {
- const stimuli = {
- events: ['/stimuli/images/red-square.jpg'],
- directory: [{ relativePath: '/stimuli/images/red-square.jpg' }],
- }
- const issues = validateEvents([], stimuli, [], {})
- assert.deepStrictEqual(issues, [])
- })
-
- it('should throw an issue if the onset of the last event in _events.tsv is more than TR * number of volumes in corresponding nifti header', () => {
- const events = [
- {
- file: { path: '/sub01/sub01_task-test_events.tsv' },
- path: '/sub01/sub01_task-test_events.tsv',
- contents: '12\tsomething\tsomething\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_bold.json': {
- RepetitionTime: 1,
- },
- }
-
- const issues = validateEvents(events, [], headers, jsonDictionary)
- assert.strictEqual(issues.length, 1)
- assert.strictEqual(issues[0].code, 85)
- })
-
- it('should throw an issue if the onset of the last event in _events.tsv is less than .5 * TR * number of volumes in corresponding nifti header', () => {
- const events = [
- {
- file: { path: '/sub01/sub01_task-test_events.tsv' },
- path: '/sub01/sub01_task-test_events.tsv',
- contents: '2\tsomething\tsomething\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_bold.json': {
- RepetitionTime: 1,
- },
- }
-
- const issues = validateEvents(events, [], headers, jsonDictionary)
- assert.strictEqual(issues.length, 1)
- assert.strictEqual(issues[0].code, 86)
- })
-
- it('should not throw any issues if the onset of the last event in _events.tsv is a reasonable value', () => {
- const events = [
- {
- file: { path: '/sub01/sub01_task-test_events.tsv' },
- path: '/sub01/sub01_task-test_events.tsv',
- contents: '7\tsomething\tsomething\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_bold.json': {
- RepetitionTime: 1,
- },
- }
-
- const issues = validateEvents(events, [], headers, jsonDictionary)
- assert.deepStrictEqual(issues, [])
- })
-})
diff --git a/bids-validator/tests/headerField.spec.js b/bids-validator/tests/headerField.spec.js
deleted file mode 100644
index 33b16d6b..00000000
--- a/bids-validator/tests/headerField.spec.js
+++ /dev/null
@@ -1,143 +0,0 @@
-import assert from 'assert'
-import headerFields from '../validators/headerFields'
-
-describe('headerFields', () => {
- it('should throw an error if _magnitude1 or _magnitude2 files do not have exactly 3 dimensions.', () => {
- const headers = [
- // each of these headers has one too many dimensions on the 'dim' field.
- [
- {
- name: 'sub-01_magnitude1.nii',
- relativePath: 'sub-01_magnitude1.nii',
- },
- {
- dim: [5, 1, 1, 1, 1],
- pixdim: [5, 1, 1, 1, 1],
- xyzt_units: [5, 1, 1, 1, 1],
- },
- ],
- [
- {
- name: 'sub-01_magnitude2.nii',
- relativePath: 'sub-01_magnitude2.nii',
- },
- {
- dim: [5, 1, 1, 1, 1],
- pixdim: [5, 1, 1, 1, 1],
- xyzt_units: [5, 1, 1, 1, 1],
- },
- ],
- // each of these headers has one too few dimensions on the 'dim' field.
- [
- {
- name: 'sub-02_magnitude1.nii',
- relativePath: 'sub-02_magnitude1.nii',
- },
- {
- dim: [3, 1, 1],
- pixdim: [4, 1, 1, 1],
- xyzt_units: [4, 1, 1, 1],
- },
- ],
- [
- {
- name: 'sub-02_magnitude2.nii',
- relativePath: 'sub-02_magnitude2.nii',
- },
- {
- dim: [3, 1, 1],
- pixdim: [4, 1, 1, 1],
- xyzt_units: [4, 1, 1, 1],
- },
- ],
- ]
- const issues = headerFields(headers)
- assert(
- issues.length == 4 &&
- issues[0].code == '94' &&
- issues[1].code == '94' &&
- issues[2].code == '94' &&
- issues[3].code == '94',
- )
- })
-
- it('_magnitude1 or _magnitude2 files should have 3 dimensions.', () => {
- const headers = [
- [
- {
- name: 'sub-01_magnitude1.nii',
- relativePath: 'sub-01_magnitude1.nii',
- },
- {
- dim: [3, 1, 1, 1],
- pixdim: [3, 1, 1, 1],
- xyzt_units: [3, 1, 1, 1],
- },
- ],
- [
- {
- name: 'sub-01_magnitude2.nii',
- relativePath: 'sub-01_magnitude2.nii',
- },
- {
- dim: [3, 1, 1, 1],
- pixdim: [3, 1, 1, 1],
- xyzt_units: [3, 1, 1, 1],
- },
- ],
- ]
- const issues = headerFields(headers)
- assert.deepEqual(issues, [])
- })
-
- it('should throw an error if _T1w files has the wrong dimensions.', () => {
- // each of these headers has one too many dimensions on the 'dim' field.
- // the first entry is the total count, and the following three entries are spatial.
- const headers = [
- [
- {
- name: 'sub-01_T1w.nii',
- relativePath: 'sub-01_T1w.nii',
- },
- {
- dim: [5, 1, 1, 1, 1],
- pixdim: [5, 1, 1, 1, 1],
- xyzt_units: [5, 1, 1, 1, 1],
- },
- ],
- [
- {
- name: 'sub-02_T1w.nii',
- relativePath: 'sub-02_T1w.nii',
- },
- {
- dim: [3, 1, 1],
- pixdim: [4, 1, 1, 1],
- xyzt_units: [4, 1, 1, 1],
- },
- ],
- ]
- const issues = headerFields(headers)
- assert(
- issues.length == 2 && issues[0].code == '95' && issues[1].code == '95',
- )
- })
-
- it('_T1w files should have exactly 3 dimensions.', () => {
- const headers = [
- [
- {
- name: 'sub-01_T1w.nii',
- relativePath: 'sub-01_T1w.nii',
- },
- {
- dim: [3, 1, 1, 1],
- pixdim: [3, 1, 1, 1],
- xyzt_units: [4, 1, 1, 1],
- },
- ],
- ]
- const issues = headerFields(headers)
- assert.deepEqual(issues, [])
- })
-})
diff --git a/bids-validator/tests/hed.spec.js b/bids-validator/tests/hed.spec.js
deleted file mode 100644
index 11ea1c5a..00000000
--- a/bids-validator/tests/hed.spec.js
+++ /dev/null
@@ -1,277 +0,0 @@
-import assert from 'assert'
-import validateHed from '../validators/hed'
-
-describe('HED', function () {
- const jsonFiles = [
- {
- relativePath: '/sub01/sub01_task-test_events.json',
- path: '/sub01/sub01_task-test_events.json',
- },
- {
- relativePath: '/dataset_description.json',
- path: '/dataset_description.json',
- },
- ]
-
- it('should not throw an issue if the HED data is valid', () => {
- const events = [
- {
- file: {
- path: '/sub01/sub01_task-test_events.tsv',
- relativePath: '/sub01/sub01_task-test_events.tsv',
- },
- path: '/sub01/sub01_task-test_events.tsv',
- contents:
- 'onset\tduration\ttest\tHED\n' + '7\tsomething\tone\tSpeed/30 mph\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_events.json': {
- myCodes: {
- HED: {
- one: 'Duration/5 s',
- },
- },
- },
- '/dataset_description.json': { HEDVersion: '8.0.0' },
- }
-
- return validateHed(events, jsonDictionary, jsonFiles, '').then((issues) => {
- assert.deepStrictEqual(issues, [])
- })
- })
-
- it('should not throw an issue if a value column is annotated', () => {
- const events = [
- {
- file: {
- path: '/sub01/sub01_task-test_events.tsv',
- relativePath: '/sub01/sub01_task-test_events.tsv',
- },
- path: '/sub01/sub01_task-test_events.tsv',
- contents:
- 'onset\tduration\ttest\tHED\n' + '7\t3.0\tone\tSpeed/30 mph\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_events.json': {
- myCodes: {
- test: {
- HED: {
- one: 'Label/#',
- },
- },
- },
- },
- '/dataset_description.json': { HEDVersion: '8.0.0' },
- }
-
- return validateHed(events, jsonDictionary, jsonFiles, '').then((issues) => {
- assert.deepStrictEqual(issues, [])
- })
- })
-
- it('should not throw an issue if a library schema is included', () => {
- const events = [
- {
- file: {
- path: '/sub01/sub01_task-test_events.tsv',
- relativePath: '/sub01/sub01_task-test_events.tsv',
- },
- path: '/sub01/sub01_task-test_events.tsv',
- contents:
- 'onset\tduration\ttest\tHED\n' + '7\t3.0\tone\tSpeed/30 mph\n',
- },
- ]
-
- const jsonDictionary = {
- '/sub01/sub01_task-test_events.json': {
- myCodes: {
- test: {
- HED: {
- one: 'ts:Sensory-presentation, Label/#',
- },
- },
- },
- },
- '/dataset_description.json': {
- HEDVersion: ['8.0.0', 'ts:testlib_1.0.2'],
- },
- }
-
- return validateHed(events, jsonDictionary, jsonFiles, '').then((issues) => {
- assert.deepStrictEqual(issues, [])
- })
- })
-
- it('should throw an issue if the HED data is invalid', () => {
- const events = [
- {
- file: {
- path: '/sub01/sub01_task-test_events.tsv',
- relativePath: '/sub01/sub01_task-test_events.tsv',
- },
- path: '/sub01/sub01_task-test_events.tsv',
- contents:
- 'onset\tduration\ttest\tHED\n' + '7\tsomething\tone\tDuration/5 s\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_events.json': {
- test: {
- HED: {
- one: 'Speed/5 ms',
- },
- },
- },
- '/dataset_description.json': { HEDVersion: '8.0.0' },
- }
-
- return validateHed(events, jsonDictionary, jsonFiles, '').then((issues) => {
- assert.strictEqual(issues.length, 1)
- assert.strictEqual(issues[0].code, 104)
- })
- })
-
- it('should not throw an issue if multiple library schemas are included', () => {
- const events = [
- {
- file: {
- path: '/sub01/sub01_task-test_events.tsv',
- relativePath: '/sub01/sub01_task-test_events.tsv',
- },
- path: '/sub01/sub01_task-test_events.tsv',
- contents:
- 'onset\tduration\ttest\tHED\n' + '7\t3.0\tone\tSpeed/30 mph\n',
- },
- ]
-
- const jsonDictionary = {
- '/sub01/sub01_task-test_events.json': {
- myCodes: {
- test: {
- HED: {
- one: 'ts:Sensory-presentation, Label/#, sc:Sleep-deprivation',
- },
- },
- },
- },
- '/dataset_description.json': {
- HEDVersion: ['8.0.0', 'ts:testlib_1.0.2', 'sc:score_1.0.0'],
- },
- }
-
- return validateHed(events, jsonDictionary, jsonFiles, '').then((issues) => {
- assert.deepStrictEqual(issues, [])
- })
- })
-
- it('should properly issue warnings when appropriate', () => {
- const events = [
- {
- file: {
- path: '/sub01/sub01_task-test_events.tsv',
- relativePath: '/sub01/sub01_task-test_events.tsv',
- },
- path: '/sub01/sub01_task-test_events.tsv',
- contents:
- 'onset\tduration\ttest\tHED\n' + '7\tsomething\tone\tHuman/Driver\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_events.json': {
- test: {
- HED: {
- one: 'Train/Maglev',
- },
- },
- },
- '/dataset_description.json': { HEDVersion: '8.0.0' },
- }
-
- return validateHed(events, jsonDictionary, jsonFiles, '').then((issues) => {
- assert.strictEqual(issues.length, 2)
- assert.strictEqual(issues[0].code, 105)
- assert.strictEqual(issues[1].code, 105)
- })
- })
-
- it('should properly issue errors if HED data is used in a sidecar without using HEDVersion', () => {
- const events = [
- {
- file: {
- path: '/sub01/sub01_task-test_events.tsv',
- relativePath: '/sub01/sub01_task-test_events.tsv',
- },
- path: '/sub01/sub01_task-test_events.tsv',
- contents: 'onset\tduration\ttest\n' + '7\tsomething\tone\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_events.json': {
- test: {
- HED: {
- one: 'Train',
- },
- },
- },
- '/dataset_description.json': {},
- }
-
- return validateHed(events, jsonDictionary, jsonFiles, '').then((issues) => {
- assert.strictEqual(issues.length, 1)
- assert.strictEqual(issues[0].code, 109)
- })
- })
-
- it('should properly issue errors if HED data is used in a TSV file without using HEDVersion', () => {
- const events = [
- {
- file: {
- path: '/sub01/sub01_task-test_events.tsv',
- relativePath: '/sub01/sub01_task-test_events.tsv',
- },
- path: '/sub01/sub01_task-test_events.tsv',
- contents: 'onset\tduration\tHED\n' + '7\tsomething\tHuman\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_events.json': {},
- '/dataset_description.json': {},
- }
-
- return validateHed(events, jsonDictionary, jsonFiles, '').then((issues) => {
- assert.strictEqual(issues.length, 1)
- assert.strictEqual(issues[0].code, 109)
- })
- })
-
- it('should throw an issue if HEDVersion is invalid', () => {
- const events = [
- {
- file: {
- path: '/sub01/sub01_task-test_events.tsv',
- relativePath: '/sub01/sub01_task-test_events.tsv',
- },
- path: '/sub01/sub01_task-test_events.tsv',
- contents:
- 'onset\tduration\ttest\tHED\n' + '7\tsomething\tone\tSpeed/30 mph\n',
- },
- ]
- const jsonDictionary = {
- '/sub01/sub01_task-test_events.json': {
- myCodes: {
- HED: {
- one: 'Duration/5 s',
- },
- },
- },
- '/dataset_description.json': { HEDVersion: 'one:two:8.0.0' },
- }
-
- return validateHed(events, jsonDictionary, jsonFiles, '').then((issues) => {
- assert.strictEqual(issues.length, 1)
- assert.strictEqual(issues[0].code, 104)
- })
- })
-})
diff --git a/bids-validator/tests/json.spec.js b/bids-validator/tests/json.spec.js
deleted file mode 100644
index bf7f54d5..00000000
--- a/bids-validator/tests/json.spec.js
+++ /dev/null
@@ -1,778 +0,0 @@
-import assert from 'assert'
-import validate from '../index'
-
-describe('JSON', function () {
- var file = {
- name: 'task-rest_bold.json',
- relativePath: '/task-rest_bold.json',
- }
- var jsonDict = {}
-
- it('sidecars should have key/value pair for "RepetitionTime" expressed in seconds', function () {
- var jsonObj = {
- RepetitionTime: 1.2,
- echo_time: 0.005,
- flip_angle: 90,
- TaskName: 'Rest',
- }
- jsonDict[file.relativePath] = jsonObj
- validate.JSON(file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- var jsonObjInval = {
- RepetitionTime: 1200,
- echo_time: 0.005,
- flip_angle: 90,
- TaskName: 'Rest',
- }
- jsonDict[file.relativePath] = jsonObjInval
- validate.JSON(file, jsonDict, function (issues) {
- assert(issues && issues.length === 1)
- })
- })
-
- it('should detect negative value for SliceTiming', function () {
- var jsonObj = {
- RepetitionTime: 1.2,
- SliceTiming: [-1.0, 0.0, 1.0],
- TaskName: 'Rest',
- }
- jsonDict[file.relativePath] = jsonObj
- validate.JSON(file, jsonDict, function (issues) {
- assert(issues.length === 1 && issues[0].code == 55)
- })
- })
-
- var meg_file = {
- name: 'sub-01_run-01_meg.json',
- relativePath: '/sub-01_run-01_meg.json',
- }
-
- it('*_meg.json sidecars should have required key/value pairs', function () {
- var jsonObj = {
- TaskName: 'Audiovis',
- SamplingFrequency: 1000,
- PowerLineFrequency: 50,
- DewarPosition: 'Upright',
- SoftwareFilters: 'n/a',
- DigitizedLandmarks: true,
- DigitizedHeadPoints: false,
- }
- jsonDict[meg_file.relativePath] = jsonObj
- validate.JSON(meg_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
-
- var jsonObjInval = jsonObj
- jsonObjInval['SamplingFrequency'] = ''
- jsonDict[meg_file.relativePath] = jsonObjInval
- validate.JSON(meg_file, jsonDict, function (issues) {
- assert(issues && issues.length === 1)
- })
- })
-
- var eeg_file = {
- name: 'sub-01_run-01_eeg.json',
- relativePath: '/sub-01_run-01_eeg.json',
- }
-
- it('*.json sidecars with CogPOID or CogAtlasID fields should require a uri format', function () {
- var jsonObj = {
- TaskName: 'rest',
- SamplingFrequency: 1000,
- EEGReference: 'Cz',
- SoftwareFilters: 'n/a',
- PowerLineFrequency: 1000,
- CogAtlasID:
- 'we did a search on https://ww.idontexist.com for the word "atlas"',
- }
- jsonDict[eeg_file.relativePath] = jsonObj
- validate.JSON(eeg_file, jsonDict, function (issues) {
- assert(issues.length === 1)
- assert(issues[0].evidence == '.CogAtlasID should match format "uri"')
- })
- })
-
- it('*_eeg.json sidecars should have required key/value pairs', function () {
- var jsonObj = {
- TaskName: 'rest',
- SamplingFrequency: 1000,
- EEGReference: 'Cz',
- SoftwareFilters: {
- HighPass: { HalfAmplitudeCutOffHz: 1, RollOff: '6dB/Octave' },
- },
- PowerLineFrequency: 'n/a',
- CogPOID: 'https://www.idontexist.com',
- }
- jsonDict[eeg_file.relativePath] = jsonObj
- validate.JSON(eeg_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
-
- var jsonObjInval = jsonObj
- jsonObjInval['SamplingFrequency'] = ''
- jsonDict[eeg_file.relativePath] = jsonObjInval
- validate.JSON(eeg_file, jsonDict, function (issues) {
- assert(issues && issues[0].code == 55)
- })
- })
-
- var ieeg_file = {
- name: 'sub-01_run-01_ieeg.json',
- relativePath: '/sub-01_run-01_ieeg.json',
- }
-
- it('*_ieeg.json sidecars should have required key/value pairs', function () {
- var jsonObj = {
- TaskName: 'Audiovis',
- SamplingFrequency: 10,
- PowerLineFrequency: 50,
- SoftwareFilters: {
- HighPass: { HalfAmplitudeCutOffHz: 1, RollOff: '6dB/Octave' },
- },
- iEEGReference: 'chan1',
- CogAtlasID: 'doi:thisisadoi',
- }
- jsonDict[ieeg_file.relativePath] = jsonObj
- validate.JSON(ieeg_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- var jsonObjInval = jsonObj
- jsonObjInval['Manufacturer'] = ''
- jsonDict[ieeg_file.relativePath] = jsonObjInval
- validate.JSON(ieeg_file, jsonDict, function (issues) {
- assert(issues && issues.length === 1)
- })
- })
-
- var meg_coordsystem_file = {
- name: 'sub-01/meg/sub-01_task-testing_coordsystem.json',
- relativePath: '/sub-01/meg/sub-01_task-testing_coordsystem.json',
- }
-
- it('MEG *_coordsystem.json files should have required key/value pairs', function () {
- var jsonObj = {
- FiducialsDescription: 'Fiducials were digitized using ... ',
- MEGCoordinateSystem: 'CTF',
- MEGCoordinateUnits: 'mm',
- MEGCoordinateSystemDescription: 'this is the usual ...',
- EEGCoordinateSystem: 'CapTrak',
- EEGCoordinateSystemDescription: 'RAS orientation ...',
- HeadCoilCoordinateSystem: 'Other',
- HeadCoilCoordinates: {
- LPA: [-1, 0, 0],
- RPA: [1, 0, 0],
- NAS: [0, 1, 0],
- },
- AnatomicalLandmarkCoordinates: {
- LPA: [-1, 0, 0],
- RPA: [1, 0, 0],
- NAS: [0, 1, 0],
- },
- AnatomicalLandmarkCoordinateSystem: 'Other',
- AnatomicalLandmarkCoordinateUnits: 'mm',
- }
- jsonDict[meg_coordsystem_file.relativePath] = jsonObj
- validate.JSON(meg_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 4)
- assert(
- issues[0].evidence ==
- " should have required property 'HeadCoilCoordinateSystemDescription'",
- )
- assert(issues[1].evidence == ' should match "then" schema')
- assert(
- issues[2].evidence ==
- " should have required property 'AnatomicalLandmarkCoordinateSystemDescription'",
- )
- assert(issues[3].evidence == ' should match "then" schema')
- })
- })
-
- var eeg_coordsystem_file = {
- name: 'sub-01/eeg/sub-01_task-testing_coordsystem.json',
- relativePath: '/sub-01/eeg/sub-01_task-testing_coordsystem.json',
- }
-
- it('EEG *_coordsystem.json files should have required key/value pairs', function () {
- var jsonObj = {
- IntendedFor: 'sub-01_task-testing_electrodes.tsv',
- FiducialsDescription: 'Fiducials were digitized using ... ',
- EEGCoordinateSystem: 'CapTrak',
- EEGCoordinateUnits: 'mm',
- EEGCoordinateSystemDescription: 'RAS orientation ...',
- AnatomicalLandmarkCoordinates: {
- LPA: [-1, 0, 0],
- RPA: [1, 0, 0],
- NAS: [0, 1, 0],
- },
- AnatomicalLandmarkCoordinateSystem: 'Other',
- AnatomicalLandmarkCoordinateUnits: 'mm',
- AnatomicalLandmarkCoordinateSystemDescription: '...',
- }
- jsonDict[eeg_coordsystem_file.relativePath] = jsonObj
- validate.JSON(eeg_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('EEG *_coordsystem.json files should not contain unaccepted *CoordinateSystem keywords', function () {
- var jsonObj = {
- EEGCoordinateSystem: 'RAS',
- EEGCoordinateUnits: 'mm',
- EEGCoordinateSystemDescription: 'RAS orientation ...',
- }
- jsonDict[eeg_coordsystem_file.relativePath] = jsonObj
- validate.JSON(eeg_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 5)
- assert(
- issues[0].evidence ==
- '.EEGCoordinateSystem should be equal to one of the allowed values',
- )
- assert(
- issues[4].evidence ==
- '.EEGCoordinateSystem should match some schema in anyOf',
- )
- })
- })
-
- it('EEG *_coordsystem.json schema should require *Description if *Coordsystem is "Other"', function () {
- var jsonObj = {
- EEGCoordinateSystem: 'Other',
- EEGCoordinateUnits: 'mm',
- EEGCoordinateSystemDescription: 'we did ...',
- FiducialsCoordinateSystem: 'Other',
- AnatomicalLandmarkCoordinateSystem: 'Other',
- AnatomicalLandmarkCoordinateSystemDescription: 'we did ...',
- }
- jsonDict[eeg_coordsystem_file.relativePath] = jsonObj
- validate.JSON(eeg_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 2)
- assert(
- issues[0].evidence ==
- " should have required property 'FiducialsCoordinateSystemDescription'",
- )
- assert(issues[1].evidence == ' should match "then" schema')
- })
- })
-
- it('EEG *_coordsystem.json schema general requirements should not be overridden by conditional requirements', function () {
- var jsonObj = {
- EEGCoordinateSystem: 'Other',
- EEGCoordinateSystemDescription: 'We used a ...',
- AnatomicalLandmarkCoordinateSystem: 'Other',
- }
- jsonDict[eeg_coordsystem_file.relativePath] = jsonObj
- validate.JSON(eeg_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 3)
- assert(
- issues[0].evidence ==
- " should have required property 'EEGCoordinateUnits'",
- )
- assert(
- issues[1].evidence ==
- " should have required property 'AnatomicalLandmarkCoordinateSystemDescription'",
- )
- assert(issues[2].evidence == ' should match "then" schema')
- })
- })
-
- var ieeg_coordsystem_file = {
- name: 'sub-01/ieeg/sub-01_task-testing_coordsystem.json',
- relativePath: '/sub-01/ieeg/sub-01_task-testing_coordsystem.json',
- }
-
- it('iEEG *_coordsystem.json files should have required key/value pairs', function () {
- var jsonObj = {
- iEEGCoordinateSystem: 'Pixels',
- iEEGCoordinateUnits: 'pixels',
- }
- jsonDict[ieeg_coordsystem_file.relativePath] = jsonObj
- validate.JSON(ieeg_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('If iEEG CoordinateSystem is "Pixels", then CoordinateUnits must be "pixels"', function () {
- var jsonObj = {
- iEEGCoordinateSystem: 'Pixels',
- iEEGCoordinateUnits: 'mm',
- }
- jsonDict[ieeg_coordsystem_file.relativePath] = jsonObj
- validate.JSON(ieeg_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 2)
- assert(
- issues[0].evidence ==
- '.iEEGCoordinateUnits should be equal to one of the allowed values',
- )
- assert(issues[1].evidence == ' should match "then" schema')
- })
- })
-
- it('iEEG *_coordsystem.json schema should require *Description if *Coordsystem is "Other"', function () {
- var jsonObj = {
- iEEGCoordinateSystem: 'Other',
- iEEGCoordinateUnits: 'pixels',
- }
- jsonDict[ieeg_coordsystem_file.relativePath] = jsonObj
- validate.JSON(ieeg_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 2)
- assert(
- issues[0].evidence ==
- " should have required property 'iEEGCoordinateSystemDescription'",
- )
- assert(issues[1].evidence == ' should match "then" schema')
- })
- })
-
- it('should use inherited sidecars to find missing fields', function () {
- const multiEntryJsonDict = {}
-
- // this json file is missing the SamplingFrequency field
- const partialJsonObj = {
- TaskName: 'Audiovis',
- PowerLineFrequency: 50,
- DewarPosition: 'Upright',
- SoftwareFilters: 'n/a',
- DigitizedLandmarks: true,
- DigitizedHeadPoints: false,
- }
- multiEntryJsonDict[meg_file.relativePath] = partialJsonObj
-
- // this json file (sitting at the root directory level)
- // provides the missing json field
- const inheritedMegFile = {
- name: 'meg.json',
- relativePath: '/meg.json',
- }
-
- const restOfJsonObj = {
- SamplingFrequency: 2000,
- }
- multiEntryJsonDict[inheritedMegFile.relativePath] = restOfJsonObj
-
- // json validation will pass because (when merged) there are no
- // missing data fields
- validate.JSON(meg_file, multiEntryJsonDict, function (issues) {
- assert(issues.length == 0)
- })
- })
-
- it('should favor the sidecar on the directory level closest to the file being validated', function () {
- const multiEntryJsonDict = {}
- const lowLevelFile = {
- name: 'run-01_meg.json',
- relativePath: '/sub-01/run-01_meg.json',
- }
-
- // this json file has a good SamplingFrequency field
- const partialJsonObj = {
- TaskName: 'Audiovis',
- SamplingFrequency: 1000,
- PowerLineFrequency: 50,
- DewarPosition: 'Upright',
- SoftwareFilters: 'n/a',
- DigitizedLandmarks: true,
- DigitizedHeadPoints: false,
- }
- multiEntryJsonDict[lowLevelFile.relativePath] = partialJsonObj
-
- // this json file (sitting at the root directory level)
- // also has a SamplingFrequency field, but it is wrong.
- const inheritedMegFile = {
- name: 'meg.json',
- relativePath: '/meg.json',
- }
-
- const restOfJsonObj = {
- SamplingFrequency: '',
- }
- multiEntryJsonDict[inheritedMegFile.relativePath] = restOfJsonObj
-
- // json validation will pass because merged dictionaries prefer
- // field values of the json sidecar furthest from the root.
- // /meg.json is closer to the root than /sub-01/run-01_meg.json
- // and so the values of the latter should be preferred.
- validate.JSON(lowLevelFile, multiEntryJsonDict, function (issues) {
- assert(issues.length == 0)
- })
- })
-
- it('*_bold.json sidecars should not have EffectiveEchoSpacing > TotalReadoutTime', () => {
- // this json dictionary generates a sidecar with EffectiveEchoSpacing > TotalReadoutTime,
- // which is nonsensical
- const fieldMapJsonDict = {
- EffectiveEchoSpacing: 3,
- TotalReadoutTime: 1,
- }
- jsonDict[file.relativePath] = fieldMapJsonDict
-
- // validation should return an error of code 93
- validate.JSON(file, jsonDict, (issues) => {
- assert(issues.length == 1 && issues[0].code == '93')
- })
- })
-
- it('*_bold.json sidecars should have EffectiveEchoSpacing < TotalReadoutTime', () => {
- // this json dictionary generates a sidecar with EffectiveEchoSpacing < TotalReadoutTime,
- // which is reasonable
- const fieldMapJsonDict = {
- EffectiveEchoSpacing: 3,
- TotalReadoutTime: 5,
- }
- jsonDict[file.relativePath] = fieldMapJsonDict
-
- // validation should pass with no errors.
- validate.JSON(file, jsonDict, (issues) => {
- assert.deepEqual(issues, [])
- })
- })
-
- var genetic_info_file = {
- name: 'genetic_info.json',
- relativePath: '/genetic_info.json',
- }
-
- it('sample genetic_info.json should parse', function () {
- var jsonObj = {
- GeneticLevel: ['Genetic'],
- AnalyticalApproach: ['SNP Genotypes'],
- SampleOrigin: 'brain',
- TissueOrigin: 'gray matter',
- CellType: 'neuron',
- BrainLocation: '[-30 -15 10]',
- }
- jsonDict[genetic_info_file.relativePath] = jsonObj
- validate.JSON(genetic_info_file, jsonDict, function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('genetic_info.json should use limited vocabulary for sample origin', function () {
- var jsonObj = {
- GeneticLevel: ['Genetic'],
- AnalyticalApproach: ['SNP Genotypes'],
- SampleOrigin: 'not_from_around_here',
- TissueOrigin: 'gray matter',
- CellType: 'neuron',
- BrainLocation: '[-30 -15 10]',
- }
- jsonDict[genetic_info_file.relativePath] = jsonObj
- validate.JSON(genetic_info_file, jsonDict, function (issues) {
- assert(issues.length === 1 && issues[0].code == 55)
- })
- })
-
- var dataset_description_file = {
- name: 'dataset_description.json',
- relativePath: '/dataset_description.json',
- }
-
- it('dataset_description.json should validate DatasetLinks', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- DatasetLinks: {
- mylink: 'https://www.google.com',
- deriv1: 'derivatives/derivative1',
- phantoms: 'file:///data/phantoms',
- ds000001: 'doi:10.18112/openneuro.ds000001.v1.0.0',
- },
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('dataset_description.json should raise on bad keys in DatasetLinks', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- DatasetLinks: {
- mylink: 'https://www.google.com',
- '': 'https://www.yahoo.com',
- 'mylink!': ':/path',
- 'my link': ':/another/path',
- },
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 6)
- assert(
- issues[0].evidence ==
- '.DatasetLinks should NOT be shorter than 1 characters',
- )
- assert(issues[1].evidence == ".DatasetLinks property name '' is invalid")
- assert(
- issues[2].evidence ==
- '.DatasetLinks should match pattern "^[a-zA-Z0-9]*$"',
- )
- assert(
- issues[3].evidence ==
- ".DatasetLinks property name 'mylink!' is invalid",
- )
- assert(issues[4].evidence == issues[2].evidence)
- assert(
- issues[5].evidence ==
- ".DatasetLinks property name 'my link' is invalid",
- )
- })
- })
-
- it('dataset_description.json should raise on non-object value in DatasetLinks', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- DatasetLinks: 'https://www.google.com',
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 1)
- assert(issues[0].evidence == '.DatasetLinks should be object')
- })
- })
-
- it('dataset_description.json should raise on invalid values in DatasetLinks', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- DatasetLinks: {
- mylink1: 'https://www.google.com',
- mylink2: 1,
- '': 'https://www.yahoo.com',
- },
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 3)
- assert(
- issues[0].evidence ==
- '.DatasetLinks should NOT be shorter than 1 characters',
- )
- assert(issues[1].evidence == ".DatasetLinks property name '' is invalid")
- assert(issues[2].evidence == ".DatasetLinks['mylink2'] should be string")
- })
- })
-
- it('dataset_description.json should validate with enum of DatasetType', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- Authors: ['example author'],
- DatasetType: 'raw',
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('dataset_description.json should NOT validate with wrong enum of DatasetType', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- Authors: ['example author'],
- DatasetType: 'badenum',
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 1 && issues[0].code == 55)
- })
- })
-
- it('dataset_description.json should NOT validate with number in Authors', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- Authors: ['example author', 1],
- DatasetType: 'raw',
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 1 && issues[0].code == 55)
- })
- })
-
- it('dataset_description.json should validate with only required fields, no recommended', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('dataset_description.json should validate with DatasetType "derivative" and GeneratedBy defined', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- Authors: ['example author'],
- DatasetType: 'derivative',
- GeneratedBy: [{ Name: 'Manual' }],
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('dataset_description.json should NOT validate with DatasetType "derivative" and GeneratedBy empty', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- Authors: ['example author'],
- DatasetType: 'derivative',
- GeneratedBy: [],
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 1)
- assert(
- issues[0].code == 55 &&
- issues[0].evidence ==
- '.GeneratedBy should NOT have fewer than 1 items',
- )
- })
- })
-
- it('dataset_description.json should NOT validate with DatasetType "derivative" and GeneratedBy missing', function () {
- var jsonObj = {
- Name: 'Example Name',
- BIDSVersion: '1.4.0',
- Authors: ['example author'],
- DatasetType: 'derivative',
- }
- jsonDict[dataset_description_file.relativePath] = jsonObj
- validate.JSON(dataset_description_file, jsonDict, function (issues) {
- assert(issues.length === 2)
- assert(
- issues[0].code == 55 &&
- issues[0].evidence == " should have required property 'GeneratedBy'",
- )
- })
- })
-
- var beh_file = {
- name: 'sub-01_run-01_beh.json',
- relativePath: '/sub-01_run-01_beh.json',
- }
-
- it('*beh.json sidecars with CogPOID or CogAtlasID fields should require a uri format', function () {
- var jsonObj = {
- TaskName: 'stroop',
- CogAtlasID:
- 'we did a search on https://ww.idontexist.com for the word "atlas"',
- CogPOID:
- 'we did a search on https://ww.idontexisteither.com for the word "paradigm"',
- }
- jsonDict[beh_file.relativePath] = jsonObj
- validate.JSON(beh_file, jsonDict, function (issues) {
- assert(issues.length === 2)
- assert(issues[0].evidence == '.CogAtlasID should match format "uri"')
- assert(issues[1].evidence == '.CogPOID should match format "uri"')
- })
- })
-
- it('*beh.json with extra content throws no error', function () {
- var jsonObj = {
- TaskName: 'stroop',
- trial: {
- LongName: 'Trial name',
- Description: 'Indicator of the type of trial',
- Levels: {
- congruent: 'Word and color font are congruent.',
- incongruent: 'Word and color font are not congruent.',
- },
- },
- }
- jsonDict[beh_file.relativePath] = jsonObj
- validate.JSON(beh_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- })
-
- var nirs_file = {
- name: 'sub-01_run-01_nirs.json',
- relativePath: '/sub-01_run-01_nirs.json',
- }
-
- it('*_nirs.json sidecars should have required key/value pairs', function () {
- var jsonObj = {
- TaskName: 'Audiovis',
- SamplingFrequency: 7,
- NIRSChannelCount: 7,
- NIRSSourceOptodeCount: 7,
- NIRSDetectorOptodeCount: 7,
- CapManufacturer: 'EasyCap',
- CapManufacturersModelName: 'actiCAP 64 Ch Standard-2',
- }
- jsonDict[nirs_file.relativePath] = jsonObj
- validate.JSON(nirs_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- var jsonObjInval = jsonObj
- jsonObjInval['BadKey'] = ''
- jsonDict[nirs_file.relativePath] = jsonObjInval
- validate.JSON(nirs_file, jsonDict, function (issues) {
- assert(issues && issues.length === 1)
- })
- })
- var nirs_coordsystem_file = {
- name: 'sub-01/nirs/sub-01_task-testing_coordsystem.json',
- relativePath: '/sub-01/nirs/sub-01_task-testing_coordsystem.json',
- }
-
- it('NIRS *_coordsystem.json files should have required key/value pairs', function () {
- var jsonObj = {
- NIRSCoordinateSystem: 'fsaverage',
- NIRSCoordinateUnits: 'mm',
- }
- jsonDict[nirs_coordsystem_file.relativePath] = jsonObj
- validate.JSON(nirs_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('NIRS *_coordsystem.json schema should require *Description if *Coordsystem is "Other"', function () {
- var jsonObj = {
- NIRSCoordinateSystem: 'Other',
- NIRSCoordinateUnits: 'mm',
- }
- jsonDict[nirs_coordsystem_file.relativePath] = jsonObj
- validate.JSON(nirs_coordsystem_file, jsonDict, function (issues) {
- assert(issues.length === 2)
- assert(
- issues[0].evidence ==
- " should have required property 'NIRSCoordinateSystemDescription'",
- )
- assert(issues[1].evidence == ' should match "then" schema')
- })
- })
-
- var motion_file = {
- name: 'sub-01_ses-VR_task-dance_tracksys-Unity_motion.json',
- relativePath: '/sub-01_ses-VR_task-dance_tracksys-Unity_motion.json',
- }
-
- it('*_motion.json sidecars should have required key/value pairs', function () {
- var jsonObj = {
- TaskName: 'Dance',
- SamplingFrequency: 90,
- MotionChannelCount: 7,
- POSChannelCount: 3,
- ORNTChannelCount: 4,
- }
- jsonDict[motion_file.relativePath] = jsonObj
- validate.JSON(motion_file, jsonDict, function (issues) {
- assert(issues.length === 0)
- })
- var jsonObjInval = jsonObj
- jsonObjInval['BadKey'] = ''
- jsonDict[motion_file.relativePath] = jsonObjInval
- validate.JSON(motion_file, jsonDict, function (issues) {
- assert(issues && issues.length === 1)
- })
- })
-})
diff --git a/bids-validator/tests/nii.spec.js b/bids-validator/tests/nii.spec.js
deleted file mode 100644
index 712306cc..00000000
--- a/bids-validator/tests/nii.spec.js
+++ /dev/null
@@ -1,535 +0,0 @@
-import assert from 'assert'
-import validate from '../index'
-
-describe('NIFTI', function () {
- var file = {
- name: 'sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- relativePath:
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- }
- var jsonContentsDict = {
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.json': {
- EchoTime: 1,
- PhaseEncodingDirection: 3,
- EffectiveEchoSpacing: 5,
- SliceTiming: 3,
- SliceEncodingDirection: 4,
- RepetitionTime: 1,
- TotalReadoutTime: 3,
- TaskName: 'Mixed Event Related Probe',
- },
- }
- var events = [
- {
- path: '/sub-15/func/sub-14_task-mixedeventrelatedprobe_run-01_events.tsv',
- },
- {
- path: '/sub-15/run-01_events.tsv',
- },
- ]
-
- it('should warn user about missing events file', function () {
- validate.NIFTI(
- null,
- file,
- jsonContentsDict,
- {},
- [],
- events,
- function (issues) {
- assert((issues.length = 1 && issues[0].code == 25))
- },
- )
- })
-
- it('should ignore missing events files for rest scans', function () {
- let header = {
- dim: [4, 128, 128, 72, 71],
- pixdim: [-1, 2, 2, 2, 1],
- xyzt_units: ['mm', 'mm', 'mm', 's'],
- }
- jsonContentsDict[
- '/sub-15/func/sub-15_task-mixedeventrelatedproberest_run-01_bold.json'
- ] =
- jsonContentsDict[
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.json'
- ]
- file.relativePath =
- '/sub-15/func/sub-15_task-mixedeventrelatedproberest_run-01_bold.nii.gz'
- validate.NIFTI(
- header,
- file,
- jsonContentsDict,
- {},
- [],
- events,
- function (issues) {
- assert.deepEqual(issues, [])
- },
- )
- })
-
- it('should catch mismatched numbers of volumes in dwi scan and .bval/.bvec files', function () {
- var file = {
- name: 'sub-09_ses-test_dwi.nii.gz',
- path: '/ds114/sub-09/ses-test/dwi/sub-09_ses-test_dwi.nii.gz',
- relativePath: '/sub-09/ses-test/dwi/sub-09_ses-test_dwi.nii.gz',
- }
- var header = {
- dim: [4, 128, 128, 72, 71],
- pixdim: [-1, 2, 2, 2, 16.5],
- xyzt_units: ['mm', 'mm', 'mm', 's'],
- }
- jsonContentsDict['/sub-09/ses-test/dwi/sub-09_ses-test_dwi.json'] =
- jsonContentsDict[
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.json'
- ]
- var bContentsDict = {
- '/dwi.bval':
- '0 0 0 0 0 0 0 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000\n',
- '/dwi.bvec':
- '0 0 0 0 0 0 0 -1 -0.002 0.026 -0.591 0.236 0.893 -0.796 -0.234 -0.936 -0.506 -0.346 -0.457 0.487 0.618 0.577 0.827 -0.894 -0.29 -0.116 0.8 -0.514 0.789 -0.949 -0.233 0.021 -0.217 -0.774 0.161 0.147 -0.888 0.562 0.381 0.306 0.332 0.963 0.959 -0.453 0.773 -0.709 0.693 -0.682 0.142 0.74 0.103 -0.584 0.088 0.552 -0.838 -0.363 0.184 0.721 -0.433 -0.502 0.171 -0.463 -0.385 0.713 -0.26 -0.001 -0.037 -0.57 0.282 -0.721 -0.267 \n0 0 0 0 0 0 0 0 1 0.649 -0.766 -0.524 -0.259 0.129 0.93 0.14 -0.845 -0.847 -0.631 -0.389 0.673 -0.105 -0.521 -0.04 -0.541 -0.963 0.403 0.84 0.153 -0.233 0.783 -0.188 -0.956 -0.604 0.356 0.731 0.417 0.232 0.143 -0.199 -0.13 -0.265 0.205 -0.889 0.628 0.408 0.024 0.529 -0.725 0.388 0.822 -0.596 -0.335 -0.792 -0.458 -0.561 0.392 -0.693 0.682 0.69 -0.509 0.423 -0.809 -0.247 0.885 0.077 -0.902 -0.303 0.145 0.608 0.96 \n0 0 0 0 0 0 0 0 0 0.76 0.252 0.818 0.368 0.591 0.284 0.324 -0.175 -0.402 -0.627 0.782 0.407 -0.81 0.213 -0.447 -0.789 -0.245 -0.444 0.174 -0.596 0.211 0.577 -0.982 0.199 0.19 0.921 -0.666 0.193 -0.794 0.914 -0.931 0.934 0.044 0.193 0.068 0.088 0.575 0.721 -0.506 0.674 0.549 0.56 0.551 0.938 0.259 -0.296 0.744 -0.901 0.009 -0.589 0.521 -0.844 0.779 0.444 0.656 -0.387 -0.997 0.43 -0.763 -0.948 0.332 -0.085 \n',
- }
- validate.NIFTI(
- header,
- file,
- jsonContentsDict,
- bContentsDict,
- [],
- [],
- function (issues) {
- assert(issues.length == 1 && issues[0].code == 29)
- },
- )
- })
-
- it('should catch missing .bval an .bvec files', function () {
- var file = {
- name: 'sub-09_ses-test_dwi.nii.gz',
- path: '/ds114/sub-09/ses-test/dwi/sub-09_ses-test_dwi.nii.gz',
- relativePath: '/sub-09/ses-test/dwi/sub-09_ses-test_dwi.nii.gz',
- }
- validate.NIFTI(null, file, jsonContentsDict, {}, [], [], function (issues) {
- assert(issues.length == 2 && issues[0].code == 32 && issues[1].code == 33)
- })
- })
-
- it('should catch missing task name definitions on task scans', function () {
- delete jsonContentsDict[
- '/sub-15/func/sub-15_task-mixedeventrelatedproberest_run-01_bold.json'
- ].TaskName
- validate.NIFTI(
- null,
- file,
- jsonContentsDict,
- {},
- [],
- events,
- function (issues) {
- assert((issues.length = 1 && issues[0].code == 50))
- },
- )
- })
-
- it('should ignore missing task name definitions on sbref task scans', function () {
- var file = {
- name: 'sub-15_task-mixedeventrelatedprobe_acq-LR_sbref.nii.gz',
- relativePath:
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_acq-LR_sbref.nii.gz',
- }
- jsonContentsDict[file.relativePath.replace('.nii.gz', '.json')] =
- jsonContentsDict[
- '/sub-15/func/sub-15_task-mixedeventrelatedproberest_run-01_bold.json'
- ]
- validate.NIFTI(
- null,
- file,
- jsonContentsDict,
- {},
- [],
- events,
- function (issues) {
- assert.deepEqual(issues, [])
- },
- )
- })
-
- it('should generate warning if files listed in IntendedFor of fieldmap json are not of type .nii or .nii.gz', function () {
- var file = {
- name: 'sub-09_ses-test_run-01_fieldmap.nii.gz',
- path: '/ds114/sub-09/ses-test/fmap/sub-09_ses-test_run-01_fieldmap.nii.gz',
- relativePath:
- '/sub-09/ses-test/fmap/sub-09_ses-test_run-01_fieldmap.nii.gz',
- }
-
- var jsonContentsDict = {
- '/sub-09/ses-test/fmap/sub-09_ses-test_run-01_fieldmap.json': {
- TaskName: 'Mixed Event Related Probe',
- IntendedFor: [
- 'func/sub-15_task-mixedeventrelatedprobe_run-05_bold.json',
- 'func/sub-15_task-mixedeventrelatedprobe_run-02_bold.nii.gz',
- ],
- },
- }
- var fileList = []
- fileList.push({
- name: 'sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- path: 'sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- relativePath:
- '/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- })
- validate.NIFTI(null, file, jsonContentsDict, {}, [], [], function (issues) {
- assert(
- issues.some(
- (issue) =>
- issue.reason ===
- 'Invalid filetype: IntendedFor should point to the .nii[.gz] files.' &&
- issue.evidence ===
- 'func/sub-15_task-mixedeventrelatedprobe_run-05_bold.json',
- ),
- )
- })
- })
-
- it('should generate warning if files listed in IntendedFor of fieldmap json do not exist', function () {
- let header = {
- dim: [4, 128, 128, 1, 71],
- pixdim: [-1, 2, 2, 2, 16.5],
- xyzt_units: ['mm', 'mm', 'mm', 's'],
- }
-
- var file = {
- name: 'sub-09_ses-test_run-01_fieldmap.nii.gz',
- path: '/ds114/sub-09/ses-test/fmap/sub-09_ses-test_run-01_fieldmap.nii.gz',
- relativePath:
- '/sub-09/ses-test/fmap/sub-09_ses-test_run-01_fieldmap.nii.gz',
- }
-
- var jsonContentsDict = {
- '/sub-09/ses-test/fmap/sub-09_ses-test_run-01_fieldmap.json': {
- TaskName: 'Mixed Event Related Probe',
- RepetitionTime: 2,
- SliceTiming: [0.4],
- IntendedFor: [
- 'func/sub-15_task-mixedeventrelatedprobe_run-05_bold.nii.gz',
- 'func/sub-15_task-mixedeventrelatedprobe_run-02_bold.nii.gz',
- ],
- },
- }
- var fileList = []
- fileList.push({
- name: 'sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- path: 'sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- relativePath:
- '/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- })
- validate.NIFTI(
- header,
- file,
- jsonContentsDict,
- {},
- [],
- [],
- function (issues) {
- assert(
- issues.length === 3 && issues[0].code == 17 && issues[1].code == 37,
- )
- },
- )
- })
-
- it('should not generate warning if files listed in IntendedFor of fieldmap json exist', function () {
- var file = {
- name: 'sub-15_ses-test_run-01_fieldmap.nii.gz',
- path: '/ds114/sub-15/ses-test/dwi/sub-15_ses-test_run-01_fieldmap.nii.gz',
- relativePath:
- '/sub-15/ses-test/dwi/sub-15_ses-test_run-01_fieldmap.nii.gz',
- }
-
- var jsonContentsDict = {
- '/sub-15/ses-test/dwi/sub-15_ses-test_run-01_fieldmap.json': {
- TaskName: 'Mixed Event Related Probe',
- Units: 'rad/s',
- IntendedFor: [
- 'func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- ],
- },
- }
-
- var fileList = [
- {
- name: 'sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- path: 'sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- relativePath:
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- },
- ]
- validate.NIFTI(
- null,
- file,
- jsonContentsDict,
- {},
- fileList,
- [],
- function (issues) {
- assert.deepEqual(issues, [])
- },
- )
- })
-
- it('SliceTiming should not be greater than RepetitionTime', function () {
- let header = {
- dim: [4, 128, 128, 7, 71],
- pixdim: [-1, 2, 2, 2, 16.5],
- xyzt_units: ['mm', 'mm', 'mm', 's'],
- }
- var jsonContentsDict_new = {
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.json': {
- RepetitionTime: 1.5,
- TaskName:
- 'AntiSaccade (AS) Rewarded & Neutral with varying dot position',
- EchoTime: 0.025,
- NumberofPhaseEncodingSteps: 64,
- FlipAngle: 70,
- PhaseEncodingDirection: 'j',
- SliceTiming: [0.0, 1.3448, 1.6207, 1.3966, 0.6724, 1.4483, 1.7241],
- },
- }
- var file_new = {
- name: 'sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- relativePath:
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- }
- validate.NIFTI(
- header,
- file_new,
- jsonContentsDict_new,
- {},
- [],
- events,
- function (issues) {
- assert(issues[3].code === 66 && issues.length === 4)
- assert(issues[2].code === 12 && issues.length === 4)
- },
- )
- })
-
- it('SliceTiming should be the same length as the k dimension of the corresponding nifti header', function () {
- var jsonContents = {
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.json': {
- RepetitionTime: 16.5,
- TaskName:
- 'AntiSaccade (AS) Rewarded & Neutral with varying dot position',
- EchoTime: 0.025,
- EffectiveEchoSpacing: 0.05,
- NumberofPhaseEncodingSteps: 64,
- FlipAngle: 70,
- PhaseEncodingDirection: 'j',
- SliceTiming: [0.0, 1.3448, 1.6207, 1.3966, 0.6724, 1.4483, 1.7241],
- },
- }
- var testFile = {
- name: 'sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- relativePath:
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- }
- var header = {
- dim: [4, 128, 128, 7, 71],
- pixdim: [-1, 2, 2, 2, 16.5],
- xyzt_units: ['mm', 'mm', 'mm', 's'],
- }
- var events = [
- {
- path: '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_events.tsv',
- },
- {
- path: '/sub-15/run-01_events.tsv',
- },
- ]
- validate.NIFTI(
- header,
- testFile,
- jsonContents,
- {},
- [],
- events,
- function (issues) {
- assert.deepEqual(issues, [])
- },
- )
- })
-
- it('SliceTiming should not have a length different than the k dimension of the corresponding nifti header', function () {
- var jsonContents = {
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.json': {
- RepetitionTime: 16.5,
- TaskName:
- 'AntiSaccade (AS) Rewarded & Neutral with varying dot position',
- EchoTime: 0.025,
- EffectiveEchoSpacing: 0.05,
- NumberofPhaseEncodingSteps: 64,
- FlipAngle: 70,
- PhaseEncodingDirection: 'j',
- SliceTiming: [0.0, 1.3448, 1.6207, 1.3966, 0.6724, 1.4483, 1.7241],
- },
- }
- var testFile = {
- name: 'sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- relativePath:
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- }
- var header = {
- dim: [4, 128, 128, 5, 71],
- pixdim: [-1, 2, 2, 2, 16.5],
- xyzt_units: ['mm', 'mm', 'mm', 's'],
- }
- var events = [
- {
- path: '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_events.tsv',
- },
- {
- path: '/sub-15/run-01_events.tsv',
- },
- ]
-
- validate.NIFTI(
- header,
- testFile,
- jsonContents,
- {},
- [],
- events,
- function (issues) {
- assert(issues.length === 1 && issues[0].code === 87)
- },
- )
- })
-
- it('should throw an error for _phasediff.nii files with associated (EchoTime2 - EchoTime1) less than 0.0001', function () {
- var phaseDiffJson = {
- '/sub-01/func/sub-01_ses-mri_phasediff.json': {
- RepetitionTime: 0.4,
- EchoTime1: 0.00515,
- EchoTime2: 0.00519,
- FlipAngle: 60,
- },
- }
- var phaseDiffFile = {
- name: 'sub-01_ses-mri_phasediff.nii',
- relativePath: '/sub-01/func/sub-01_ses-mri_phasediff.nii',
- }
- validate.NIFTI(
- null,
- phaseDiffFile,
- phaseDiffJson,
- {},
- [],
- events,
- function (issues) {
- assert(issues[0].code === 83 && issues.length === 1)
- },
- )
- })
-
- it('should throw an error for _phasediff.nii files with associated (EchoTime2 - EchoTime1) greater than 0.01', function () {
- var phaseDiffJson = {
- '/sub-01/func/sub-01_ses-mri_phasediff.json': {
- RepetitionTime: 0.4,
- EchoTime1: 0.00515,
- EchoTime2: 0.1019,
- FlipAngle: 60,
- },
- }
- var phaseDiffFile = {
- name: 'sub-01_ses-mri_phasediff.nii',
- relativePath: '/sub-01/func/sub-01_ses-mri_phasediff.nii',
- }
- validate.NIFTI(
- null,
- phaseDiffFile,
- phaseDiffJson,
- {},
- [],
- events,
- function (issues) {
- assert(issues[0].code === 83 && issues.length === 1)
- },
- )
- })
-
- it('should give not error for _phasediff.nii files with reasonable values of associated (EchoTime2 - EchoTime1)', function () {
- var phaseDiffJson = {
- '/sub-01/func/sub-01_ses-mri_phasediff.json': {
- RepetitionTime: 0.4,
- EchoTime1: 0.00515,
- EchoTime2: 0.00819,
- FlipAngle: 60,
- },
- }
- var phaseDiffFile = {
- name: 'sub-01_ses-mri_phasediff.nii',
- relativePath: '/sub-01/func/sub-01_ses-mri_phasediff.nii',
- }
- validate.NIFTI(
- null,
- phaseDiffFile,
- phaseDiffJson,
- {},
- [],
- events,
- function (issues) {
- assert(issues.length === 0)
- },
- )
- })
- it('should give error if VolumeTiming missing acquisition time', function () {
- let header = {
- dim: [4, 128, 128, 72, 71],
- pixdim: [-1, 2, 2, 2, 16.5],
- xyzt_units: ['mm', 'mm', 'mm', 's'],
- }
- let volumeJson = {
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.json': {
- VolumeTiming: 1,
- TaskName: 'mixedeventrelatedprobrest',
- },
- }
-
- let fileList = [
- {
- name: 'sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- path: 'sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- relativePath:
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- },
- ]
- file.relativePath =
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz'
- validate.NIFTI(
- header,
- file,
- volumeJson,
- {},
- fileList,
- events,
- function (issues) {
- assert(issues.filter((x) => x.code === 171).length === 1)
- },
- )
- })
- it('should not give error if VolumeTiming has an acquisition time', function () {
- let volumeJson = {
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.json': {
- VolumeTiming: 1,
- SliceTiming: 1,
- TaskName: 'mixedeventrelatedprobe',
- },
- }
-
- file.relativePath =
- '/sub-15/func/sub-15_task-mixedeventrelatedprobe_run-01_bold.nii.gz'
- validate.NIFTI(null, file, volumeJson, {}, [], events, function (issues) {
- assert(issues.filter((x) => x.code === 171).length === 0)
- })
- })
-})
diff --git a/bids-validator/tests/potentialLocations.spec.js b/bids-validator/tests/potentialLocations.spec.js
deleted file mode 100644
index 67c737a3..00000000
--- a/bids-validator/tests/potentialLocations.spec.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import assert from 'assert'
-import potentialLocations from '../utils/files/potentialLocations'
-
-describe('potentialLocations', () => {
- it('should not return duplicate paths', () => {
- const path = 'data/BIDS-examples/ds001'
- const pLs = potentialLocations(path)
- assert.deepEqual(pLs.length, new Set(pLs).size)
- })
- it('.bold files should only return potential locations that include tasknames', () => {
- const path = 'dsTest/sub-01/func/sub-01_task-testing_run-01_bold.json'
- const pLs = potentialLocations(path)
- const anyNonTaskSpecific = pLs.some(
- (location) => location.indexOf('task') < 0,
- )
- assert.equal(anyNonTaskSpecific, false)
- })
-})
diff --git a/bids-validator/tests/session.spec.js b/bids-validator/tests/session.spec.js
deleted file mode 100644
index 989018b2..00000000
--- a/bids-validator/tests/session.spec.js
+++ /dev/null
@@ -1,179 +0,0 @@
-import assert from 'assert'
-import utils from '../utils'
-const Subject = utils.files.sessions.Subject
-import {
- session as missingSessionFiles,
- getDataOrganization,
- getFilename,
- missingSessionWarnings,
- getSubjectFiles,
- missingFileWarnings,
- checkFileInMissingSession,
- checkMissingFile,
-} from '../validators/session'
-const dir = process.cwd()
-const data_dir = dir + '/bids-validator/tests/data/'
-const missing_session_data = data_dir + 'ds006_missing-session'
-
-describe('session', () => {
- let filelist
-
- describe('missingSessionFiles', () => {
- describe('handling missing sessions', () => {
- beforeEach(async () => {
- filelist = await utils.files.readDir(missing_session_data)
- })
-
- it('should produce a single MISSING_SESSION warning', () => {
- const warnings = missingSessionFiles(filelist)
- const targetWarning = warnings.find(
- (warning) => warning.key === 'MISSING_SESSION',
- )
- assert.ok(targetWarning)
- })
-
- it('should not produce INCONSISTENT_SUBJECTS warnings', () => {
- const warnings = missingSessionFiles(filelist)
- warnings.forEach((warning) =>
- assert.notEqual(warning.key, 'INCONSISTENT_SUBJECTS'),
- )
- })
- })
- })
-
- describe('getDataOrganization', () => {
- it('should take a fileList of data with subjects and sessions and list and return them', async () => {
- let filelist
- await utils.files.readDir(missing_session_data).then((files) => {
- filelist = files
- })
-
- const { subjects, sessions } = getDataOrganization(filelist)
- assert.equal(typeof subjects, 'object')
-
- const subjKeys = Object.keys(subjects)
- assert.ok(subjKeys.length >= 1)
- assert.ok(subjKeys.every((key) => subjects[key] instanceof Subject))
- assert.ok(sessions.length >= 1)
- })
- })
-
- describe('getFilename', () => {
- it('should be able to extract the filename from its path', () => {
- const subjKey = 'sub-01'
- const paths = [
- '/sub-01/ses-post/anat/sub-01_ses-post_inplaneT2.nii.gz',
- '/sub-01/ses-post/anat/sub-01_ses-post_T1w.nii.gz',
- '/sub-01/ses-post/func/sub-01_ses-post_task-livingnonlivingdecisionwithplainormirrorreversedtext_run-01_bold.nii.gz',
- ]
- const expecteds = [
- '/ses-post/anat/_ses-post_inplaneT2.nii.gz',
- '/ses-post/anat/_ses-post_T1w.nii.gz',
- '/ses-post/func/_ses-post_task-livingnonlivingdecisionwithplainormirrorreversedtext_run-01_bold.nii.gz',
- ]
-
- for (let i = 0; i < paths.length; i++) {
- const result = getFilename(paths[i], subjKey)
- assert.equal(result, expecteds[i])
- }
- })
- })
-
- describe('missingSessionWarnings', () => {
- it('should take a subjects dir and a sessions list and return a list of issues', async () => {
- let filelist
- await utils.files.readDir(missing_session_data).then((files) => {
- filelist = files
- })
- const { subjects, sessions } = getDataOrganization(filelist)
-
- const sessionWarnings = missingSessionWarnings(subjects, sessions)
- assert.ok(Array.isArray(sessionWarnings))
- assert.ok(
- sessionWarnings.every(
- (warning) => warning instanceof utils.issues.Issue,
- ),
- )
- })
- })
-
- describe('getSubjectFiles', () => {
- it('should take a list of subjects and return a set containing each file', async () => {
- let filelist
- await utils.files.readDir(missing_session_data).then((files) => {
- filelist = files
- })
- const { subjects } = getDataOrganization(filelist)
-
- const subjFiles = getSubjectFiles(subjects)
- assert.ok(subjFiles.every((filename) => typeof filename === 'string'))
- assert.equal(subjFiles.length, new Set(subjFiles).size)
-
- const allFiles = Object.keys(subjects).reduce(
- (allFiles, subjKey) => allFiles.concat(subjects[subjKey].files),
- [],
- )
- assert.ok(allFiles.every((file) => subjFiles.includes(file)))
- })
- })
-
- describe('missingFileWarnings', () => {
- it('generates an issue for each file missing from each subject and returns them as a list', () => {
- const subjects = {}
- const subjKey = 'sub-01'
- const subject01 = new Subject()
- const subjFiles = [
- '/ses-post/anat/_ses-post_inplaneT2.nii.gz',
- '/ses-post/anat/_ses-post_T1w.nii.gz',
- '/ses-post/func/_ses-post_task-livingnonlivingdecisionwithplainormirrorreversedtext_run-01_bold.nii.gz',
- ]
- subject01.files.push(subjFiles[0])
- subjects[subjKey] = subject01
-
- const warnings = missingFileWarnings(subjects, subjFiles)
- assert.ok(Array.isArray(warnings))
- warnings.every(
- (warning) =>
- warning instanceof utils.issues.Issue && warning.code === 38,
- )
- })
- })
-
- describe('checkFileInMissingSession', () => {
- it('returns true if filepath belongs to missing session', () => {
- const filepath = '/sub-01/ses-post/anat/sub-01_ses-post_inplaneT2.nii.gz'
- const subject = new Subject()
- subject.missingSessions.push('ses-post')
-
- const inMissingSession = checkFileInMissingSession(filepath, subject)
- assert.strictEqual(inMissingSession, true)
- })
- it('returns false if filepath belongs to extant session', () => {
- const filepath = '/sub-01/ses-post/anat/sub-01_ses-post_inplaneT2.nii.gz'
- const subject = new Subject()
- subject.sessions.push('ses-post')
-
- const inMissingSession = checkFileInMissingSession(filepath, subject)
- assert.strictEqual(inMissingSession, false)
- })
- })
-
- describe('checkMissingFile', () => {
- it('returns an issue if filename is missing from subject', () => {
- const subject = new Subject()
- const subjKey = 'sub-01'
- const filenames = [
- '/ses-post/anat/_ses-post_inplaneT2.nii.gz',
- '/ses-post/anat/_ses-post_T1w.nii.gz',
- '/ses-post/func/_ses-post_task-livingnonlivingdecisionwithplainormirrorreversedtext_run-01_bold.nii.gz',
- ]
-
- assert.equal(subject.files.length, 0)
- filenames.forEach((filename) => {
- const warning = checkMissingFile(subject, subjKey, filename)
- assert.ok(warning instanceof utils.issues.Issue)
- assert.equal(warning.code, 38)
- })
- })
- })
-})
diff --git a/bids-validator/tests/tsv.spec.js b/bids-validator/tests/tsv.spec.js
deleted file mode 100644
index 421ed7e9..00000000
--- a/bids-validator/tests/tsv.spec.js
+++ /dev/null
@@ -1,825 +0,0 @@
-import assert from 'assert'
-import validate from '../index'
-
-describe('TSV', function () {
- // general tsv checks ------------------------------------------------------------------
-
- var file = {
- name: 'sub-08_ses-test_task-nback_physio.tsv.gz',
- relativePath:
- '/sub-08/ses-test/func/sub-08_ses-test_task-linebisection_events.tsv',
- }
-
- it('should not allow empty values saved as empty cells.', function () {
- var tsv =
- 'header-one\theader-two\theader-three\theader-four\theader-five\n' +
- '1.0\t\t0.2\tresponse 1\t12.32'
- validate.TSV.TSV(file, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 23)
- })
- })
-
- it('should not allow missing values that are specified by something other than "n/a".', function () {
- var tsv =
- 'header-one\theader-two\theader-three\theader-four\theader-five\n' +
- 'n1.0\tNA\t0.2\tresponse 1\t12.32'
- validate.TSV.TSV(file, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 24)
- })
- })
-
- it('should not allow different length rows', function () {
- var tsv =
- 'header-one\theader-two\theader-three\n' +
- 'value-one\tvalue-two\n' +
- 'value-one\tvalue-two\tvalue-three'
- validate.TSV.TSV(file, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 22)
- })
- })
-
- /* See utils.unit.validate for comment
- it('should not allow non-SI units', function () {
- var tsv =
- 'header-one\tunits\theader-three\n' +
- 'value-one\tµV\tvalue-three\n' +
- 'value-one\tuV\tvalue-three'
-
- validate.TSV.TSV(file, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].key === 'INVALID_TSV_UNITS')
- })
- })
- */
-
- // events checks -----------------------------------------------------------------------
-
- var eventsFile = {
- name: 'sub-08_ses-test_task-linebisection_events.tsv',
- relativePath:
- '/sub-08/ses-test/func/sub-08_ses-test_task-linebisection_events.tsv',
- }
-
- it('should require events files to have "onset" as first header', function () {
- var tsv =
- 'header-one\tduration\theader-three\n' +
- 'value-one\tvalue-two\tvalue-three'
- validate.TSV.TSV(eventsFile, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 20)
- })
- })
-
- it('should require events files to have "duration" as second header', function () {
- var tsv =
- 'onset\theader-two\theader-three\n' + 'value-one\tvalue-two\tvalue-three'
- validate.TSV.TSV(eventsFile, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 21)
- })
- })
-
- it('should not throw issues for a valid events file', function () {
- var tsv =
- 'onset\tduration\theader-three\n' + 'value-one\tvalue-two\tvalue-three'
- validate.TSV.TSV(eventsFile, tsv, [], function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should not throw issues for a valid events file with only two columns', function () {
- var tsv = 'onset\tduration\n' + 'value-one\tvalue-two'
- validate.TSV.TSV(eventsFile, tsv, [], function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should check for the presence of any stimulus files declared', function () {
- var tsv =
- 'onset\tduration\tstim_file\n' +
- 'value-one\tvalue-two\timages/red-square.jpg'
- var fileList = [{ relativePath: '/stimuli/images/blue-square.jpg' }]
- validate.TSV.TSV(eventsFile, tsv, fileList, function (issues) {
- assert(issues.length === 1 && issues[0].code === 52)
- })
-
- fileList.push({ relativePath: '/stimuli/images/red-square.jpg' })
- validate.TSV.TSV(eventsFile, tsv, fileList, function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should return all values in the stim_file column as a list', function () {
- var tsv =
- 'onset\tduration\tstim_file\n' +
- 'value-one\tvalue-two\timages/red-square.jpg'
- var fileList = [{ relativePath: '/stimuli/images/red-square.jpg' }]
- validate.TSV.TSV(
- eventsFile,
- tsv,
- fileList,
- function (issues, participants, stimFiles) {
- assert(
- stimFiles.length === 1 &&
- stimFiles[0] === '/stimuli/images/red-square.jpg',
- )
- },
- )
- })
-
- // participants checks -----------------------------------------------------------------
-
- var participantsFile = {
- name: 'participants.tsv',
- relativePath: '/participants.tsv',
- }
-
- it('should not allow participants.tsv files without participant_id columns', function () {
- var tsv =
- 'subject_id\theader-two\theader-three\n' +
- 'value-one\tvalue-two\tvalue-three'
- validate.TSV.TSV(participantsFile, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 48)
- })
- })
-
- it('should allow a valid participants.tsv file', function () {
- var tsv =
- 'participant_id\theader-two\theader-three\n' +
- 'sub-01\tvalue-two\tvalue-three'
- validate.TSV.TSV(participantsFile, tsv, [], function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should not allow participants with age 89 and above in participants.tsv file', function () {
- var tsv = 'participant_id\theader-two\tage\n' + 'sub-01\tvalue-two\t89'
- validate.TSV.TSV(participantsFile, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 56)
- })
- })
-
- it('should not allow participants written with incorrect pattern', function () {
- var tsv =
- 'participant_id\theader-two\theader-three\n' +
- '01\tvalue-two\tvalue-three'
- validate.TSV.TSV(participantsFile, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 212)
- })
- })
-
- // _scans checks -----------------------------------------------------------------
-
- var scansFile = {
- name: 'sub-08_ses-test_task-linebisection_scans.tsv',
- relativePath:
- '/sub-08/ses-test/sub-08_ses-test_task-linebisection_scans.tsv',
- }
-
- var niftiFile = {
- name: 'sub-08_ses-test_task-linebisection_run-01_bold.nii.gz',
- relativePath:
- '/sub-08/ses-test/func/sub-08_ses-test_task-linebisection_run-01_bold.nii.gz',
- }
-
- var eegFile = {
- name: 'sub-08_ses-test_task-linebisection_run-01_eeg.fif',
- relativePath:
- '/sub-08/ses-test/eeg/sub-08_ses-test_task-linebisection_run-01_eeg.fif',
- }
- var ieegFile = {
- name: 'sub-08_ses-test_task-linebisection_run-01_ieeg.edf',
- relativePath:
- '/sub-08/ses-test/ieeg/sub-08_ses-test_task-linebisection_run-01_ieeg.edf',
- }
-
- var btiFiles = [
- {
- name: 'c,rf0.1Hz',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg/c,rf0.1Hz',
- },
- {
- name: 'config',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg/config',
- },
- {
- name: 'hs_file',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg/hs_file',
- },
- ]
-
- var ctfFiles = [
- {
- name: 'BadChannels',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/BadChannels',
- },
- {
- name: 'bad.segments',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/bad.segments',
- },
- {
- name: 'params.dsc',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/params.dsc',
- },
- {
- name: 'ClassFile.cls',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/ClassFile.cls',
- },
- {
- name: 'processing.cfg',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/processing.cfg',
- },
- {
- name: 'sub-08_ses-test_task-linebisection_acq-01_run-01_meg.res4',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/sub-01_ses-01_task-testing_acq-01_run-01_meg.res4',
- },
- {
- name: 'sub-08_ses-test_task-linebisection_acq-01_run-01_meg.hc',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/sub-01_ses-01_task-testing_acq-01_run-01_meg.hc',
- },
- {
- name: 'sub-08_ses-test_task-linebisection_acq-01_run-01_meg.infods',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/sub-01_ses-01_task-testing_acq-01_run-01_meg.infods',
- },
- {
- name: 'sub-08_ses-test_task-linebisection_acq-01_run-01_meg.acq',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/sub-01_ses-01_task-testing_acq-01_run-01_meg.acq',
- },
- {
- name: 'sub-08_ses-test_task-linebisection_acq-01_run-01_meg.newds',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/sub-01_ses-01_task-testing_acq-01_run-01_meg.newds',
- },
- {
- name: 'sub-08_ses-test_task-linebisection_acq-01_run-01_meg.meg4',
- relativePath:
- '/sub-08/ses-test/meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds/sub-01_ses-01_task-testing_acq-01_run-01_meg.meg4',
- },
- ]
-
- it('should not allow _scans.tsv files without filename column', function () {
- var tsv =
- 'header-one\theader-two\theader-three\n' +
- 'value-one\tvalue-two\tvalue-three'
- validate.TSV.TSV(scansFile, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 68)
- })
- })
-
- it('should allow _scans.tsv files with filename column', function () {
- var tsv =
- 'header-one\tfilename\theader-three\n' +
- 'value-one\tfunc/sub-08_ses-test_task-linebisection_run-01_bold.nii.gz\tvalue-three'
- validate.TSV.TSV(scansFile, tsv, [niftiFile], function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should not allow improperly formatted acq_time column entries', function () {
- const tsv =
- 'filename\tacq_time\n' +
- 'func/sub-08_ses-test_task-linebisection_run-01_bold.nii.gz\t000001'
- validate.TSV.TSV(scansFile, tsv, [niftiFile], function (issues) {
- assert(issues.length === 1 && issues[0].code === 84)
- })
- })
-
- it('should allow n/a as acq_time column entries', function () {
- const tsv =
- 'filename\tacq_time\n' +
- 'func/sub-08_ses-test_task-linebisection_run-01_bold.nii.gz\tn/a'
- validate.TSV.TSV(scansFile, tsv, [niftiFile], function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should allow properly formatted acq_time column entries', function () {
- const tsv =
- 'filename\tacq_time\n' +
- 'func/sub-08_ses-test_task-linebisection_run-01_bold.nii.gz\t2017-05-03T06:45:45'
- validate.TSV.TSV(scansFile, tsv, [niftiFile], function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should allow acq_time column entries with optional fractional seconds', function () {
- const tsv =
- 'filename\tacq_time\n' +
- 'func/sub-08_ses-test_task-linebisection_run-01_bold.nii.gz\t2017-05-03T06:45:45.88288'
- validate.TSV.TSV(scansFile, tsv, [niftiFile], function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should allow acq_time column entries with optional UTC specifier: "Z"', function () {
- const tsv =
- 'filename\tacq_time\n' +
- 'func/sub-08_ses-test_task-linebisection_run-01_bold.nii.gz\t2017-05-03T06:45:45.88288Z'
- validate.TSV.TSV(scansFile, tsv, [niftiFile], function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should allow session missing', function () {
- var niftiNoSesFile = {
- name: 'sub-08_task-linebisection_run-01_bold.nii.gz',
- relativePath: '/sub-08/func/sub-08_task-linebisection_run-01_bold.nii.gz',
- }
- var scansNoSesFile = {
- name: 'sub-08_task-linebisection_scans.tsv',
- relativePath: '/sub-08/sub-08_task-linebisection_scans.tsv',
- }
- const tsv =
- 'filename\tacq_time\n' +
- 'func/sub-08_task-linebisection_run-01_bold.nii.gz\t2017-05-03T06:45:45'
- validate.TSV.TSV(scansNoSesFile, tsv, [niftiNoSesFile], function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should not allow mismatched filename entries', function () {
- const fileList = [eegFile]
- const tsv =
- 'filename\tacq_time\n' +
- 'func/sub-08_ses-test_task-linebisection_run-01_bold.nii.gz\t2017-05-03T06:45:45'
- validate.TSV.TSV(scansFile, tsv, fileList, function (issues) {
- assert(issues.length === 1 && issues[0].code === 129)
- })
- })
-
- it('should allow matching filename entries', function () {
- const fileList = [niftiFile, eegFile, ieegFile]
- const tsv =
- 'filename\tacq_time\n' +
- 'func/sub-08_ses-test_task-linebisection_run-01_bold.nii.gz\t2017-05-03T06:45:45\n' +
- 'eeg/sub-08_ses-test_task-linebisection_run-01_eeg.fif\t2017-05-03T06:45:45\n' +
- 'ieeg/sub-08_ses-test_task-linebisection_run-01_ieeg.edf\t2017-05-03T06:45:45'
- validate.TSV.TSV(scansFile, tsv, fileList, function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should allow matching filename entries for CTF and BTI data', function () {
- const fileList = btiFiles.concat(ctfFiles)
- const tsv =
- 'filename\tacq_time\n' +
- 'meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg\t2017-05-03T06:45:45\n' +
- 'meg/sub-08_ses-test_task-linebisection_acq-01_run-01_meg.ds\t2017-05-03T06:45:45'
- validate.TSV.TSV(scansFile, tsv, fileList, function (issues) {
- assert.deepEqual(issues, [])
- })
- })
-
- it('should check participants listed in phenotype/*tsv and sub-ids ', function () {
- var phenotypeParticipants = [
- {
- list: ['10159', '10171', '10189'],
- file: {
- name: 'vmnm.tsv',
- path: '/corral-repl/utexas/poldracklab/openfmri/shared2/ds000030/ds030_R1.0.5/ds000030_R1.0.5//phenotype/vmnm.tsv',
- relativePath: '/phenotype/vmnm.tsv',
- },
- },
- ]
- var summary = {
- sessions: [],
- subjects: ['10159', '10171'],
- tasks: [],
- totalFiles: 43,
- size: 11845,
- }
- var issues = []
- validate.TSV.checkPhenotype(
- phenotypeParticipants,
- summary,
- issues,
- function (issues) {
- assert(issues.length === 1 && issues[0].code === 51)
- },
- )
- })
-
- // channels checks -----------------------------------------------------------------
-
- var channelsFileMEG = {
- name: 'sub-01_ses-meg_task-facerecognition_run-01_channels.tsv',
- relativePath:
- '/sub-01/ses-meg/meg/sub-01_ses-meg_task-facerecognition_run-01_channels.tsv',
- }
-
- it('should not allow MEG channels.tsv files without name column', function () {
- var tsv = 'header-one\ttype\tunits\n' + 'value-one\tEEG\tmV'
- validate.TSV.TSV(channelsFileMEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 71)
- })
- })
-
- it('should not allow MEG channels.tsv files without type column', function () {
- var tsv = 'name\theader-two\tunits\n' + 'value-one\tEEG\tmV'
- validate.TSV.TSV(channelsFileMEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 71)
- })
- })
-
- it('should not allow MEG channels.tsv files without units column', function () {
- var tsv = 'name\ttype\theader-three\n' + 'value-one\tEEG\tvalue-three'
- validate.TSV.TSV(channelsFileMEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 71)
- })
- })
-
- it('should allow MEG channels.tsv files with name, type and units columns', function () {
- var tsv =
- 'name\ttype\tunits\theader-four\n' + 'value-one\tEEG\tmV\tvalue-four'
- validate.TSV.TSV(channelsFileMEG, tsv, [], function (issues) {
- assert(issues.length === 0)
- })
- })
-
- var channelsFileEEG = {
- name: 'sub-01_ses-001_task-rest_run-01_channels.tsv',
- relativePath:
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_channels.tsv',
- }
-
- it('should not allow EEG channels.tsv files without name column', function () {
- var tsv = 'header-one\ttype\tunits\n' + 'value-one\tEEG\tmV'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 71)
- })
- })
-
- it('should not allow EEG channels.tsv files with name column in wrong place', function () {
- var tsv =
- 'header-one\ttype\tunits\tname\n' + 'value-one\tEEG\tmV\tvalue-name'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 230)
- })
- })
-
- it('should not allow EEG channels.tsv files without type column', function () {
- var tsv = 'name\theader-two\tunits\n' + 'value-one\tEEG\tmV'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 71)
- })
- })
-
- it('should not allow EEG channels.tsv files without units column', function () {
- var tsv = 'name\ttype\theader-three\n' + 'value-one\tEEG\tvalue-three'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 71)
- })
- })
-
- it('should allow EEG channels.tsv files with name, type and units columns', function () {
- var tsv =
- 'name\ttype\tunits\theader-four\n' + 'value-one\tEEG\tmV\tvalue-four'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 0)
- })
- })
-
- var channelsFileIEEG = {
- name: 'sub-01_ses-ieeg_task-facerecognition_run-01_channels.tsv',
- relativePath:
- '/sub-01/ses-ieeg/ieeg/sub-01_ses-meg_task-facerecognition_run-01_channels.tsv',
- }
-
- it('should not allow iEEG channels.tsv files without low_cutoff column', function () {
- var tsv =
- 'name\ttype\tunits\textra-column\thigh_cutoff\n' +
- 'value-name\tECOG\tmV\tvalue-fake\tvalue-highcut'
- validate.TSV.TSV(channelsFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 72)
- })
- })
-
- it('should not allow iEEG channels.tsv files with low_cutoff column in wrong place', function () {
- var tsv =
- 'name\ttype\tunits\thigh_cutoff\tlow_cutoff\n' +
- 'value-name\tECOG\tmV\tvalue-highcut\tvalue-lowcut'
- validate.TSV.TSV(channelsFileIEEG, tsv, [], function (issues) {
- assert(
- issues.length === 2 && issues[0].code === 229 && issues[1].code === 229,
- )
- })
- })
-
- it('should not allow iEEG channels.tsv files without high_cutoff column', function () {
- var tsv =
- 'name\ttype\tunits\tlow_cutoff\textra-column\n' +
- 'value-name\tECOG\tmV\tvalue-lowcut\tvalue-fake'
- validate.TSV.TSV(channelsFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 72)
- })
- })
-
- it('should not allow iEEG channels.tsv files with value other than good/bad in status column', function () {
- var tsv =
- 'name\ttype\tunits\tlow_cutoff\thigh_cutoff\tstatus\n' +
- 'value-name\tECOG\tmV\tvalue-lowcut\tvalue-highcut\tnot-good'
- validate.TSV.TSV(channelsFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 125)
- })
- })
-
- it('correct columns should pass for iEEG channels.tsv file', function () {
- var tsv =
- 'name\ttype\tunits\tlow_cutoff\thigh_cutoff\tstatus\n' +
- 'value-name\tECOG\tmV\tvalue-lowcut\tvalue-highcut\tgood'
- validate.TSV.TSV(channelsFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('should not allow iEEG channels.tsv files with value other than accepted values in type column', function () {
- var tsv =
- 'name\ttype\tunits\tlow_cutoff\thigh_cutoff\tstatus\n' +
- 'value-name\tMEEG\tmV\tvalue-lowcut\tvalue-highcut\tgood'
- validate.TSV.TSV(channelsFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 131)
- expect(typeof issues[0].evidence).toBe('string')
- })
- })
-
- it('should return a string value for evidence for issue 130', function () {
- const tsv =
- 'name\ttype\tunits\tlow_cutoff\thigh_cutoff\tstatus\n' +
- 'value-name\teeg\tmV\tvalue-lowcut\tvalue-highcut\tgood'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 130)
- expect(typeof issues[0].evidence).toBe('string')
- })
- })
-
- it('should return a string value for evidence for issue 131', function () {
- const tsv =
- 'name\ttype\tunits\tlow_cutoff\thigh_cutoff\tstatus\n' +
- 'value-name\tMEEG\tmV\tvalue-lowcut\tvalue-highcut\tgood'
- validate.TSV.TSV(channelsFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 131)
- expect(typeof issues[0].evidence).toBe('string')
- })
- })
-
- it('should not allow EEG channels.tsv files with value other than accepted values in type column', function () {
- var tsv =
- 'name\ttype\tunits\tlow_cutoff\thigh_cutoff\tstatus\n' +
- 'value-name\tMEEG\tmV\tvalue-lowcut\tvalue-highcut\tgood'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 131)
- })
- })
-
- it('should not allow MEG channels.tsv files with value other than accepted values in type column', function () {
- var tsv =
- 'name\ttype\tunits\tlow_cutoff\thigh_cutoff\tstatus\n' +
- 'value-name\tMEEG\tmV\tvalue-lowcut\tvalue-highcut\tgood'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 131)
- })
- })
-
- it('should not allow channels.tsv files with lower-casing in type column', function () {
- var tsv =
- 'name\ttype\tunits\tlow_cutoff\thigh_cutoff\tstatus\n' +
- 'value-name\teeg\tmV\tvalue-lowcut\tvalue-highcut\tgood'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 130)
- })
- })
-
- it('should allow iEEG channels.tsv files with accepted values in type column', function () {
- var tsv =
- 'name\ttype\tunits\tlow_cutoff\thigh_cutoff\tstatus\n' +
- 'value-name\tECOG\tmV\tvalue-lowcut\tvalue-highcut\tgood'
- validate.TSV.TSV(channelsFileEEG, tsv, [], function (issues) {
- assert(issues.length === 0)
- })
- })
- var channelsFileNIRS = {
- name: 'sub-01_ses-001_task-rest_run-01_channels.tsv',
- relativePath:
- '/sub-01/ses-001/nirs/sub-01_ses-001_task-rest_run-01_channels.tsv',
- }
-
- it('NIRS channels.tsv with correct columns should throw no error', function () {
- var tsv =
- 'name\ttype\tsource\tdetector\twavelength_nominal\tunits\n' +
- 'testch\tNIRSCWAMPLITUDE\tS1\tD1\t760.0\tV'
- validate.TSV.TSV(channelsFileNIRS, tsv, [], function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('should not allow NIRS channels.tsv files without name column', function () {
- var tsv =
- 'type\tsource\tdetector\twavelength_nominal\tunits\n' +
- 'NIRSCWAMPLITUDE\tS1\tD1\t760.0\tV'
- validate.TSV.TSV(channelsFileNIRS, tsv, [], function (issues) {
- assert(issues[0].code === 234)
- })
- })
-
- var channelsFileMOTION = {
- name: 'sub-01_ses-walk_task-navigation_tracksys-IMU1_run-01_channels.tsv',
- relativePath:
- '/sub-01/ses-walk/motion/sub-01_ses-walk_task-navigation_tracksys-IMU1_run-01_channels.tsv',
- }
-
- it('MOTION channels.tsv with correct columns should throw no error', function () {
- var tsv =
- 'name\tcomponent\ttype\ttracked_point\tunits\n' +
- 't1_acc_x\tx\tACCEL\tLeftFoot\tm/s^2'
- validate.TSV.TSV(channelsFileMOTION, tsv, [], function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('should not allow MOTION channels.tsv files without component column', function () {
- var tsv =
- 'name\ttype\ttracked_point\tunits\n' + 't1_acc_x\tACCEL\tLeftFoot\tm/s^2'
- validate.TSV.TSV(channelsFileMOTION, tsv, [], function (issues) {
- assert(issues[0].code === 129)
- })
- })
-
- // optodes checks ---------------------------------------------------------
- var optodesFileNIRS = {
- name: 'sub-01_ses-001_task-rest_run-01_optodes.tsv',
- relativePath:
- '/sub-01/ses-001/nirs/sub-01_ses-001_task-rest_run-01_optodes.tsv',
- }
-
- it('should allow NIRS optodes.tsv files with correct columns', function () {
- var tsv = 'name\ttype\tx\ty\tz\n' + 'S1\tsource\t-0.04\t0.02\t0.5\n'
- validate.TSV.TSV(optodesFileNIRS, tsv, [], function (issues) {
- assert(issues.length === 0)
- })
- })
-
- it('should not allow NIRS optodes.tsv files with out name columns', function () {
- var tsv = 'type\tx\ty\tz\n' + 'source\t-0.04\t0.02\t0.5\n'
- validate.TSV.TSV(optodesFileNIRS, tsv, [], function (issues) {
- assert(issues[0].code === 233)
- })
- })
-
- // electrodes checks ---------------------------------------------------------
- var electrodesFileEEG = {
- name: 'sub-01_ses-001_task-rest_run-01_electrodes.tsv',
- relativePath:
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_electrodes.tsv',
- }
-
- it('should not allow EEG electrodes.tsv files without name column', function () {
- var tsv =
- 'wrongcolumn\tx\ty\tz\ttype\tmaterial\timpedance\n' +
- 'valName\tvalX\tvalY\tvalZ\tvalType\tvalMaterial\tvalImpedance\n'
- validate.TSV.TSV(electrodesFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 96)
- })
- })
-
- it('should not allow EEG electrodes.tsv files without x column', function () {
- var tsv =
- 'name\twrongcolumn\ty\tz\ttype\tmaterial\timpedance\n' +
- 'valName\tvalX\tvalY\tvalZ\tvalType\tvalMaterial\tvalImpedance\n'
- validate.TSV.TSV(electrodesFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 96)
- })
- })
-
- it('should not allow EEG electrodes.tsv files without y column', function () {
- var tsv =
- 'name\tx\twrongcolumn\tz\ttype\tmaterial\timpedance\n' +
- 'valName\tvalX\tvalY\tvalZ\tvalType\tvalMaterial\tvalImpedance\n'
- validate.TSV.TSV(electrodesFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 96)
- })
- })
-
- it('should not allow EEG electrodes.tsv files without z column', function () {
- var tsv =
- 'name\tx\ty\twrongcolumn\ttype\tmaterial\timpedance\n' +
- 'valName\tvalX\tvalY\tvalZ\tvalType\tvalMaterial\tvalImpedance\n'
- validate.TSV.TSV(electrodesFileEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 96)
- })
- })
-
- it('correct columns should pass for EEG electrodes file', function () {
- var tsv =
- 'name\tx\ty\tz\ttype\tmaterial\timpedance\n' +
- 'valName\tvalX\tvalY\tvalZ\tvalType\tvalMaterial\tvalImpedance\n'
- validate.TSV.TSV(electrodesFileEEG, tsv, [], function (issues) {
- assert(issues.length === 0)
- })
- })
-
- var electrodesFileIEEG = {
- name: 'sub-01_ses-ieeg_task-facerecognition_run-01_electrodes.tsv',
- relativePath:
- '/sub-01/ses-ieeg/ieeg/sub-01_ses-ieeg_task-facerecognition_run-01_electrodes.tsv',
- }
-
- it('should not allow iEEG electrodes.tsv files without name column', function () {
- var tsv =
- 'blah\tx\ty\tz\tsize\ttype\n' +
- 'value-one\tvalue-two\tvalue-three\tvalue-four\tvalue-five\tvalue-six\n'
- validate.TSV.TSV(electrodesFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 73)
- })
- })
-
- it('should not allow iEEG electrodes.tsv files without x column', function () {
- var tsv =
- 'name\tblah\ty\tz\tsize\ttype\n' +
- 'value-one\tvalue-two\tvalue-three\tvalue-four\tvalue-five\tvalue-six\n'
- validate.TSV.TSV(electrodesFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 73)
- })
- })
-
- it('should not allow iEEG electrodes.tsv files without y column', function () {
- var tsv =
- 'name\tx\tblah\tz\tsize\ttype\n' +
- 'value-one\tvalue-two\tvalue-three\tvalue-four\tvalue-five\tvalue-six\n'
- validate.TSV.TSV(electrodesFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 73)
- })
- })
-
- it('should not allow iEEG electrodes.tsv files without z column', function () {
- var tsv =
- 'name\tx\ty\tblah\tsize\ttype\n' +
- 'value-one\tvalue-two\tvalue-three\tvalue-four\tvalue-five\tvalue-six\n'
- validate.TSV.TSV(electrodesFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 73)
- })
- })
-
- it('should not allow iEEG electrodes.tsv files without size column', function () {
- var tsv =
- 'name\tx\ty\tz\tblah\ttype\n' +
- 'value-one\tvalue-two\tvalue-three\tvalue-four\tvalue-five\tvalue-six\n'
- validate.TSV.TSV(electrodesFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 1 && issues[0].code === 73)
- })
- })
-
- it('correct columns should pass for iEEG electrodes file', function () {
- var tsv =
- 'name\tx\ty\tz\tsize\ttype\n' +
- 'value-one\tvalue-two\tvalue-three\tvalue-four\tvalue-five\tvalue-six\n'
- validate.TSV.TSV(electrodesFileIEEG, tsv, [], function (issues) {
- assert(issues.length === 0)
- })
- })
-
- var physio_file = {
- name: 'sub-20_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- relativePath:
- '/sub-20/ses-1/func/sub-20_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- }
-
- it('should not allow physio.tsv.gz file without some associated json', function () {
- let issues = validate.TSV.validateContRec([physio_file], {})
- assert(issues.length === 1 && issues[0].code === 170)
- })
-
- // samples checks -----------------------------------------------------------
-
- const samplesFile = {
- name: 'samples.tsv',
- relativePath: '/samples.tsv',
- }
-
- it('should return errors for each missing mandatory header in samples.tsv', () => {
- const tsv = 'wrong_col\nsome_data\n'
- validate.TSV.TSV(samplesFile, tsv, [], function (issues) {
- expect(issues.length).toBe(3)
- const codes = issues.map((x) => x.code)
- expect(codes.includes(216)).toBe(true)
- expect(codes.includes(217)).toBe(true)
- expect(codes.includes(218)).toBe(true)
- })
- })
-
- it('should return an error for invalid sample_type samples.tsv', () => {
- const tsv = 'sample_type\nbad\n'
- validate.TSV.TSV(samplesFile, tsv, [], function (issues) {
- const codes = issues.map((x) => x.code)
- expect(codes.includes(219)).toBe(true)
- })
- })
-})
diff --git a/bids-validator/tests/type.spec.js b/bids-validator/tests/type.spec.js
deleted file mode 100644
index 3770df0d..00000000
--- a/bids-validator/tests/type.spec.js
+++ /dev/null
@@ -1,639 +0,0 @@
-import { assert } from 'chai'
-import utils from '../utils'
-import BIDS from '../validators/bids'
-
-describe('utils.type.file.isAnat', function () {
- const goodFilenames = [
- '/sub-15/anat/sub-15_inplaneT2.nii.gz',
- '/sub-15/ses-12/anat/sub-15_ses-12_inplaneT2.nii.gz',
- '/sub-16/anat/sub-16_T1w.nii.gz',
- '/sub-16/anat/sub-16_T1w.json',
- '/sub-16/anat/sub-16_run-01_T1w.nii.gz',
- '/sub-16/anat/sub-16_acq-highres_T1w.nii.gz',
- '/sub-16/anat/sub-16_rec-mc_T1w.nii.gz',
- '/sub-16/anat/sub-16_ce-contrastagent_T1w.nii.gz',
- '/sub-16/anat/sub-16_part-mag_T1w.nii.gz',
- '/sub-16/anat/sub-16_T1map.nii.gz',
- '/sub-16/anat/sub-16_mod-T1w_defacemask.nii.gz',
- '/sub-16/anat/sub-16_echo-1_MESE.nii.gz',
- '/sub-16/anat/sub-16_flip-1_VFA.nii.gz',
- '/sub-16/anat/sub-16_inv-1_IRT1.nii.gz',
- '/sub-16/anat/sub-16_flip-1_inv-1_MP2RAGE.nii.gz',
- '/sub-16/anat/sub-16_flip-1_mt-on_MPM.nii.gz',
- '/sub-16/anat/sub-16_mt-on_part-real_MTR.nii.gz',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isAnat('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isAnat(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- '/sub-1/anat/sub-15_inplaneT2.nii.gz',
- '/sub-15/ses-12/anat/sub-15_inplaneT2.nii.gz',
- '/sub-16/anat/sub-16_T1.nii.gz',
- 'blaaa.nii.gz',
- '/sub-16/anat/sub-16_run-second_T1w.nii.gz',
- '/sub-16/anat/sub-16_run-01_rec-mc_T1w.nii.gz',
- '/sub-16/anat/sub-16_part-magnitude_T1w.nii.gz',
- '/sub-16/anat/sub-16_part-mag_T1map.nii.gz',
- '/sub-16/anat/sub-16_mod-T1weighted_defacemask.nii.gz',
- '/sub-16/anat/sub-16_MESE.nii.gz',
- '/sub-16/anat/sub-16_VFA.nii.gz',
- '/sub-16/anat/sub-16_IRT1.nii.gz',
- '/sub-16/anat/sub-16_flip-1_MP2RAGE.nii.gz',
- '/sub-16/anat/sub-16_flip-1_mt-fail_MPM.nii.gz',
- '/sub-16/anat/sub-16_flip-1_mt-fail_part-real_MTR.nii.gz',
- ]
-
- badFilenames.forEach(function (path) {
- it("isAnat('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isAnat(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isFunc', function () {
- var goodFilenames = [
- '/sub-15/func/sub-15_task-0back_bold.nii.gz',
- '/sub-15/ses-12/func/sub-15_ses-12_task-0back_bold.nii.gz',
- '/sub-16/func/sub-16_task-0back_bold.json',
- '/sub-16/func/sub-16_task-0back_run-01_bold.nii.gz',
- '/sub-16/func/sub-16_task-0back_acq-highres_bold.nii.gz',
- '/sub-16/func/sub-16_task-0back_rec-mc_bold.nii.gz',
- '/sub-16/func/sub-16_task-0back_run-01_phase.nii.gz',
- '/sub-16/func/sub-16_task-0back_echo-1_phase.nii.gz',
- '/sub-15/func/sub-15_task-0back_part-phase_bold.nii.gz',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isFunc('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isFunc(path), true)
- isdone()
- })
- })
-
- var badFilenames = [
- '/sub-1/func/sub-15_inplaneT2.nii.gz',
- '/sub-15/ses-12/func/sub-15_inplaneT2.nii.gz',
- '/sub-16/func/sub-16_T1.nii.gz',
- 'blaaa.nii.gz',
- '/sub-16/func/sub-16_run-second_T1w.nii.gz',
- '/sub-16/func/sub-16_task-0-back_rec-mc_bold.nii.gz',
- '/sub-16/func/sub-16_run-01_rec-mc_T1w.nii.gz',
- '/sub-16/func/sub-16_task-0back_part-magnitude_bold.nii.gz',
- ]
-
- badFilenames.forEach(function (path) {
- it("isFunc('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isFunc(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isTopLevel', function () {
- const goodFilenames = [
- '/README',
- '/CHANGES',
- '/LICENSE',
- '/dataset_description.json',
- '/ses-pre_task-rest_bold.json',
- '/dwi.bval',
- '/dwi.bvec',
- '/T1w.json',
- '/acq-test_dwi.json',
- '/rec-test_physio.json',
- '/task-testing_eeg.json',
- '/task-testing_ieeg.json',
- '/task-testing_meg.json',
- '/events.json',
- '/scans.json',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isTopLevel('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isTopLevel(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- '/readme.txt',
- '/changelog',
- '/license.txt',
- '/dataset_description.yml',
- '/ses.json',
- '/_T1w.json',
- '/_dwi.json',
- '/_task-test_physio.json',
- // cross-talk and fine-calibration files for Neuromag/Elekta/MEGIN data (.fif)
- // must be defined at file level.
- '/acq-calibration_meg.dat',
- '/acq-crosstalk_meg.fif',
- ]
-
- badFilenames.forEach(function (path) {
- it("isTopLevel('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isTopLevel(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isSubjectLevel', () => {
- const goodFilenames = [] // to be extended in the future...
-
- goodFilenames.forEach((path) => {
- it("isSubjectLevel('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isSubjectLevel(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- // cross-talk and fine-calibration files for Neuromag/Elekta/MEGIN data (.fif)
- // must be placed on file level.
- '/sub-12/sub-12_acq-calibration_meg.dat',
- '/sub-12/sub-12_acq-crosstalk_meg.fif',
- '/sub-12/acq-calibration_meg.dat',
- '/sub-12/acq-crosstalk_meg.fif',
- '/sub-12/acq-calibration.dat',
- '/sub-12/acq-crosstalk.fif',
- ]
-
- badFilenames.forEach((path) => {
- it("isSubjectLevel('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isSubjectLevel(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isSessionLevel', function () {
- const goodFilenames = [
- '/sub-12/sub-12_scans.tsv',
- '/sub-12/sub-12_scans.json',
- '/sub-12/ses-pre/sub-12_ses-pre_scans.tsv',
- '/sub-12/ses-pre/sub-12_ses-pre_scans.json',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isSessionLevel('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isSessionLevel(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- '/sub-12/sub-12.tsv',
- '/sub-12/ses-pre/sub-12_ses-pre_scan.tsv',
- // cross-talk and fine-calibration files for Neuromag/Elekta/MEGIN data (.fif)
- // must be placed at file level.
- '/sub-12/sub-12_acq-calibration_meg.dat',
- '/sub-12/sub-12_acq-crosstalk_meg.fif',
- '/sub-12/ses-pre/sub-12_ses-pre_acq-calibration_meg.dat',
- '/sub-12/ses-pre/sub-12_ses-pre_acq-crosstalk_meg.fif',
- ]
-
- badFilenames.forEach(function (path) {
- it("isSessionLevel('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isSessionLevel(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isDWI', function () {
- const goodFilenames = [
- '/sub-12/dwi/sub-12_dwi.nii.gz',
- '/sub-12/dwi/sub-12_dwi.json',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_dwi.nii.gz',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_dwi.bvec',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_dwi.bval',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_dwi.json',
- '/sub-12/dwi/sub-12_sbref.nii.gz',
- '/sub-12/dwi/sub-12_sbref.json',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_sbref.nii.gz',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_sbref.json',
- '/sub-12/dwi/sub-12_part-mag_sbref.json',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isDWI('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isDWI(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- '/sub-12/sub-12.tsv',
- '/sub-12/ses-pre/sub-12_ses-pre_scan.tsv',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_dwi.bvecs',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_dwi.bvals',
- '/sub-12/dwi/sub-12_sbref.bval',
- '/sub-12/dwi/sub-12_sbref.bvec',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_sbref.bval',
- '/sub-12/ses-pre/dwi/sub-12_ses-pre_sbref.bvec',
- '/sub-12/dwi/sub-12_part-magnitude_sbref.json',
- ]
-
- badFilenames.forEach(function (path) {
- it("isDWI('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isDWI(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isMEG', function () {
- const goodFilenames = [
- // Metadata MEG files
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.json',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_channels.tsv',
- // Father directory files are fine for some file formats:
- // Father dir: CTF data with a .ds ... the contents within .ds are not checked
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.ds/catch-alp-good-f.meg4',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.ds/xyz',
- // Father dir: BTi/4D ... again: within contents not checked
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/config',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/hs_file',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/e,rfhp1.0Hz.COH',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/c,rfDC',
- // NO father dir: KRISS data
- '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.chn',
- '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.kdf',
- '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.trg',
- '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_digitizer.txt',
- // NO father dir: KIT data
- '/sub-01/ses-001/meg/sub-01_ses-001_markers.sqd',
- '/sub-01/ses-001/meg/sub-01_ses-001_markers.mrk',
- '/sub-01/ses-001/meg/sub-01_ses-001_meg.sqd',
- '/sub-01/ses-001/meg/sub-01_ses-001_meg.con',
- // NO father dir: ITAB data
- '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.raw',
- '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.raw.mhd',
- // NO father dir: fif data
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_split-01_meg.fif',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_acq-TEST_run-01_split-01_meg.fif',
- // cross-talk and fine-calibration files for Neuromag/Elekta/MEGIN data (.fif)
- '/sub-01/meg/sub-01_acq-calibration_meg.dat',
- '/sub-01/meg/sub-01_acq-crosstalk_meg.fif',
- '/sub-01/ses-001/meg/sub-01_ses-001_acq-calibration_meg.dat',
- '/sub-01/ses-001/meg/sub-01_ses-001_acq-crosstalk_meg.fif',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isMeg('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isMeg(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- // missing session directory
- '/sub-01/meg/sub-01_ses-001_task-rest_run-01_meg.json',
- // subject not matching
- '/sub-01/ses-001/meg/sub-12_ses-001_task-rest_run-01_split-01_meg.fif',
- // invalid file endings
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.tsv',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.bogus',
- // wrong order of entities: https://github.com/bids-standard/bids-validator/issues/767
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_acq-TEST_split-01_meg.fif',
- // only parent directory name matters for BTi and CTF systems
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meggg/config',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.dd/xyz',
- // KIT with a father dir ... should not have a father dir
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_markers.sqd',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_markers.con',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.sqd',
- // FIF with a father dir ... should not have a father dir
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_meg.fif',
- // ITAB with a father dir ... should not have a father dir
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.raw',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.raw.mhd',
- // KRISS with a father dir ... should not have a father dir
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.kdf',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.trg',
- '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.chn',
- // cross-talk and fine-calibration files for Neuromag/Elekta/MEGIN data (.fif)
- // .dat in MEG only allowed for "acq-calibration"
- '/acq-notcalibration_meg.dat',
- '/sub-01/ses-001/meg/sub-01_ses-001_acq-notcalibration_meg.dat',
- '/sub-01/ses-001/meg/sub-01_ses-001_acq-crosstalk_meg.dat',
- ]
-
- badFilenames.forEach(function (path) {
- it("isMeg('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isMeg(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isEEG', function () {
- const goodFilenames = [
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_eeg.json',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_events.tsv',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_split-01_eeg.edf',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_eeg.eeg',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_eeg.vmrk',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_eeg.vhdr',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_eeg.bdf',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_eeg.set',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_eeg.fdt',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_channels.tsv',
- '/sub-01/ses-001/eeg/sub-01_ses-001_electrodes.tsv',
- '/sub-01/ses-001/eeg/sub-01_ses-001_space-CapTrak_electrodes.tsv',
- '/sub-01/ses-001/eeg/sub-01_ses-001_coordsystem.json',
- '/sub-01/ses-001/eeg/sub-01_ses-001_space-CapTrak_coordsystem.json',
- '/sub-01/ses-001/eeg/sub-01_ses-001_photo.jpg',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isEEG('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isEEG(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- '/sub-01/eeg/sub-01_ses-001_task-rest_run-01_eeg.json',
- '/sub-01/ses-001/eeg/sub-12_ses-001_task-rest_run-01_split-01_eeg.edf',
- '/sub-01/ses-001/eeg/sub-01_ses-001_task-rest_run-01_eeg.tsv',
- '/sub-01/ses-001/eeg/sub-01_ses-001_space-BOGUS_electrodes.tsv',
- '/sub-01/ses-001/eeg/sub-01_ses-001_space-BOGUS_coordsystem.json',
- ]
-
- badFilenames.forEach(function (path) {
- it("isEEG('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isEEG(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isIEEG', function () {
- const goodFilenames = [
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_ieeg.json',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.edf',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.vhdr',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.vmrk',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.eeg',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.set',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.fdt',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.nwb',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.mefd/sub-01_ses-001_task-rest_run-01_ieeg.rdat',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.mefd/sub-01_ses-001_task-rest_run-01_ieeg.ridx',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.mefd/CH1.timd/CH1-000000.segd/sub-01_ses-001_task-rest_run-01_ieeg.tdat',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.mefd/CH1.timd/CH1-000000.segd/sub-01_ses-001_task-rest_run-01_ieeg.idx',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_split-01_ieeg.mefd/CH1.timd/CH1-000000.segd/sub-01_ses-001_task-rest_run-01_ieeg.tmet',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_channels.tsv',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_space-fsaverage_electrodes.tsv',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_space-fsaverage_coordsystem.json',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isIEEG('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isIEEG(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- '/sub-01/ieeg/sub-01_ses-001_task-rest_run-01_ieeg.json',
- '/sub-01/ses-001/ieeg/sub-12_ses-001_task-rest_run-01_split-01_ieeg.fif',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_task-rest_run-01_ieeg.tsv',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_space-fsavg_electrodes.tsv',
- '/sub-01/ses-001/ieeg/sub-01_ses-001_space-fsavg_coordsystem.json',
- ]
-
- badFilenames.forEach(function (path) {
- it("isIEEG('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isIEEG(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isPhenotypic', function () {
- it('should allow .tsv and .json files in the /phenotype directory', function () {
- assert(utils.type.file.isPhenotypic('/phenotype/acds_adult.json'))
- assert(utils.type.file.isPhenotypic('/phenotype/acds_adult.tsv'))
- })
-
- it('should not allow non .tsv and .json files in the /phenotype directory', function () {
- assert(!utils.type.file.isPhenotypic('/phenotype/acds_adult.jpeg'))
- assert(!utils.type.file.isPhenotypic('/phenotype/acds_adult.gif'))
- })
-})
-
-describe('utils.type.file.isAssociatedData', function () {
- it('should return false for unknown root directories', function () {
- var badFilenames = ['/images/picture.jpeg', '/temporary/test.json']
-
- badFilenames.forEach(function (path) {
- assert.equal(utils.type.file.isAssociatedData(path), false)
- })
- })
-
- it('should return true for associated data directories and any files within', function () {
- var goodFilenames = [
- '/code/test-script.py',
- '/derivatives/sub-01_QA.pdf',
- '/sourcedata/sub-01_ses-01_bold.dcm',
- '/stimuli/text.pdf',
- ]
-
- goodFilenames.forEach(function (path) {
- assert(utils.type.file.isAssociatedData(path))
- })
- })
-})
-
-describe('utils.type.file.isStimuliData', function () {
- it('should return false for unknown root directories', function () {
- var badFilenames = ['/images/picture.jpeg', '/temporary/test.json']
-
- badFilenames.forEach(function (path) {
- assert.equal(utils.type.file.isStimuliData(path), false)
- })
- })
-
- it('should return true for stimuli data directories and any files within', function () {
- var goodFilenames = ['/stimuli/sub-01/mov.avi', '/stimuli/text.pdf']
-
- goodFilenames.forEach(function (path) {
- assert(utils.type.file.isStimuliData(path))
- })
- })
-})
-
-describe('utils.type.getPathValues', function () {
- it('should return the correct path values from a valid file path', function () {
- assert.equal(
- utils.type.getPathValues(
- '/sub-22/ses-1/func/sub-22_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- ).sub,
- 22,
- )
- assert.equal(
- utils.type.getPathValues(
- '/sub-22/ses-1/func/sub-22_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- ).ses,
- 1,
- )
- assert.equal(
- utils.type.getPathValues(
- '/sub-22/func/sub-22_task-rest_acq-prefrontal_physio.tsv.gz',
- ).sub,
- 22,
- )
- assert.equal(
- utils.type.getPathValues(
- '/sub-22/func/sub-22_task-rest_acq-prefrontal_physio.tsv.gz',
- ).ses,
- null,
- )
- })
-})
-
-describe('utils.type.file.isPET', function () {
- const goodFilenames = [
- '/sub-1/ses-1/pet/sub-1_ses-1_task-1_trc-1_rec-1_run-1_pet.json',
- '/sub-1/ses-1/pet/sub-1_ses-1_task-1_trc-1_rec-1_run-1_pet.nii',
- '/sub-1/ses-1/pet/sub-1_ses-1_task-1_trc-1_rec-1_run-1_pet.nii.gz',
- '/sub-03/ses-01/pet/sub-02_ses-40_task-30_pet.json',
- '/sub-03/ses-01/pet/sub-02_ses-40_pet.nii',
- '/sub-03/ses-01/pet/sub-02_ses-40_pet.nii.gz',
- '/sub-03/pet/sub-02_pet.nii',
- '/sub-03/pet/sub-02_pet.nii.gz',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isPET('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isPET(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- '/sub-1/ses-1/pet/sub-1_ses-1_task-1_trc-1_rec-1_run-1_pet+json',
- '/sub-1/ses-1/pet/sub-1_ses-1_task-1_trc-1_rec-1_run-1_pet.json.gz',
- '/sub-1/ses-1/pet/sub-1ses-1_task-1_trc-1_rec-1_run-1_pet.nii',
- 'sub-1/ses-1/pet/sub-1ses-1_task-1_trc-1_rec-1_run-1_pet.nii',
- '/sub-1/ses-1/pet/sub-1/ses-1_task-1_trc-1_rec-1_run-q_pet.csv',
- '/sub-1/ses-1/pet/sub-1/ses-1_task-1_trc-1_rec-1_run-q_recording-1_pet.nii',
- ]
-
- badFilenames.forEach(function (path) {
- it("isPET('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isPET(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isPETBlood', function () {
- const goodFilenames = [
- '/sub-1/ses-1/pet/sub-1_ses-1_task-1_trc-1_rec-1_run-1_recording-1_blood.json',
- '/sub-1/ses-1/pet/sub-1_ses-1_task-1_trc-1_rec-1_run-1_recording-1_blood.tsv',
- '/sub-03/ses-01/pet/sub-02_ses-40_task-30_recording-manual_blood.json',
- '/sub-03/ses-01/pet/sub-02_ses-40_recording-manual_blood.tsv',
- '/sub-03/pet/sub-02_recording-manual_blood.tsv',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isPETBlood('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isPETBlood(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- '/sub-1/ses-1/pet/sub-1_ses-1_task-1_trc-1_rec-1_run-1_recording-1_blood+json',
- '/sub-1/ses-1/pet/sub-1ses-1_task-1_trc-1_rec-1_run-1_recording-1_blood.tsv',
- 'sub-1/ses-1/pet/sub-1ses-1_task-1_trc-1_rec-1_run-1_recording-1_blood.tsv',
- '/sub-1/ses-1/pet/sub-1/ses-1_task-1_trc-1_rec-1_run-q_recording-1_blood.csv',
- '/sub-1/ses-1/pet/sub-1/ses-1_task-1_trc-1_rec-1_run-q_recording-1_pet.tsv',
- ]
-
- badFilenames.forEach(function (path) {
- it("isPETBlood('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isPETBlood(path), false)
- isdone()
- })
- })
-})
-
-describe('utils.type.file.isMOTION', function () {
- const goodFilenames = [
- '/sub-01/motion/sub-01_task-rest_tracksys-unity_run-01_motion.tsv',
- '/sub-01/ses-walk/motion/sub-01_ses-walk_task-visual_tracksys-unity_motion.tsv',
- '/sub-01/ses-walk/motion/sub-01_ses-walk_task-visual_tracksys-unity_motion.json',
- '/sub-01/ses-walk/motion/sub-01_ses-walk_task-visual_tracksys-unity_channels.tsv',
- '/sub-01/ses-desktop/motion/sub-01_ses-desktop_task-rest_tracksys-unity_run-01_events.tsv',
- '/sub-01/ses-desktop/motion/sub-01_ses-desktop_task-rest_events.tsv',
- ]
-
- goodFilenames.forEach(function (path) {
- it("isMOTION('" + path + "') === true", function (isdone) {
- assert.equal(utils.type.file.isMOTION(path), true)
- isdone()
- })
- })
-
- const badFilenames = [
- '/sub-01/motion/sub-01_ses-001_tracksys-unity_task-rest_run-01_motion.json',
- '/sub-01/ses-001/motion/sub-12_ses-001_task-rest_run-01_motion.tsv',
- '/sub-01/ses-walk/motion/sub-01_ses-walk_task-visual_channels.tsv',
- '/sub-01/ses-001/motion/sub-01_ses-001_run-01_motion.tsv',
- '/sub-01/motion/sub-01_task-walk_run-01_motion.tsv',
- ]
-
- badFilenames.forEach(function (path) {
- it("isMOTION('" + path + "') === false", function (isdone) {
- assert.equal(utils.type.file.isMOTION(path), false)
- isdone()
- })
- })
-})
-
-describe('BIDS.subIDsesIDmismatchtest', function () {
- it("should return if sub and ses doesn't match", function () {
- const files = {
- 0: {
- name: 'sub-22_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- path: 'tests/data/BIDS-examples-1.0.0-rc3u5/ds001/sub-22_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- relativePath:
- 'ds001/sub-22_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- },
- 1: {
- name: '/sub-22/ses-1/func/sub-23_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- path: 'tests/data/BIDS-examples-1.0.0-rc3u5/ds001/sub-22/ses-1/func/sub-23_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- relativePath:
- 'ds001/sub-22/ses-1/func/sub-23_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- },
- 2: {
- name: '/sub-22/ses-1/func/sub-22_ses-2_task-rest_acq-prefrontal_physio.tsv.gz',
- path: 'tests/data/BIDS-examples-1.0.0-rc3u5/ds001/sub-22/ses-1/func/sub-22_ses-2_task-rest_acq-prefrontal_physio.tsv.gz',
- relativePath:
- '/sub-22/ses-1/func/sub-22_ses-2_task-rest_acq-prefrontal_physio.tsv.gz',
- },
- 3: {
- name: '/sub-25/ses-2/func/sub-22_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- path: 'tests/data/BIDS-examples-1.0.0-rc3u5/ds001/sub-25/ses-2/func/sub-22_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- relativePath:
- 'ds001//sub-25/ses-2/func/sub-22_ses-1_task-rest_acq-prefrontal_physio.tsv.gz',
- },
- }
- const issues = BIDS.subIDsesIDmismatchtest(files)
- const code64_seen = issues.some((issue) => issue.code == '64')
- const code65_seen = issues.some((issue) => issue.code == '65')
- assert(code64_seen)
- assert(code65_seen)
- })
-})
diff --git a/bids-validator/tests/utils/config.spec.js b/bids-validator/tests/utils/config.spec.js
deleted file mode 100644
index 9cdcff70..00000000
--- a/bids-validator/tests/utils/config.spec.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import utils from '../../utils'
-import assert from 'assert'
-
-describe('utils.config', function () {
- var codes = [1, 3, 4, 7, 21, 33, 34]
- var conf = {
- ignore: [3],
- warn: [
- 4,
- {
- and: [7, { or: [33, 21] }],
- },
- ],
- error: [34, 33],
- ignoredFiles: ['**/**/**/.DS_Store'],
- }
-
- describe('ignoredFile', function () {
- it('should return true if the file is ignored', function () {
- assert(utils.config.ignoredFile(conf, '/.DS_Store'))
- assert(utils.config.ignoredFile(conf, 'ds001/.DS_Store'))
- assert(utils.config.ignoredFile(conf, 'ds001/sub-01/.DS_Store'))
- })
-
- it('should return false if the file is not ignored', function () {
- assert(!utils.config.ignoredFile(conf, '/participants.tsv'))
- assert(!utils.config.ignoredFile(conf, 'ds001/README'))
- assert(
- !utils.config.ignoredFile(conf, 'ds001/sub-16/anat/sub-16_T1w.nii.gz'),
- )
- })
- })
-
- describe('interpret', function () {
- it('should return the correct severity mappings', function () {
- var severityMap = utils.config.interpret(codes, conf)
- assert.deepEqual(severityMap, {
- 3: 'ignore',
- 4: 'warning',
- 7: 'warning',
- 21: 'warning',
- 33: 'error',
- 34: 'error',
- })
- })
- })
-
- describe('match', function () {
- it('should return a list of triggered codes that match the config', function () {
- assert.deepEqual([3], utils.config.match(codes, conf.ignore))
- assert.deepEqual([4, 7, 33, 21], utils.config.match(codes, conf.warn))
- assert.deepEqual([34, 33], utils.config.match(codes, conf.error))
- })
- })
-
- describe('flatten', function () {
- it('should return a flattened list of codes', function () {
- assert.deepEqual([3], utils.config.flatten(conf.ignore))
- assert.deepEqual([4, 7, 33, 21], utils.config.flatten(conf.warn))
- assert.deepEqual([34, 33], utils.config.flatten(conf.error))
- })
- })
-
- describe('andFullfilled', function () {
- it("should return true if the 'and' array is fulfilled by the triggered codes", function () {
- assert(utils.config.andFulfilled(codes, conf.warn[1].and))
- })
-
- it("should return false if the 'and' array is not fulfilled", function () {
- assert(!utils.config.andFulfilled(codes, [1, 4, 7, 21, 22]))
- })
- })
-
- describe('orFulfilled', function () {
- it("should return true if the 'or' array is fulfilled by the triggered codes", function () {
- assert(utils.config.orFulfilled(codes, conf.warn[1].and[1].or))
- })
-
- it("should return false if the 'or' array is not fulfilled", function () {
- assert(!utils.config.orFulfilled(codes, [5, 6]))
- })
- })
-})
diff --git a/bids-validator/tests/utils/files-web.spec.js b/bids-validator/tests/utils/files-web.spec.js
deleted file mode 100644
index f5779f5c..00000000
--- a/bids-validator/tests/utils/files-web.spec.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * eslint no-console: ["error", { allow: ["log"] }]
- * @jest-environment jsdom
- */
-
-import assert from 'assert'
-
-import utils from '../../../bids-validator/utils'
-import groupFileTypes from '../../../bids-validator/validators/bids/groupFileTypes'
-import checkReadme from '../../../bids-validator/validators/bids/checkReadme.js'
-import checkDatasetDescription from '../../../bids-validator/validators/bids/checkDatasetDescription.js'
-import validateMisc from '../../../bids-validator/utils/files/validateMisc'
-import { createFileList } from '../env/FileList'
-
-describe('files in browser', () => {
- describe('files utils in nodejs', () => {
- describe('FileAPI', () => {
- it('should not return a mock implementation', () => {
- let File = utils.files.FileAPI()
- assert(File.name !== 'NodeFile')
- })
- })
- })
-
- describe('files utils in browsers', () => {
- describe('newFile', () => {
- it('creates a new File API object', () => {
- const test_file = utils.files.newFile('test-file')
- assert.equal(test_file.name, 'test-file')
- assert(File.prototype.isPrototypeOf(test_file))
- })
- })
- })
-
- describe('dataset_description.json', () => {
- it('throws warning if it does not exist in proper location', () => {
- const fileList = {}
- const issues = checkDatasetDescription(fileList)
- assert(issues[0].key === 'DATASET_DESCRIPTION_JSON_MISSING')
- })
- })
-
- describe('README', () => {
- it('throws warning if it does not exist in proper location', () => {
- const fileList = {
- 1: {
- name: 'README',
- path: 'tests/data/bids-examples/ds001/not-root-dir/README',
- relativePath: '/not-root-dir/README',
- },
- }
- const issues = checkReadme(fileList)
- assert(issues[0].key === 'README_FILE_MISSING')
- })
-
- it('throws warning if it is too small', () => {
- const fileList = {
- 1: {
- name: 'README',
- path: 'tests/data/bids-examples/ds001/README',
- relativePath: '/README',
- size: 20,
- },
- }
- const issues = checkReadme(fileList)
- assert(issues[0].key === 'README_FILE_SMALL')
- })
- })
-
- describe('validateMisc', () => {
- let filelist = [],
- dir
-
- beforeAll(() => {
- // contains stripped down CTF format dataset: Both, BadChannels and
- // bad.segments files can be empty and still valid. Everything else must
- // not be empty.
- dir = `${process.cwd()}/bids-validator/tests/data/empty_files`
- })
-
- // generate an array of browser Files
- beforeEach(() => {
- filelist = createFileList(dir)
- })
-
- it('returns issues for empty files (0kb), accepting a limited set of exceptions', (done) => {
- const files = groupFileTypes(filelist, {})
-
- validateMisc(files.misc).then((issues) => {
- // *.meg4 and BadChannels files are empty. But only *.meg4 is an issue
- assert.ok(issues.length == 1)
- assert.ok(issues.every((issue) => issue instanceof utils.issues.Issue))
- assert.notStrictEqual(
- issues.findIndex((issue) => issue.code === 99),
- -1,
- )
- assert.ok(issues[0].file.name == 'sub-0001_task-AEF_run-01_meg.meg4')
- done()
- })
- })
- })
-})
diff --git a/bids-validator/tests/utils/files.spec.js b/bids-validator/tests/utils/files.spec.js
deleted file mode 100644
index 20031936..00000000
--- a/bids-validator/tests/utils/files.spec.js
+++ /dev/null
@@ -1,135 +0,0 @@
-import assert from 'assert'
-import utils from '../../utils'
-import groupFileTypes from '../../validators/bids/groupFileTypes'
-import checkReadme from '../../validators/bids/checkReadme.js'
-import checkDatasetDescription from '../../validators/bids/checkDatasetDescription.js'
-import validateMisc from '../../utils/files/validateMisc'
-
-const setupMocks = () => {
- // Mock version of the File API for tests
- global.File = function MockFile(data, fileName, options) {
- assert(data.hasOwnProperty('length'))
- assert.equal(typeof data[0], 'string')
- this._data = data
- this._options = options
- this.name = fileName
- }
-}
-const cleanupMocks = () => {
- delete global.File
-}
-
-describe('files utils in nodejs', () => {
- describe('FileAPI', () => {
- it('should return a mock implementation', () => {
- let File = utils.files.FileAPI()
- assert(typeof File !== 'undefined')
- assert(File.name === 'NodeFile')
- })
- })
- describe('newFile', () => {
- it('creates a new File API object', () => {
- let file = utils.files.newFile('test-file')
- assert.equal(file.name, 'test-file')
- })
- })
-})
-
-describe('files utils in browsers', () => {
- beforeAll(setupMocks)
- afterAll(cleanupMocks)
- describe('newFile', () => {
- it('creates a new File API object', () => {
- const test_file = utils.files.newFile('test-file')
- assert(File.prototype.isPrototypeOf(test_file))
- })
- })
-})
-
-describe('dataset_description.json', () => {
- it('throws warning if it does not exist in proper location', () => {
- const jsonFileContents = {}
- const issues = checkDatasetDescription(jsonFileContents)
- assert(issues[0].key === 'DATASET_DESCRIPTION_JSON_MISSING')
- })
- it('throws a warning if the Authors field of the dataset description has a single entry and less than two commas', () => {
- const jsonFileContents = {
- '/dataset_description.json': {
- Authors: ['An, Author'],
- },
- }
- const issues = checkDatasetDescription(jsonFileContents)
- assert(issues[0].key === 'TOO_FEW_AUTHORS')
- })
- it('throws an error if the Authors field of the dataset description has a single field and multiple commas', () => {
- const jsonFileContents = {
- '/dataset_description.json': {
- Authors: [
- 'Too many, Commas, Indicate, That the user, May not have, Separated authors, Into an array',
- ],
- },
- }
- const issues = checkDatasetDescription(jsonFileContents)
- assert(issues[0].key === 'MULTIPLE_COMMAS_IN_AUTHOR_FIELD')
- })
-})
-
-describe('README', () => {
- it('throws warning if it does not exist in proper location', () => {
- const fileList = {
- 1: {
- name: 'README',
- path: 'tests/data/bids-examples/ds001/not-root-dir/README',
- relativePath: '/not-root-dir/README',
- },
- }
- const issues = checkReadme(fileList)
- assert(issues[0].key === 'README_FILE_MISSING')
- })
-
- it('throws warning if it is too small', () => {
- const fileList = {
- 1: {
- name: 'README',
- path: 'tests/data/bids-examples/ds001/README',
- relativePath: '/README',
- stats: { size: 20 },
- },
- }
- const issues = checkReadme(fileList)
- assert(issues[0].key === 'README_FILE_SMALL')
- })
-})
-
-describe('validateMisc', () => {
- let filelist, dir
-
- beforeAll(() => {
- // contains stripped down CTF format dataset: Both, BadChannels and
- // bad.segments files can be empty and still valid. Everything else must
- // not be empty.
- dir = `${process.cwd()}/bids-validator/tests/data/empty_files`
- })
-
- beforeEach(() => {
- return utils.files.readDir(dir).then((files) => {
- filelist = files
- })
- })
- it('returns issues for empty files (0kb), accepting a limited set of exceptions', (done) => {
- utils.collectSummary(filelist, {})
- const files = groupFileTypes(filelist, {})
-
- validateMisc(files.misc).then((issues) => {
- // *.meg4 and BadChannels files are empty. But only *.meg4 is an issue
- assert.ok(issues.length == 1)
- assert.ok(issues.every((issue) => issue instanceof utils.issues.Issue))
- assert.notStrictEqual(
- issues.findIndex((issue) => issue.code === 99),
- -1,
- )
- assert.ok(issues[0].file.name == 'sub-0001_task-AEF_run-01_meg.meg4')
- done()
- })
- })
-})
diff --git a/bids-validator/tests/utils/issues.spec.js b/bids-validator/tests/utils/issues.spec.js
deleted file mode 100644
index 7b11c3f4..00000000
--- a/bids-validator/tests/utils/issues.spec.js
+++ /dev/null
@@ -1,103 +0,0 @@
-import assert from 'assert'
-import utils from '../../utils'
-
-describe('issues', () => {
- describe('exceptionHandler', () => {
- let testErr, issueList, summary, options, formattedIssues
-
- beforeAll(() => {
- testErr = new Error('oh no')
- issueList = []
- summary = {
- sessions: [],
- subjects: [],
- tasks: [],
- modalities: [],
- totalFiles: 0,
- size: 0,
- }
- options = {
- ignoreWarnings: false,
- ignoreNiftiHeaders: false,
- verbose: false,
- config: {},
- }
- formattedIssues = utils.issues.exceptionHandler(
- testErr,
- issueList,
- summary,
- options,
- )
- })
-
- it('adds INTERNAL ERROR to the issues.errors list', () => {
- assert.equal(formattedIssues.errors[0].key, 'INTERNAL ERROR')
- })
-
- it("creates a properly formatted issue in the error's files property", () => {
- const exceptionIssue = formattedIssues.errors[0].files[0]
- assert.ok(utils.issues.isAnIssue(exceptionIssue))
- })
-
- it('gives a reason for the error', () => {
- const exceptionIssue = formattedIssues.errors[0].files[0]
- assert.equal(
- exceptionIssue.reason,
- `${testErr.message}; please help the BIDS team and community by opening an issue at (https://github.com/bids-standard/bids-validator/issues) with the evidence here.`,
- )
- })
- })
-
- describe('exception/issue redirect', () => {
- let promise, innerPromise, validIssue, invalidIssue
- beforeAll(() => {
- promise = null
- validIssue = new utils.issues.Issue({
- code: 12,
- file: 'goodstuff.json',
- reason: 'a series of unfortunate events',
- })
- invalidIssue = new Error('oops')
-
- promise = () => {
- return new Promise((resolve, reject) => {
- innerPromise().catch((err) =>
- utils.issues.redirect(err, reject, () => {
- resolve()
- }),
- )
- })
- }
- })
-
- it('resolves with valid issue', (done) => {
- innerPromise = () =>
- new Promise((_, reject) => {
- reject(validIssue)
- })
-
- promise().then(() => done())
- })
-
- it('rejects exceptions', (done) => {
- innerPromise = () =>
- new Promise((_, reject) => {
- reject(invalidIssue)
- })
-
- promise().catch(() => done())
- })
-
- it('passes the exception through the error', (done) => {
- innerPromise = () =>
- new Promise((_, reject) => {
- reject(invalidIssue)
- })
-
- promise().catch((err) => {
- assert.deepEqual(err, invalidIssue)
- done()
- })
- })
- })
-})
diff --git a/bids-validator/utils/__tests__/bids_files.spec.js b/bids-validator/utils/__tests__/bids_files.spec.js
deleted file mode 100644
index 91507be3..00000000
--- a/bids-validator/utils/__tests__/bids_files.spec.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import { assert } from 'chai'
-import { checkSidecarForDatafiles } from '../bids_files.js'
-
-describe('bids_files', () => {
- describe('checkSidecarForDatafiles()', () => {
- it('matches .tsv datafile to sidecar', () => {
- const file = {
- relativePath:
- 'ds001/sub-02/func/sub-02_task-balloonanalogrisktask_run-01_events.json',
- }
- const fileList = {
- 1: {
- name: 'sub-02_task-balloonanalogrisktask_run-01_events.tsv',
- relativePath:
- 'ds001/sub-02/func/sub-02_task-balloonanalogrisktask_run-01_events.tsv',
- },
- }
- const match = checkSidecarForDatafiles(file, fileList)
- assert.isTrue(match)
- })
-
- it('does not match invalid datafile formats', () => {
- const file = {
- relativePath:
- 'ds001/sub-02/func/sub-02_task-balloonanalogrisktask_run-01_events.json',
- }
- const fileList = {
- 1: {
- name: 'sub-02_task-balloonanalogrisktask_run-01_events.tsv',
- relativePath:
- 'ds001/sub-02/func/sub-02_task-balloonanalogrisktask_run-01_events.tsn',
- },
- }
- const match = checkSidecarForDatafiles(file, fileList)
- assert.isFalse(match)
- })
- })
-})
diff --git a/bids-validator/utils/__tests__/collectSubjectMetadata.spec.js b/bids-validator/utils/__tests__/collectSubjectMetadata.spec.js
deleted file mode 100644
index a5863ce4..00000000
--- a/bids-validator/utils/__tests__/collectSubjectMetadata.spec.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import { assert } from 'chai'
-import collectSubjectMetadata from '../summary/collectSubjectMetadata'
-
-describe('collectSubjectMetadata', () => {
- it('extracts tsv string to subjectMetadata object', () => {
- const tsvFile = `participant_id age sex
-sub-01 34 F
-sub-02 38 M
-`
- const subjectMetadata = collectSubjectMetadata(tsvFile)
- assert.lengthOf(subjectMetadata, 2)
- assert.deepEqual(subjectMetadata[0], {
- participantId: '01',
- age: 34,
- sex: 'F',
- })
- })
- it('extracts tsv string to subjectMetadata object', () => {
- const tsvFile = ``
- const subjectMetadata = collectSubjectMetadata(tsvFile)
- assert.equal(subjectMetadata, undefined)
- })
-})
diff --git a/bids-validator/utils/__tests__/filenamesOnly.spec.js b/bids-validator/utils/__tests__/filenamesOnly.spec.js
deleted file mode 100644
index 63e37200..00000000
--- a/bids-validator/utils/__tests__/filenamesOnly.spec.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { validateFilenames } from '../filenamesOnly.js'
-
-describe('test filenames mode', () => {
- beforeEach(() => {
- // eslint-disable-next-line
- console.log = jest.fn()
- })
- it('throws an error when obviously non-BIDS input', async () => {
- async function* badData() {
- yield '0001'
- yield 'nope'
- yield 'not-bids'
- yield 'data'
- }
- const res = await validateFilenames(badData())
- expect(res).toBe(false)
- })
- it('passes validation with a simple dataset', async () => {
- async function* goodData() {
- yield '0001'
- yield 'CHANGES'
- yield 'dataset_description.json'
- yield 'participants.tsv'
- yield 'README'
- yield 'sub-01/anat/sub-01_T1w.nii.gz'
- yield 'T1w.json'
- }
- const res = await validateFilenames(goodData())
- expect(res).toBe(true)
- })
- it('passes validation with .bidsignore', async () => {
- async function* goodData() {
- yield 'sub-02/*'
- yield '0001'
- yield 'CHANGES'
- yield 'dataset_description.json'
- yield 'participants.tsv'
- yield 'README'
- yield 'sub-01/anat/sub-01_T1w.nii.gz'
- yield 'T1w.json'
- yield 'sub-02/not-bids-file.txt'
- }
- const res = await validateFilenames(goodData())
- expect(res).toBe(true)
- })
-})
diff --git a/bids-validator/utils/__tests__/gitTreeMode.spec.js b/bids-validator/utils/__tests__/gitTreeMode.spec.js
deleted file mode 100644
index a16d2e70..00000000
--- a/bids-validator/utils/__tests__/gitTreeMode.spec.js
+++ /dev/null
@@ -1,128 +0,0 @@
-import { assert } from 'chai'
-import {
- readLsTreeLines,
- readCatFileLines,
- processFiles,
-} from '../files/readDir'
-import ignore from 'ignore'
-
-describe('gitTreeMode functions', () => {
- describe('readLsTreeLines', () => {
- it('will handle regular files', () => {
- const lsTreeLines = [
- '100644 blob longkeystring 1000000\tfile/path',
- '100644 blob anotherlongkeystring 1\tpath/to/file',
- ]
-
- const output = readLsTreeLines(lsTreeLines)
- assert.hasAllKeys(output, ['files', 'symlinkFilenames', 'symlinkObjects'])
- assert.isEmpty(output.symlinkFilenames)
- assert.isEmpty(output.symlinkObjects)
- assert.equal(output.files[0].path, 'file/path')
- assert.equal(output.files[0].size, 1000000)
- })
-
- it('will handle symlinked files', () => {
- const lsTreeLines = [
- '120000 blob e886cd8566b5e97db1fc41bb9364fc22cbe81426 199\tsymlink/filepath',
- '120000 blob e2cd091677489a0377d9062347c32d3efebf4322 199\they/jude/dont/be/afraid',
- ]
- const expected = {
- files: [],
- symlinkFilenames: ['symlink/filepath', 'hey/jude/dont/be/afraid'],
- symlinkObjects: [
- 'e886cd8566b5e97db1fc41bb9364fc22cbe81426',
- 'e2cd091677489a0377d9062347c32d3efebf4322',
- ],
- }
- assert.deepEqual(readLsTreeLines(lsTreeLines), expected)
- })
- })
-
- describe('readCatFileLines', () => {
- it('creates file objects from git cat-file output', () => {
- const catFileOutput = [
- 'hash blob 140',
- '.git/annex/objects/Mv/99/SHA256E-s54--42c98d14dbe3d066d35897a61154e39ced478cd1f0ec6159ba5f2361c4919878.json/SHA256E-s54--42c98d14dbe3d066d35897a61154e39ced478cd1f0ec6159ba5f2361c4919878.json',
- 'otherhash blob 140',
- '.git/annex/objects/QV/mW/SHA256E-s99--bbef536348750373727d3b5856398d7377e5d7e23875eed026b83d12cee6f885.json/SHA256E-s99--bbef536348750373727d3b5856398d7377e5d7e23875eed026b83d12cee6f885.json',
- ]
- const symlinkFilenames = ['path/to/file/a', 'path/to/file/b']
- const output = readCatFileLines(catFileOutput, symlinkFilenames)
- assert.equal(output[0].path, symlinkFilenames[0])
- assert.equal(output[0].size, 54)
- })
- })
-
- describe('processFiles', () => {
- const ig = ignore().add('.*').add('/derivatives')
- it('aggregates, filters, and augments the files given to it', () => {
- const filesA = [
- {
- path: '.DS_Store',
- size: 1000000,
- },
- {
- path: 'path/to/a',
- size: 100,
- },
- {
- path: 'path/to/b',
- size: 99,
- },
- ]
- const filesB = [
- {
- path: 'path/to/c',
- size: 98,
- },
- {
- path: 'path/to/d',
- size: 1,
- },
- {
- path: 'derivatives/to/derivative_file',
- size: 1,
- },
- ]
- /* Not currently in use.
- const expected = [
- {
- path: '/path/to/dataset/path/to/a',
- size: 100,
- relativePath: '/path/to/a',
- name: 'a',
- },
- {
- path: '/path/to/dataset/path/to/b',
- size: 99,
- relativePath: '/path/to/b',
- name: 'b',
- },
- {
- path: '/path/to/dataset/path/to/c',
- size: 98,
- relativePath: '/path/to/c',
- name: 'c',
- },
- {
- path: '/path/to/dataset/path/to/d',
- size: 1,
- relativePath: '/path/to/d',
- name: 'd',
- },
- ]
- */
- const output = processFiles('/path/to/dataset', ig, filesA, filesB)
- const fileNames = output.map((file) => file.name)
- assert(!fileNames.includes('.DS_Store'), 'filters out ignored files')
- assert(
- !fileNames.includes('derivative_file'),
- 'filters out ignored directories',
- )
- assert.deepEqual(fileNames, ['a', 'b', 'c', 'd'], 'aggregates files')
- assert.isString(output[0].relativePath, 'adds relativePath to files')
- assert.isString(output[1].relativePath, 'adds name to files')
- })
- })
-})
diff --git a/bids-validator/utils/__tests__/type.spec.js b/bids-validator/utils/__tests__/type.spec.js
deleted file mode 100644
index 1de4402e..00000000
--- a/bids-validator/utils/__tests__/type.spec.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import type from '../type.js'
-
-describe('type.js', () => {
- describe('isBids()', () => {
- it('does not throw an error for valid defacemask filenames', () => {
- expect(
- type.isBIDS(
- '/sub-rid000043/anat/sub-rid000043_run-02_mod-T1w_defacemask.nii.gz',
- ),
- ).toBe(true)
- })
-
- it('does not throw an error for recording entity in physio data', () => {
- expect(
- type.isBIDS(
- '/sub-05/eeg/sub-05_task-matchingpennies_recording-eyetracking_physio.tsv.gz',
- ),
- ).toBe(true)
- })
-
- it('does not throw an error for recording entity in physio data at root of the dataset', () => {
- expect(
- type.isBIDS('/task-matchingpennies_recording-eyetracking_physio.json'),
- ).toBe(true)
- })
-
- const physio_task_modalities = ['eeg', 'ieeg', 'meg', 'func', 'beh']
- physio_task_modalities.map((mod) => {
- it(`does not throw an error for recording entity in ${mod} physio data`, () => {
- expect(
- type.isBIDS(
- `/sub-05/${mod}/sub-05_task-matchingpennies_recording-eyetracking_physio.tsv.gz`,
- ),
- ).toBe(true)
- })
- })
- })
-})
diff --git a/bids-validator/utils/__tests__/unit.spec.js b/bids-validator/utils/__tests__/unit.spec.js
deleted file mode 100644
index 10716769..00000000
--- a/bids-validator/utils/__tests__/unit.spec.js
+++ /dev/null
@@ -1,92 +0,0 @@
-import unit from '../unit'
-
-const { prefixes, roots } = unit
-const validRoot = roots[0]
-
-describe('unit validator', () => {
- it('handles simple units', () => {
- roots.forEach((validRoot) => {
- const goodOutput = unit.validate(validRoot)
- expect(goodOutput.isValid).toBe(true)
- })
- const invalidRoots = [
- 'definitielynotavalidroot',
- `%/${validRoot}`,
- `n/a*${validRoot}`,
- ]
- invalidRoots.forEach((invalidRoot) => {
- const badOutput = unit.validate(invalidRoot)
- expect(badOutput.isValid).toBe(false)
- })
- })
-
- it('handles simple units with prefixes', () => {
- prefixes.forEach((validPrefix) => {
- const goodOutput = unit.validate(validPrefix + validRoot)
- expect(goodOutput.isValid).toBe(true)
- })
- const badOutput = unit.validate('badprefix' + validRoot)
- expect(badOutput.isValid).toBe(false)
- })
-
- const validExponents = [
- '^2',
- '^543',
- '¹²³',
- ...unit.superscriptNumbers.slice(0, 3),
- '^-2',
- '⁻³',
- ]
- it('handles simple units with exponents', () => {
- validExponents.forEach((exp) => {
- const goodOutput = unit.validate(validRoot + exp)
- expect(goodOutput.isValid).toBe(true)
- })
- const invalidExponents = ['^^12', '142', '1', '0', '^.1', '^2.1']
- invalidExponents.forEach((exp) => {
- const badOutput = unit.validate(validRoot + exp)
- expect(badOutput.isValid).toBe(false)
- })
- validExponents.slice(0, 3).forEach((exp) => {
- const badOutput = unit.validate(exp)
- expect(badOutput.isValid).toBe(false)
- })
- })
-
- it('handles derived units', () => {
- const validUnits = ['T/m', 'N*m', 'm^2/s^2', 'mm/ms', 'kT³*nm²', 'm²/s²']
- validUnits.forEach((derivedUnit) => {
- const goodOutput = unit.validate(derivedUnit)
- expect(goodOutput.isValid).toBe(true)
- })
- const invalidUnits = [
- `/${validRoot}`,
- `*${validRoot}`,
- `${validRoot}/`,
- `${validRoot}*`,
- `${validRoot}//${validRoot}`,
- `${validRoot}///${validRoot}`,
- `${validRoot}**${validRoot}`,
- `${validRoot}***${validRoot}`,
- `${roots.slice(0, 3).join('')}`,
- ...validExponents.map((exp) => `${exp}${validRoot}`),
- ]
- invalidUnits.forEach((derivedUnit) => {
- const badOutput = unit.validate(derivedUnit)
- expect(badOutput.isValid).toBe(false)
- })
- })
-
- describe('edge cases', () => {
- it('handles unavailable units', () => {
- const unavaliableUnit = 'n/a'
- const goodOutput = unit.validate(unavaliableUnit)
- expect(goodOutput.isValid).toBe(true)
- })
- it('handles percentages', () => {
- const unavaliableUnit = '%'
- const goodOutput = unit.validate(unavaliableUnit)
- expect(goodOutput.isValid).toBe(true)
- })
- })
-})
diff --git a/bids-validator/utils/array.js b/bids-validator/utils/array.js
deleted file mode 100644
index c9ee84ac..00000000
--- a/bids-validator/utils/array.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var array = {
- /**
- * Equals
- *
- * Takes two arrays and returns true if they're
- * equal. Takes a third optional boolean argument
- * to sort arrays before checking equality.
- */
- equals: function (array1, array2, sort) {
- // if the other array is a falsy value, return
- if (!array1 || !array2) {
- return false
- }
-
- // compare lengths
- if (array1.length != array2.length) {
- return false
- }
-
- // optionally sort arrays
- if (sort) {
- array1.sort()
- array2.sort()
- }
-
- for (var i = 0, l = array1.length; i < l; i++) {
- // Check if we have nested arrays
- if (array1[i] instanceof Array && array2[i] instanceof Array) {
- // recurse into the nested arrays
- if (!array.equals(array1[i], array2[i], sort)) {
- return false
- }
- } else if (array1[i] != array2[i]) {
- // Warning - two different object instances will never be equal: {x:20} != {x:20}
- return false
- }
- }
- return true
- },
-
- /**
- * Takes to arrays and returns an array of two
- * arrays contains the differences contained
- * in each array.
- */
- diff: function (array1, array2) {
- var diff1 = [],
- diff2 = []
- for (var i = 0; i < array1.length; i++) {
- var elem1 = array1[i]
- var index = array2.indexOf(elem1)
- if (index > -1) {
- array2.splice(index, 1)
- } else {
- diff1.push(elem1)
- }
- }
- diff2 = array2
- return [diff1, diff2]
- },
-}
-
-export default array
diff --git a/bids-validator/utils/bids_files.js b/bids-validator/utils/bids_files.js
deleted file mode 100644
index 54fd90f4..00000000
--- a/bids-validator/utils/bids_files.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * Utility functions for checking bids file structures
- * eg. corresponding files
- */
-// dependencies -------------------------------------------------------------------
-import type from './type.js'
-
-// implementations ----------------------------------------------------------------
-/**
- * Verify that JSON sidecars have corresponding data files
- */
-function checkSidecarForDatafiles(file, fileList) {
- const noExt = file.relativePath.replace('.json', '')
- const dictName = noExt.substring(noExt.lastIndexOf('/') + 1, noExt.length)
- const args = {
- dictArgs: dictName.split('_'),
- dictName: dictName,
- dictPath: noExt.substring(0, noExt.lastIndexOf('/') + 1),
- file: file,
- fileList: fileList,
- noExt: noExt,
- }
- const idxs = Object.keys(fileList)
- // Check each file in fileList for potential match - return true on first match
- let dataFile = idxs.some(checkFileListForMatch, args)
- return dataFile
-}
-
-/**
- * Check file list for first valid match for sidecar file
- */
-function checkFileListForMatch(i) {
- this.path = this.fileList[i].relativePath
- let match = false
- // Only check file if path includes the path to sidecar
- const dictArgs = this.path.includes(this.dictPath) ? this.dictArgs : []
- // Set true if dictArgs and all dictargs exist in file path (except 'coordsystem')
- let pathMatch =
- dictArgs.length > 0
- ? dictArgs.every(
- (arg) => arg === 'coordsystem' || this.path.includes(arg),
- )
- : false
- if (pathMatch) {
- match = verifyDatafileMatch(
- this.file.relativePath,
- this.noExt,
- this.fileList[i],
- )
- }
- return match
-}
-
-/**
- * Accepts path to sidecar file, the sidecar filename without extension
- * and the datafile that's a potential match
- * Returns boolean indicating if file evaluates as valid datafile
- */
-function verifyDatafileMatch(sidecarPath, noExt, matchFile) {
- let match = false
- let folderMatch = false
-
- // Make sure it's not the data dictionary itself
- const isSelf = matchFile.relativePath === sidecarPath
- if (!isSelf && type.file.isDatafile(matchFile.relativePath)) {
- match = true
- }
-
- // IEEG and MEG datafiles may be a folder, therefore not contained in fileList, will need to look in paths
- if (!isSelf && !match) {
- if (noExt.endsWith('_meg') || noExt.endsWith('_coordsystem')) {
- folderMatch = matchFile.relativePath.includes('_meg.ds')
- }
- if (noExt.endsWith('_ieeg') || noExt.endsWith('_coordsystem')) {
- folderMatch = matchFile.relativePath.includes('_ieeg.mefd')
- }
- }
- if (folderMatch) {
- match = true
- }
-
- return match
-}
-
-export { checkSidecarForDatafiles }
-
-export default {
- checkSidecarForDatafiles,
-}
diff --git a/bids-validator/utils/common.js b/bids-validator/utils/common.js
deleted file mode 100644
index a63f56e6..00000000
--- a/bids-validator/utils/common.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// An index of rules documents to export as modules
-// The Python module expects these to be within its tree, but we can just import them from there
-import associated_data_rules from '../bids_validator/bids_validator/rules/associated_data_rules.json'
-
-import file_level_rules from '../bids_validator/bids_validator/rules/file_level_rules.json'
-import phenotypic_rules from '../bids_validator/bids_validator/rules/phenotypic_rules.json'
-import session_level_rules from '../bids_validator/bids_validator/rules/session_level_rules.json'
-import subject_level_rules from '../bids_validator/bids_validator/rules/subject_level_rules.json'
-import top_level_rules from '../bids_validator/bids_validator/rules/top_level_rules.json'
-
-export default {
- associated_data_rules: associated_data_rules,
- file_level_rules: file_level_rules,
- phenotypic_rules: phenotypic_rules,
- session_level_rules: session_level_rules,
- subject_level_rules: subject_level_rules,
- top_level_rules: top_level_rules,
-}
diff --git a/bids-validator/utils/config.js b/bids-validator/utils/config.js
deleted file mode 100644
index 2b9f8f18..00000000
--- a/bids-validator/utils/config.js
+++ /dev/null
@@ -1,150 +0,0 @@
-import minimatch from 'minimatch'
-
-var config = {
- /**
- * Ignored File
- */
- ignoredFile: function (conf, filePath) {
- if (conf.ignoredFiles) {
- for (var i = 0; i < conf.ignoredFiles.length; i++) {
- var ignoredPattern = conf.ignoredFiles[i]
- if (minimatch(filePath, ignoredPattern)) {
- return true
- }
- }
- }
- return false
- },
-
- /**
- * Interpret Config
- *
- * Takes a list of triggered codes and a config object
- * and create a map of modified severities
- */
- interpret: function (codes, conf) {
- var severityMap = {}
-
- if (conf.ignore && conf.ignore.length > 0) {
- var ignoreCodes = this.match(codes, conf.ignore)
- for (var i = 0; i < ignoreCodes.length; i++) {
- var ignoreCode = ignoreCodes[i]
- severityMap[ignoreCode] = 'ignore'
- }
- }
-
- if (conf.warn && conf.warn.length > 0) {
- var warnCodes = this.match(codes, conf.warn)
- for (var j = 0; j < warnCodes.length; j++) {
- var warnCode = warnCodes[j]
- severityMap[warnCode] = 'warning'
- }
- }
-
- if (conf.error && conf.error.length > 0) {
- var errorCodes = this.match(codes, conf.error)
- for (var k = 0; k < errorCodes.length; k++) {
- var errorCode = errorCodes[k]
- severityMap[errorCode] = 'error'
- }
- }
-
- return severityMap
- },
-
- /**
- * Match
- *
- * Takes a list of triggered codes and a config
- * object and returns the matched codes.
- */
- match: function (codes, conf) {
- var matches = []
- for (var i = 0; i < conf.length; i++) {
- var confCode = conf[i]
- if (codes.indexOf(confCode) > -1) {
- matches.push(confCode)
- } else if (
- confCode.hasOwnProperty('and') &&
- this.andFulfilled(codes, confCode.and)
- ) {
- // 'and' array fulfilled
- matches = matches.concat(this.flatten(confCode.and))
- }
- }
- return matches
- },
-
- /**
- * Flatten
- *
- * Takes an array that may contain objects with
- * 'and' or 'or' properties and flattens it.
- */
- flatten: function (list) {
- var codes = []
- for (var i = 0; i < list.length; i++) {
- var code = list[i]
- if (code.hasOwnProperty('and')) {
- codes = codes.concat(this.flatten(code.and))
- } else if (code.hasOwnProperty('or')) {
- codes = codes.concat(this.flatten(code.or))
- } else {
- codes.push(code)
- }
- }
- return codes
- },
-
- /**
- * And Fulfilled
- *
- * Takes an array of triggered code and an 'and'
- * array, recursively checks if it's fulfilled
- * and returns true if it is.
- */
- andFulfilled: function (codes, and) {
- for (var i = 0; i < and.length; i++) {
- var andCode = and[i]
- if (andCode.hasOwnProperty('and')) {
- if (!this.andFulfilled(codes, andCode.and)) {
- return false
- }
- } else if (andCode.hasOwnProperty('or')) {
- if (!this.orFulfilled(codes, andCode.or)) {
- return false
- }
- } else if (codes.indexOf(andCode) < 0) {
- return false
- }
- }
- return true
- },
-
- /**
- * Or Fulfilled
- *
- * Takes an array of triggered code and an 'or'
- * array, recursively checks if it's fulfilled
- * and returns true if it is.
- */
- orFulfilled: function (codes, or) {
- for (var i = 0; i < or.length; i++) {
- var orCode = or[i]
- if (orCode.hasOwnProperty('and')) {
- if (this.andFulfilled(codes, orCode.and)) {
- return true
- }
- } else if (orCode.hasOwnProperty('or')) {
- if (this.orFulfilled(codes, orCode.or)) {
- return true
- }
- } else if (codes.indexOf(orCode) > -1) {
- return true
- }
- }
- return false
- },
-}
-
-export default config
diff --git a/bids-validator/utils/consoleFormat.js b/bids-validator/utils/consoleFormat.js
deleted file mode 100644
index cccd9e23..00000000
--- a/bids-validator/utils/consoleFormat.js
+++ /dev/null
@@ -1,179 +0,0 @@
-import colors from 'colors/safe'
-import { table, getBorderCharacters } from 'table'
-import pluralize from 'pluralize'
-import bytes from 'bytes'
-
-export default {
- issues: formatIssues,
- summary: formatSummary,
- logIssues,
- unexpectedError,
-}
-
-function unexpectedError(message) {
- return colors.red(message)
-}
-
-function formatIssues(issues, options = {}) {
- var errors = issues.errors
- var warnings = issues.warnings
- var output = []
- if (errors && errors.length === 1 && errors[0].code === '61') {
- output.push(
- colors.red(
- '[ERR] The given directory failed an initial Quick Test. This means the basic names and structure of the files and directories do not comply with BIDS specification. For more info go to https://bids.neuroimaging.io/',
- ),
- )
- } else if (issues.config && issues.config.length >= 1) {
- output.push(colors.red('[ERR] Invalid Config File'))
- for (var i = 0; i < issues.config.length; i++) {
- var issue = issues.config[i]
- issue.file.file = { relativePath: issue.file.path }
- issue.files = [issue.file]
- }
- output = output.concat(logIssues(issues.config, 'red', options))
- } else if (errors.length >= 1 || warnings.length >= 1) {
- output = output.concat(logIssues(errors, 'red', options))
- output = output.concat(logIssues(warnings, 'yellow', options))
- } else {
- output.push(colors.green('This dataset appears to be BIDS compatible.'))
- }
- return output.join('\n')
-}
-
-function logIssues(issues, color, options) {
- const severity = color == 'red' ? 'ERR' : 'WARN'
- const output = []
- for (var i = 0; i < issues.length; i++) {
- const issue = issues[i]
- const issueNumber = i + 1
- output.push(
- '\t' +
- colors[color](
- issueNumber +
- ': ' +
- `[${severity}] ` +
- issue.reason +
- ' (code: ' +
- issue.code +
- ' - ' +
- issue.key +
- ')',
- ),
- )
- for (var j = 0; j < issue.files.length; j++) {
- var file = issues[i].files[j]
- if (!file || !file.file) {
- continue
- }
- let indent = '\t\t'
- if (file.file.relativePath) {
- output.push(`${indent}.` + file.file.relativePath)
- indent = '\t\t\t'
- }
- if (options.verbose) {
- output.push(indent + file.reason)
- }
- if (file.line) {
- var msg = `${indent}@ line: ` + file.line
- if (file.character) {
- msg += ' character: ' + file.character
- }
- output.push(msg)
- }
- if (file.evidence) {
- output.push(`${indent}Evidence: ` + file.evidence)
- }
- }
- if (issue.additionalFileCount > 0) {
- output.push(
- '\t\t' +
- colors[color](
- '... and ' +
- issue.additionalFileCount +
- ' more files having this issue (Use --verbose to see them all).',
- ),
- )
- }
- output.push('')
- if (issue.helpUrl) {
- output.push(
- colors.cyan(
- '\t' +
- 'Please visit ' +
- issue.helpUrl +
- ' for existing conversations about this issue.',
- ),
- )
- output.push('')
- }
- }
- return output
-}
-
-function formatSummary(summary) {
- const output = []
- if (summary) {
- var numSessions = summary.sessions.length > 0 ? summary.sessions.length : 1
-
- // data
- var column1 = [
- summary.totalFiles +
- ' ' +
- pluralize('File', summary.totalFiles) +
- ', ' +
- bytes(summary.size),
- summary.subjects.length +
- ' - ' +
- pluralize('Subject', summary.subjects.length),
- numSessions + ' - ' + pluralize('Session', numSessions),
- ],
- column2 = summary.tasks,
- column3 = summary.modalities
-
- var longestColumn = Math.max(column1.length, column2.length, column3.length)
- var pad = ' '
-
- // headers
- var headers = [
- pad,
- colors.blue.underline('Summary:') + pad,
- colors.blue.underline('Available Tasks:') + pad,
- colors.blue.underline('Available Modalities:'),
- ]
-
- // rows
- var rows = [headers]
- for (var i = 0; i < longestColumn; i++) {
- var val1, val2, val3
- val1 = column1[i] ? column1[i] + pad : ''
- val2 = column2[i] ? column2[i] + pad : ''
- val3 = column3[i] ? column3[i] : ''
- rows.push([pad, val1, val2, val3])
- }
- output.push(
- table(rows, {
- border: getBorderCharacters(`void`),
- columnDefault: {
- paddingLeft: 0,
- paddingRight: 1,
- },
- drawHorizontalLine: () => {
- return false
- },
- }),
- )
-
- output.push('')
-
- //Neurostars message
- output.push(
- colors.cyan(
- '\tIf you have any questions, please post on https://neurostars.org/tags/bids.',
- ),
- )
-
- output.push('')
- }
- return output.join('\n')
-}
diff --git a/bids-validator/utils/filenamesOnly.js b/bids-validator/utils/filenamesOnly.js
deleted file mode 100644
index 7b096e8b..00000000
--- a/bids-validator/utils/filenamesOnly.js
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * Run validation against a list of input files from git pre-receive
- */
-import readline from 'readline'
-import path from 'path'
-import { defaultIgnore } from './files/readDir.js'
-import quickTest from '../validators/bids/quickTest.js'
-import groupFileTypes from '../validators/bids/groupFileTypes.js'
-
-// Disable most tests that might access files
-const defaultOptions = {
- ignoreWarnings: true,
- ignoreNiftiHeaders: true,
- ignoreSymlinks: true,
- ignoreSubjectConsistency: true,
- verbose: false,
- gitTreeMode: false,
- remoteFiles: false,
- gitRef: 'HEAD',
- config: { ignore: [44], warn: [], error: [], ignoredFiles: [] },
-}
-
-async function generateFileObjects(stream) {
- const ig = defaultIgnore()
- const inputFiles = {}
- let bidsIgnore = true
- let index = 0
- for await (const line of stream) {
- // Part 1, parse bidsignore until 0001 (git delimiter packet)
- if (line === '0001') {
- bidsIgnore = false
- } else {
- if (bidsIgnore) {
- ig.add(line)
- } else {
- // Done with bidsignore, read filename data
- const rootPath = `/${line}`
- /**
- * Simulated file object based on input
- * File size is 1 to prevent 0 size errors but makes some checks inaccurate
- */
- const file = {
- name: path.basename(line),
- path: rootPath,
- relativePath: rootPath,
- size: 1,
- }
- if (ig.ignores(line)) {
- file.ignore = true
- }
- inputFiles[index] = file
- index++
- }
- }
- }
- return inputFiles
-}
-
-/**
- * Validate input from stdin as bidsignore + filenames
- *
- * Protocol uses `0001` line to separate the two streams
- * .bidsignore lines are read first
- * One filename per line is read in and bidsignore rules applied
- *
- * @param {AsyncIterable} stream Readline stream
- */
-export async function validateFilenames(stream) {
- const inputFiles = await generateFileObjects(stream)
- const couldBeBIDS = quickTest(inputFiles)
- if (couldBeBIDS) {
- const files = groupFileTypes(inputFiles, defaultOptions)
- if (files.invalid.length > 0) {
- const invalidFiles = []
- for (const f of files.invalid) {
- if (!f.ignore) {
- invalidFiles.push(f)
- }
- }
- if (invalidFiles.length > 0) {
- // eslint-disable-next-line no-console
- console.log(
- 'Validation failed, some files are not valid BIDS filenames:',
- )
- for (const ef of invalidFiles) {
- // eslint-disable-next-line no-console
- console.log(` ${ef.path}`)
- }
- return false
- }
- }
- return true
- } else {
- // eslint-disable-next-line no-console
- console.log(
- 'This dataset failed a quick validation, please verify it is a BIDS dataset at the root of the git repository',
- )
- return false
- }
-}
-
-export async function filenamesOnly() {
- const rl = readline.createInterface({
- input: process.stdin,
- })
- if (await validateFilenames(rl)) {
- return 0
- } else {
- return 1
- }
-}
diff --git a/bids-validator/utils/files/FileAPI.js b/bids-validator/utils/files/FileAPI.js
deleted file mode 100644
index 3fc4e88a..00000000
--- a/bids-validator/utils/files/FileAPI.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * Simulates some of the browser File API interface.
- * https://developer.mozilla.org/en-US/docs/Web/API/File
- *
- * @param {string[]} parts - file contents as bytes
- * @param {string} filename - filename without path info
- * @param {Object} properties - unused Blob properties
- */
-function NodeFile(parts, filename, properties) {
- this.parts = parts
- this.name = filename
- this.properties = properties
- this.size = parts.reduce(function (a, val) {
- return a + val.length
- }, 0)
- // Unknown defacto mime-type
- this.type = 'application/octet-stream'
- this.lastModified = 0
-}
-
-/**
- * Return a either a mock or real FileAPI if one is available
- */
-function FileAPI() {
- return typeof File === 'undefined' ? NodeFile : File
-}
-
-export default FileAPI
diff --git a/bids-validator/utils/files/__tests__/generateMergedSidecarDict.spec.js b/bids-validator/utils/files/__tests__/generateMergedSidecarDict.spec.js
deleted file mode 100644
index 2c7f13ad..00000000
--- a/bids-validator/utils/files/__tests__/generateMergedSidecarDict.spec.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*global globalThis*/
-import generateMergedSidecarDict from '../generateMergedSidecarDict.js'
-
-describe('generateMergedSidecarDict.js', () => {
- describe('Object pollution test', () => {
- beforeAll(() => {
- // Simulate code that injects globalThis into every object
- Object.defineProperty(Object.prototype, 'global', {
- get: function () {
- return globalThis
- },
- configurable: true,
- })
- })
-
- afterAll(() => {
- // Clean up the pollution
- delete Object.prototype.global
- })
-
- it('trivial check', () => {
- expect(generateMergedSidecarDict([], {})).toStrictEqual({})
- })
-
- it('merges objects with global property', () => {
- const potentialSidecars = ['/sidecar1.json', '/sidecar2.json']
- const jsonContents = {
- '/sidecar1.json': {
- RegularMetadata1: 'value1',
- global: {
- globalMetadata: 'value1',
- },
- },
- '/sidecar2.json': {
- RegularMetadata2: 'value2',
- },
- }
- expect(
- generateMergedSidecarDict(potentialSidecars, jsonContents),
- ).toStrictEqual({
- RegularMetadata1: 'value1',
- RegularMetadata2: 'value2',
- global: {
- globalMetadata: 'value1',
- },
- })
- })
- })
-})
diff --git a/bids-validator/utils/files/__tests__/readDir-examples.spec.js b/bids-validator/utils/files/__tests__/readDir-examples.spec.js
deleted file mode 100644
index fc929b03..00000000
--- a/bids-validator/utils/files/__tests__/readDir-examples.spec.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import readDir from '../readDir.js'
-
-describe('readDir.js - examples integration', () => {
- describe('readDir()', () => {
- it('returns expected files', async () => {
- await readDir('bids-validator/tests/data/bids-examples/ds002/').then(
- (files) => {
- const filenames = Object.values(files).map((f) => f.name)
- filenames.sort()
- expect(filenames).toHaveLength(246)
- expect(filenames[0]).toBe('CHANGES')
- expect(filenames[25]).toBe(
- 'sub-02_task-mixedeventrelatedprobe_run-01_bold.nii.gz',
- )
- expect(filenames[200]).toBe(
- 'sub-14_task-probabilisticclassification_run-02_events.tsv',
- )
- },
- )
- })
- it('correctly follows symlinks for subjects with followSymbolicLink: true', async () => {
- await readDir('bids-validator/tests/data/symlinked_subject', {
- ignoreSymlinks: false,
- }).then((files) => {
- expect(Object.keys(files)).toHaveLength(12)
- const filenames = Object.values(files).map((f) => f.name)
- filenames.sort()
- expect(filenames).toEqual([
- 'CHANGES',
- 'README',
- 'dataset_description.json',
- 'participants.tsv',
- 'sub-0-1_task-rhymejudgment_bold.nii.gz',
- 'sub-01_T1w.nii',
- 'sub-01_T1w.nii.gz',
- 'sub-01_task-rhyme-judgment_bold.nii.gz',
- 'sub-01_task-rhyme-judgment_events.tsv',
- 'sub-01_task-rhyme_judgment_bold.nii.gz',
- 'sub-01_task-rhyme_judgment_events.tsv',
- 'task-rhymejudgment_bold.json',
- ])
- })
- })
- it('correctly does not follow symlinks for subjects with followSymbolicLink: false', async () => {
- await readDir('bids-validator/tests/data/symlinked_subject', {
- ignoreSymlinks: true,
- }).then((files) => {
- expect(Object.keys(files)).toHaveLength(6)
- const filenames = Object.values(files).map((f) => f.name)
- filenames.sort()
- expect(filenames).toEqual([
- 'CHANGES',
- 'README',
- 'dataset_description.json',
- 'participants.tsv',
- 'sub-01',
- 'task-rhymejudgment_bold.json',
- ])
- })
- })
- it('returns file objects with the expected shape', async () => {
- await readDir('bids-validator/tests/data/symlinked_subject', {
- ignoreSymlinks: true,
- }).then((files) => {
- expect(Object.keys(files)).toHaveLength(6)
- Object.values(files).forEach((f) => {
- expect(Object.getOwnPropertyNames(f)).toEqual([
- 'name',
- 'path',
- 'relativePath',
- ])
- })
- })
- })
- })
-})
diff --git a/bids-validator/utils/files/__tests__/readDir.spec.js b/bids-validator/utils/files/__tests__/readDir.spec.js
deleted file mode 100644
index c383f7e4..00000000
--- a/bids-validator/utils/files/__tests__/readDir.spec.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import readDir from '../readDir.js'
-
-describe('readDir.js', () => {
- describe('fileArrayToObject', () => {
- it('transforms an array to an object', () => {
- expect(
- readDir.fileArrayToObject([
- { name: 'one' },
- { name: 'two' },
- { name: 'three' },
- ]),
- ).toEqual({
- 0: {
- name: 'one',
- },
- 1: {
- name: 'two',
- },
- 2: {
- name: 'three',
- },
- })
- })
- })
- describe('harmonizeRelativePath', () => {
- it('harmonizes a basic POSIX path', () => {
- expect(readDir.harmonizeRelativePath('test/a/path')).toEqual('/a/path')
- })
- it('does not mangle absolute Windows paths', () => {
- expect(readDir.harmonizeRelativePath('C:\\dataset\\directory')).toEqual(
- '/dataset/directory',
- )
- })
- it('does not mangle relative Windows paths', () => {
- expect(readDir.harmonizeRelativePath('dataset\\directory')).toEqual(
- '/directory',
- )
- })
- it('does not mangle relative Windows paths with parent directories', () => {
- expect(
- readDir.harmonizeRelativePath('..\\..\\dataset\\directory'),
- ).toEqual('/../dataset/directory')
- })
- })
-})
diff --git a/bids-validator/utils/files/__tests__/remoteFiles.spec.js b/bids-validator/utils/files/__tests__/remoteFiles.spec.js
deleted file mode 100644
index a309f6a7..00000000
--- a/bids-validator/utils/files/__tests__/remoteFiles.spec.js
+++ /dev/null
@@ -1,242 +0,0 @@
-import { assert } from 'chai'
-import remoteFiles from '../remoteFiles'
-import fs from 'fs'
-import zlib from 'zlib'
-const config = {
- s3Params: {
- Bucket: 'none',
- },
- file: {
- name: 'something',
- },
-}
-
-describe('remoteFiles', () => {
- beforeAll(() => {
- // fetch mock
- global.fetch = jest
- .fn()
- .mockImplementation(() =>
- Promise.resolve({ ok: true, buffer: () => 'buffer' }),
- )
- })
-
- beforeEach(() => {
- delete process.env.AWS_ACCESS_KEY_ID
- })
-
- describe('accessRemoteFile', () => {
- it('should return a promise', () => {
- const promise = remoteFiles.accessRemoteFile(config)
- expect(promise).toBeInstanceOf(Promise)
- })
- it('should return the response of constructAwsRequest if successful', () => {
- remoteFiles
- .accessRemoteFile(config)
- .then((res) => expect(res).toBe('buffer'))
- })
- it('should return the issue of extractGzipBuffer if unzip is unsuccessful', () => {
- config.file.name = 'something.gz'
- return remoteFiles.accessRemoteFile(config).catch((issue) => {
- expect(issue).toHaveProperty('code')
- config.file.name = 'something'
- })
- })
- })
-
- describe('constructAwsRequest', () => {
- it('should return a fetch resolution promise when aws creds are not present', async () => {
- const response = remoteFiles.constructAwsRequest({
- s3Params: { Bucket: 'matters not' },
- })
- expect(response).toBeInstanceOf(Promise)
- })
- it('should return the buffer() property of the fetch response', async () => {
- remoteFiles
- .constructAwsRequest({
- s3Params: { Bucket: 'matters not' },
- })
- .then((data) => {
- assert.equal(data, 'buffer')
- })
- })
- })
-
- describe('extractGzipBuffer', () => {
- it('should extract proper gzip files', async () => {
- zlib.gzip('Some String', async (err, res) => {
- const gzip = await remoteFiles.extractGzipBuffer(res, {})
- expect(gzip).toBeInstanceOf(Uint8Array)
- })
- })
- it('should reject with an issue when gzip reading fails', async () => {
- try {
- const zip = 'bad data'
- await remoteFiles.extractGzipBuffer(zip, {})
- } catch (e) {
- expect(e).toHaveProperty('code')
- expect(e.code).toEqual(28)
- }
- })
- })
-
- describe('callGitAnnex', () => {
- it('should return the string result of execSync', () => {
- const resp = remoteFiles.callGitAnnex('echo test')
- expect(resp.trim()).toBe('test')
- })
- })
-
- describe('getRemotesInfo', () => {
- it('should return an empty array if callGitAnnex does not return contents of a metadata file', () => {
- remoteFiles.callGitAnnex = jest.fn()
- remoteFiles.callGitAnnex.mockReturnValue('bad_response')
- const remotesInfo = remoteFiles.getRemotesInfo('some_directory', {
- relativePath: 'some_file',
- })
- assert.lengthOf(remotesInfo, 0)
- })
- it('should return an empty array if file is not properly formatted', () => {
- const remotesInfo = remoteFiles.getRemotesInfo('some_directory', {})
- assert.lengthOf(remotesInfo, 0)
- })
- it('should return an empty array if directory is not properly formatted', () => {
- const remotesInfo = remoteFiles.getRemotesInfo('bad directory', {
- relativePath: 'some_path',
- })
- assert.lengthOf(remotesInfo, 0)
- })
- it('should return an array of remote objects if getRemoteData returns properly formatted remote metadata file', () => {
- remoteFiles.getRemoteMetadata = jest.fn()
- remoteFiles.getRemoteMetadata.mockReturnValue(
- 'timestamp remoteuuid:commitinfo xversionId#fileName',
- )
- const remotesInfo = remoteFiles.getRemotesInfo('some_directory', {
- relativePath: 'some_file',
- })
- remoteFiles.getRemoteMetadata.mockRestore()
- assert.lengthOf(remotesInfo, 1)
- })
- })
-
- describe('getSingleRemoteInfo', () => {
- it('returns an object with null Bucket property if the response does not contain remote info', () => {
- remoteFiles.callGitAnnex = jest.fn()
- remoteFiles.callGitAnnex.mockReturnValue('bad_response')
- const singleRemoteInfo = remoteFiles.getSingleRemoteInfo(
- 'some_dir',
- 'some_uuid',
- )
- expect(singleRemoteInfo).toHaveProperty('Bucket')
- expect(singleRemoteInfo.Bucket).toBe(null)
- })
- it('returns an object with a Bucket property if callGitAnnex returns an object with the Bucket field', () => {
- remoteFiles.callGitAnnex = jest.fn()
- remoteFiles.callGitAnnex.mockReturnValue(
- 'good_response\nbucket: such_bucket\nawesome_line',
- )
- const singleRemoteInfo = remoteFiles.getSingleRemoteInfo(
- 'some_dir',
- 'some_uuid',
- )
- expect(singleRemoteInfo).toHaveProperty('Bucket')
- expect(singleRemoteInfo.Bucket).toEqual('such_bucket')
- })
- })
-
- describe('getRemoteBucket', () => {
- it('returns an object with a Bucket property if the response contains that field', () => {
- const resp = 'something:something\nbucket: omg\nawesome:awesome'
- const params = remoteFiles.getRemoteBucket(resp)
- expect(params).toHaveProperty('Bucket')
- expect(params.Bucket).toEqual('omg')
- })
- it('returns an object with null Bucket property if the response does not contain the bucket field', () => {
- const resp = 'wow_this_is_a_bad_response'
- const params = remoteFiles.getRemoteBucket(resp)
- expect(params).toHaveProperty('Bucket')
- expect(params.Bucket).toBe(null)
- })
- })
-
- describe('processRemoteMetadata', () => {
- it('properly parses a git-annex remote metadata file', () => {
- const resp = 'timestamp remoteuuid:commitinfo xversionId#fileName'
- const remotesInfo = remoteFiles.processRemoteMetadata(resp)
- assert.lengthOf(remotesInfo, 1)
- const remoteObj = remotesInfo[0]
- expect(remoteObj).toHaveProperty('timestamp')
- expect(remoteObj.timestamp).toEqual('timestamp')
- expect(remoteObj).toHaveProperty('remoteUuid')
- expect(remoteObj.remoteUuid).toEqual('remoteuuid')
- expect(remoteObj).toHaveProperty('fileName')
- expect(remoteObj.fileName).toEqual('fileName')
- expect(remoteObj).toHaveProperty('versionId')
- expect(remoteObj.versionId).toEqual('versionId')
- })
- it('returns an empty array if there is an improperly formatted metadata file', () => {
- let remotesInfo
- const no_spaces = 'poorly_formatted_response' // contains no spaces
- remotesInfo = remoteFiles.processRemoteMetadata(no_spaces)
- assert.lengthOf(remotesInfo, 0)
- const not_enough_items = 'one two' // does not contain enough "columns"
- remotesInfo = remoteFiles.processRemoteMetadata(not_enough_items)
- assert.lengthOf(remotesInfo, 0)
-
- // does not have the properly one two:three xfour#five format
- const not_properly_formatted = 'one two:three four'
- remotesInfo = remoteFiles.processRemoteMetadata(not_properly_formatted)
- assert.lengthOf(remotesInfo, 0)
- const not_the_right_separators = 'one two:three xfour:five'
- remotesInfo = remoteFiles.processRemoteMetadata(not_the_right_separators)
- assert.lengthOf(remotesInfo, 0)
- })
- it('returns objects corresponding to any properly formatted line', () => {
- const one_line_right =
- 'properly formatted:response xwith#a\nline_that_is_not_properly_formatted'
- const remotesInfo = remoteFiles.processRemoteMetadata(one_line_right)
- assert.lengthOf(remotesInfo, 1)
- })
- })
-
- describe('isGitAnnex', () => {
- it('returns false when fs.existsSync returns false', () => {
- fs.existsSync = jest.fn()
- fs.existsSync.mockReturnValue(false)
- const isGitAnnex = remoteFiles.isGitAnnex('some-path')
- expect(fs.existsSync).toHaveBeenCalled()
- expect(isGitAnnex).toBe(false)
- })
- it('returns true when fs.existsSync returns true', () => {
- fs.existsSync = jest.fn()
- fs.existsSync.mockReturnValue(true)
- const isGitAnnex = remoteFiles.isGitAnnex('some-path')
- expect(fs.existsSync).toHaveBeenCalled()
- expect(isGitAnnex).toBe(true)
- })
- })
-
- describe('tryRemote', () => {
- it('should resolve with the results of accessRemoteFile', (done) => {
- remoteFiles.getSingleRemoteInfo = jest.fn()
- remoteFiles.getSingleRemoteInfo.mockReturnValue({ Bucket: 'wow' })
- remoteFiles.accessRemoteFile = jest.fn()
- remoteFiles.accessRemoteFile.mockReturnValue(Promise.resolve('data'))
- remoteFiles
- .tryRemote(
- {},
- { dir: 'directory', file: { relativePath: 'wow', name: 'name' } },
- )
- .then((data) => {
- expect(data)
- done()
- })
- .catch(done)
- })
- })
- // reset the fs object back to its normal state
- // so we dont break jest
- afterAll(() => {
- fs.existsSync.mockRestore()
- })
-})
diff --git a/bids-validator/utils/files/collectDirectorySize.js b/bids-validator/utils/files/collectDirectorySize.js
deleted file mode 100644
index ecea9af5..00000000
--- a/bids-validator/utils/files/collectDirectorySize.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import isNode from '../isNode'
-import getFileStats from './getFileStats'
-
-const collectDirectorySize = (fileList) => {
- let size = 0
- const keys = Object.keys(fileList)
- keys.forEach((key) => {
- const file = fileList[key]
- // collect file stats
- if (file.size) {
- // from File api in browser
- size += file.size
- // or from git-annex metadata when in gitTreeMode
- if (isNode) file.stats = { size: file.size }
- } else {
- file.stats = getFileStats(file)
- size += file.stats.size
- }
- })
- return size
-}
-
-export default collectDirectorySize
diff --git a/bids-validator/utils/files/generateMergedSidecarDict.js b/bids-validator/utils/files/generateMergedSidecarDict.js
deleted file mode 100644
index a642eb21..00000000
--- a/bids-validator/utils/files/generateMergedSidecarDict.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Generate Merged Sidecar Dictionary
- *
- * Takes an array of potential sidecards and a
- * master object dictionary of all JSON file
- * content and returns a merged dictionary
- * containing all values from the potential
- * sidecars.
- */
-function generateMergedSidecarDict(potentialSidecars, jsonContents) {
- // Use a map to avoid potential conflicts with keys in Object.prototype
- const mergedDictionary = new Map()
- let valid = true
- potentialSidecars.map((sidecarName) => {
- const jsonObject = jsonContents[sidecarName]
- if (jsonObject) {
- for (const key of Object.keys(jsonObject)) {
- if (jsonObject.hasOwnProperty(key)) {
- mergedDictionary.set(key, jsonObject[key])
- }
- }
- } else if (jsonObject === null) {
- valid = false
- }
- })
- const mergedDictionaryObj = Object.fromEntries(mergedDictionary)
- if (!valid) {
- mergedDictionaryObj.invalid = true
- }
- return mergedDictionaryObj
-}
-
-export default generateMergedSidecarDict
diff --git a/bids-validator/utils/files/getBFileContent.js b/bids-validator/utils/files/getBFileContent.js
deleted file mode 100644
index 6e1d6001..00000000
--- a/bids-validator/utils/files/getBFileContent.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * Get B-File Contents
- *
- * Takes an array of potential bval or bvec files
- * and a master b-file contents dictionary and returns
- * the contents of the desired file.
- */
-function getBFileContent(potentialBFiles, bContentsDict) {
- for (var i = 0; i < potentialBFiles.length; i++) {
- var potentialBFile = potentialBFiles[i]
- if (bContentsDict.hasOwnProperty(potentialBFile)) {
- return bContentsDict[potentialBFile]
- }
- }
-}
-
-export default getBFileContent
diff --git a/bids-validator/utils/files/getFileStats.js b/bids-validator/utils/files/getFileStats.js
deleted file mode 100644
index 6e78ac14..00000000
--- a/bids-validator/utils/files/getFileStats.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import fs from 'fs'
-
-function getFileStats(file) {
- let stats
- if (!file.stats) {
- try {
- stats = fs.statSync(file.path)
- } catch (err) {
- stats = { size: 0 }
- }
- }
- return stats
-}
-
-export default getFileStats
diff --git a/bids-validator/utils/files/illegalCharacterTest.js b/bids-validator/utils/files/illegalCharacterTest.js
deleted file mode 100644
index fe8b4dc5..00000000
--- a/bids-validator/utils/files/illegalCharacterTest.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import Issue from '../../utils/issues'
-
-const re = {
- task_re:
- /sub-(.*?)_task-[a-zA-Z0-9]*[_-][a-zA-Z0-9]*(?:_acq-[a-zA-Z0-9-]*)?(?:_run-\d+)?_/g,
- acq_re:
- /sub-(.*?)(_task-\w+.\w+)?(_acq-[a-zA-Z0-9]*[_-][a-zA-Z0-9]*)(?:_run-\d+)?_/g,
- sub_re: /sub-[a-zA-Z0-9]*[_-][a-zA-Z0-9]*_/g, // illegal character in sub
- ses_re: /ses-[a-zA-Z0-9]*[_-][a-zA-Z0-9]*?_(.*?)/g, //illegal character in ses
-}
-
-const illegalchar_regex_list = [
- [re.task_re, 58, 'task name contains illegal character:'],
- [re.acq_re, 59, 'acq name contains illegal character:'],
- [re.sub_re, 62, 'sub name contains illegal character:'],
- [re.ses_re, 63, 'ses name contains illegal character:'],
-]
-
-const illegalCharacterTest = (fileList) => {
- const issues = []
- const fileKeys = Object.keys(fileList)
- fileKeys.forEach((key) => {
- const file = fileList[key]
- const completename = file.relativePath
- if (
- !(
- completename.startsWith('/derivatives') ||
- completename.startsWith('/code') ||
- completename.startsWith('/sourcedata')
- )
- ) {
- illegalchar_regex_list.map((regex) => {
- const err_regex = regex[0]
- const err_code = regex[1]
- const err_evidence = regex[2]
-
- if (err_regex.exec(completename)) {
- issues.push(
- new Issue({
- file: file,
- code: err_code,
- evidence: err_evidence + completename,
- }),
- )
- }
- })
- }
- })
- return issues
-}
-
-export default illegalCharacterTest
diff --git a/bids-validator/utils/files/index.js b/bids-validator/utils/files/index.js
deleted file mode 100644
index 237b940a..00000000
--- a/bids-validator/utils/files/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// dependencies -------------------------------------------------------------------
-import FileAPI from './FileAPI'
-
-import newFile from './newFile'
-import readFile from './readFile'
-import readOMEFile from './readOMEFile'
-import readBuffer from './readBuffer'
-import readNiftiHeader from './readNiftiHeader'
-import readDir from './readDir'
-import potentialLocations from './potentialLocations'
-import generateMergedSidecarDict from './generateMergedSidecarDict'
-import getBFileContent from './getBFileContent'
-import collectDirectorySize from './collectDirectorySize'
-import illegalCharacterTest from './illegalCharacterTest'
-import sessions from './sessions'
-import remoteFiles from './remoteFiles'
-import getFileStats from './getFileStats'
-
-// public API ---------------------------------------------------------------------
-
-export default {
- FileAPI,
- newFile,
- readFile,
- readDir,
- readBuffer,
- readOMEFile,
- readNiftiHeader,
- generateMergedSidecarDict,
- potentialLocations,
- getBFileContent,
- collectDirectorySize,
- illegalCharacterTest,
- sessions,
- remoteFiles,
- getFileStats,
-}
diff --git a/bids-validator/utils/files/newFile.js b/bids-validator/utils/files/newFile.js
deleted file mode 100644
index 9f9c9e5f..00000000
--- a/bids-validator/utils/files/newFile.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import FileAPI from './FileAPI'
-
-/**
- * New File
- *
- * Creates an empty File object
- *
- * @param {string} filename - the filename without path info
- */
-function newFile(filename) {
- var File = FileAPI()
- return new File([''], filename)
-}
-
-export default newFile
diff --git a/bids-validator/utils/files/potentialLocations.js b/bids-validator/utils/files/potentialLocations.js
deleted file mode 100644
index d1857934..00000000
--- a/bids-validator/utils/files/potentialLocations.js
+++ /dev/null
@@ -1,89 +0,0 @@
-const potentialLocations = (path) => {
- //add a '/' at the beginning of the path if it doesn't exist yet
- path = path.startsWith('/') ? path : '/' + path
- const splitPath = path.split('/')
- const filename = splitPath[splitPath.length - 1] // filename path component
- const pathComponents = splitPath.splice(0, splitPath.length - 1) // all path components before
-
- // split the filename into separate components
- const filenameComponents = filename.split('_')
-
- // create components object consisting of path + filename component lists
- const components = {
- path: pathComponents,
- filename: filenameComponents,
- }
-
- // generate relevant paths and put into closest -> root order
- const potentials = potentialPaths(components)
- if (potentials.indexOf(path) < 0) {
- return [path].concat(potentials).reverse()
- } else {
- return potentials
- }
-}
-
-const potentialPaths = (components) => {
- let filenameComponents = components.filename // get the underscore separated file components
- let pathComponents = components.path // get the path components before file
- const fileIndex = filenameComponents.length - 1 // index of the filename in file components
- const file = filenameComponents[fileIndex] // filename (events.tsv, bold.json, etc)
- const informationalFileComponents = filenameComponents.slice(0, fileIndex) // all non-filename file path components (ses-*, sub-*, task-*, etc)
-
- // filter filename components that are allowed only in a lower directory
- // eg if we are root level we will not want sub-* included in the possible
- // paths for this level. Also we do not want to include run in that list.
- const nonPathSpecificFileComponents = informationalFileComponents.filter(
- (component) => pathComponents.indexOf(component) < 0,
- )
-
- // loop through all the directory levels - root, sub, (ses), (datatype)
- let paths = []
- pathComponents.map((component, i) => {
- const activeDirectoryComponents = pathComponents.slice(0, i + 1) // the directory components in the current working level
- const directoryString = activeDirectoryComponents.join('/') // path of active directory
-
- const prefixComponents = informationalFileComponents.filter(
- (component) => activeDirectoryComponents.indexOf(component) > -1,
- )
-
- const prefix = prefixComponents.join('_')
- for (
- let j = 0;
- j < Math.pow(2, nonPathSpecificFileComponents.length);
- j++
- ) {
- const filename = nonPathSpecificFileComponents
- .filter((value, index) => j & (1 << index))
- .concat([file])
- .join('_')
-
- // join directory + filepath strings together to get entire path
- paths.push(constructFileName(directoryString, filename, prefix))
- }
- })
-
- // There is an exception to the inheritance principle when it comes
- // to bold data .json sidecars - the potential locations *must* include
- // the task- keyword.
- if (filenameComponents.indexOf('bold.json') > -1) {
- paths = removePathsWithoutTasknames(paths)
- }
-
- return paths
-}
-
-const constructFileName = (directoryString, filename, prefix) => {
- // join the prefix + filename if prefix exists
- const filePathString = prefix ? [prefix, filename].join('_') : filename
- const newPath = directoryString + '/' + filePathString
- return newPath
-}
-
-const removePathsWithoutTasknames = (paths) => {
- return paths.filter((path) => {
- return path.indexOf('task') > -1
- })
-}
-
-export default potentialLocations
diff --git a/bids-validator/utils/files/readBuffer.js b/bids-validator/utils/files/readBuffer.js
deleted file mode 100644
index f9caa303..00000000
--- a/bids-validator/utils/files/readBuffer.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import isNode from '../isNode'
-import fs from 'fs'
-
-const readBuffer = (file) => {
- return new Promise((resolve, reject) => {
- if (isNode) {
- resolve(fs.readFileSync(file.path))
- } else {
- try {
- const reader = new FileReader()
- reader.onload = (event) => {
- resolve(event.target.result)
- }
-
- reader.readAsArrayBuffer(file)
- } catch (e) {
- reject(e)
- }
- }
- })
-}
-
-export default readBuffer
diff --git a/bids-validator/utils/files/readDir.js b/bids-validator/utils/files/readDir.js
deleted file mode 100644
index 90211420..00000000
--- a/bids-validator/utils/files/readDir.js
+++ /dev/null
@@ -1,388 +0,0 @@
-import ignore from 'ignore'
-import readFile from './readFile'
-import path from 'path'
-import fs from 'fs'
-import * as child_proccess from 'child_process'
-import isNode from '../isNode'
-
-/**
- * Read Directory
- *
- * In node it takes a path to a directory and returns
- * an array containing all of the files to a callback.
- * Used to input and organize files in node, in a
- * similar structure to how chrome reads a directory.
- * In the browser it simply passes the file dir
- * object to the callback.
- * @param {String} dir Path to read
- * @param {Object} options
- * @param {boolean} options.ignoreSymlinks enable to prevent recursively following directory symlinks
- * @returns {Promise}
- */
-async function readDir(dir, options = {}) {
- const ig = await getBIDSIgnore(dir)
- const fileArray = isNode
- ? await preprocessNode(path.resolve(dir), ig, options)
- : preprocessBrowser(dir, ig)
- const files = fileArrayToObject(fileArray)
- return files
-}
-
-/**
- * Transform array of file-like objects to one object with each file as a property
- * @param {Array[Object]} fileArray
- * @returns {Object}
- */
-function fileArrayToObject(fileArray) {
- const filesObj = {}
- // converting array to object
- for (let j = 0; j < fileArray.length; j++) {
- filesObj[j] = fileArray[j]
- }
- return filesObj
-}
-
-/**
- * Preprocess file objects from a browser
- *
- * 1. Filters out ignored files and folder.
- * 2. Adds 'relativePath' field of each file object.
- */
-function preprocessBrowser(filesObj, ig) {
- const filesList = []
- for (let i = 0; i < filesObj.length; i++) {
- const fileObj = filesObj[i]
- fileObj.relativePath = harmonizeRelativePath(fileObj.webkitRelativePath)
- if (ig.ignores(path.relative('/', fileObj.relativePath))) {
- fileObj.ignore = true
- }
- filesList.push(fileObj)
- }
- return filesList
-}
-
-/**
- * Harmonize Relative Path
- *
- * Takes a file and returns the browser style relative path
- * base on the environment.
- *
- * Since this may be called in the browser, do not call Node.js modules
- *
- * @param {String} path Relative path to normalize
- * @returns {String}
- */
-function harmonizeRelativePath(path) {
- // This hack uniforms relative paths for command line calls to 'BIDS-examples/ds001/' and 'BIDS-examples/ds001'
- if (path.indexOf('\\') !== -1) {
- // This is likely a Windows path - Node.js
- const pathParts = path.split('\\')
- return '/' + pathParts.slice(1).join('/')
- } else if (path[0] !== '/') {
- // Bad POSIX path - Node.js
- const pathParts = path.split('/')
- return '/' + pathParts.slice(1).join('/')
- } else {
- // Already correct POSIX path - Browsers (all platforms)
- return path
- }
-}
-
-/**
- * Preprocess directory path from a Node CLI
- *
- * 1. Recursively travers the directory tree
- * 2. Filters out ignored files and folder.
- * 3. Harmonizes the 'relativePath' field
- */
-async function preprocessNode(dir, ig, options) {
- const str = dir.substr(dir.lastIndexOf(path.sep) + 1) + '$'
- const rootpath = dir.replace(new RegExp(str), '')
- if (options.gitTreeMode) {
- // if in gitTreeMode, attempt to get files from git-annex metadata
- // before using fs
- const files = await getFilesFromGitTree(dir, ig, options)
- if (files !== null) return files
- }
- return await getFilesFromFs(dir, rootpath, ig, options)
-}
-
-/**
- * runs command `git ls-tree -l -r ` in given directory
- * @param {string} cwd path to dataset directory
- * @param {string} gitRef git ref (commit hash, ref, 'HEAD', etc)
- * @returns {string[]}
- */
-const getGitLsTree = (cwd, gitRef) =>
- new Promise((resolve) => {
- let output = ''
- const gitProcess = child_proccess.spawn(
- 'git',
- ['ls-tree', '-l', '-r', gitRef],
- {
- cwd,
- encoding: 'utf-8',
- },
- )
- gitProcess.stdout.on('data', (data) => {
- output += data.toString()
- })
- gitProcess.stderr.on('data', () => {
- resolve(null)
- })
- gitProcess.on('close', () => {
- resolve(output.trim().split('\n'))
- })
- })
-
-const readLsTreeLines = (gitTreeLines) =>
- gitTreeLines
- .map((line) => {
- const [metadata, path] = line.split('\t')
- const [mode, objType, objHash, size] = metadata.split(/\s+/)
- return { path, mode, objType, objHash, size }
- })
- .filter(
- ({ path, mode }) =>
- // skip git / datalad files and submodules
- !/^\.git/.test(path) &&
- !/^\.datalad/.test(path) &&
- '.gitattributes' !== path &&
- mode !== '160000',
- )
- .reduce(
- (
- // accumulator
- { files, symlinkFilenames, symlinkObjects },
- // git-tree line
- { path, mode, objHash, size },
- ) => {
- // read ls-tree line
- if (mode === '120000') {
- symlinkFilenames.push(path)
- symlinkObjects.push(objHash)
- } else {
- files.push({
- path,
- size: parseInt(size),
- })
- }
- return { files, symlinkFilenames, symlinkObjects }
- },
- { files: [], symlinkFilenames: [], symlinkObjects: [] },
- )
-
-/**
- * runs `git cat-file --batch --buffer` in given directory
- * @param {string} cwd
- * @param {string} input
- * @returns {string[]}
- */
-const getGitCatFile = (cwd, input) =>
- new Promise((resolve) => {
- let output = ''
- const gitProcess = child_proccess.spawn(
- 'git',
- ['cat-file', '--batch', '--buffer'],
- {
- cwd,
- encoding: 'utf-8',
- },
- )
-
- // pass in symlink objects
- gitProcess.stdin.write(input)
- gitProcess.stdin.end()
-
- gitProcess.stdout.on('data', (data) => {
- output += data.toString()
- })
- gitProcess.stderr.on('data', () => {
- resolve(null)
- })
- gitProcess.on('close', () => {
- resolve(output.trim().split('\n'))
- })
- })
-
-const readCatFileLines = (gitCatFileLines, symlinkFilenames) =>
- gitCatFileLines
- // even lines contain unneeded metadata
- .filter((_, i) => i % 2 === 1)
- .map((line, i) => {
- const path = symlinkFilenames[i]
- const key = line.split('/').pop()
- const size = parseInt(key.match(/-s(\d+)/)[1])
- return {
- path,
- size,
- }
- })
-
-const processFiles = (dir, ig, ...fileLists) =>
- fileLists
- .reduce((allFiles, files) => [...allFiles, ...files], [])
- .map((file) => {
- file.relativePath = path.normalize(`${path.sep}${file.path}`)
- return file
- })
- .filter((file) => {
- const ignore = ig.ignores(file.relativePath.slice(1))
- return !ignore
- })
- .map((file) => {
- file.relativePath = harmonizeRelativePath(file.relativePath)
- file.name = path.basename(file.path)
- file.path = path.join(dir, file.relativePath)
- return file
- })
-
-async function getFilesFromGitTree(dir, ig, options) {
- const gitTreeLines = await getGitLsTree(dir, options.gitRef)
- if (
- gitTreeLines === null ||
- (gitTreeLines.length === 1 && gitTreeLines[0] === '')
- )
- return null
- const { files, symlinkFilenames, symlinkObjects } =
- readLsTreeLines(gitTreeLines)
-
- const gitCatFileLines = await getGitCatFile(dir, symlinkObjects.join('\n'))
- // example gitCatFile output:
- // .git/annex/objects/Mv/99/SHA256E-s54--42c98d14dbe3d066d35897a61154e39ced478cd1f0ec6159ba5f2361c4919878.json/SHA256E-s54--42c98d14dbe3d066d35897a61154e39ced478cd1f0ec6159ba5f2361c4919878.json
- // .git/annex/objects/QV/mW/SHA256E-s99--bbef536348750373727d3b5856398d7377e5d7e23875eed026b83d12cee6f885.json/SHA256E-s99--bbef536348750373727d3b5856398d7377e5d7e23875eed026b83d12cee6f885.json
- const symlinkFiles = readCatFileLines(gitCatFileLines, symlinkFilenames)
-
- return processFiles(dir, ig, files, symlinkFiles)
-}
-
-/**
- * Recursive helper function for 'preprocessNode'
- */
-async function getFilesFromFs(dir, rootPath, ig, options, parent = []) {
- const files = await fs.promises.readdir(dir, { withFileTypes: true })
- const filesAccumulator = parent
- for (const file of files) {
- const fullPath = path.join(dir, file.name)
- const relativePath = harmonizeRelativePath(
- path.relative(rootPath, fullPath),
- )
- const ignore = ig.ignores(path.relative('/', relativePath))
- const fileObj = {
- name: file.name,
- path: fullPath,
- relativePath,
- }
- if (ignore) {
- fileObj.ignore = true
- }
- // Three cases to consider: directories, files, symlinks
- if (file.isDirectory()) {
- await getFilesFromFs(fullPath, rootPath, ig, options, filesAccumulator)
- } else if (file.isSymbolicLink()) {
- // Allow skipping symbolic links which lead to recursion
- // Disabling this is a big performance advantage on high latency
- // storage but it's a good default for versatility
- if (!options.ignoreSymlinks) {
- try {
- const targetPath = await fs.promises.realpath(fullPath)
- const targetStat = await fs.promises.stat(targetPath)
- // Either add or recurse from the target depending
- if (targetStat.isDirectory()) {
- await getFilesFromFs(
- targetPath,
- rootPath,
- ig,
- options,
- filesAccumulator,
- )
- } else {
- filesAccumulator.push(fileObj)
- }
- } catch (err) {
- // Symlink points at an invalid target, skip it
- return
- }
- } else {
- // This branch assumes all symbolic links are not directories
- filesAccumulator.push(fileObj)
- }
- } else {
- filesAccumulator.push(fileObj)
- }
- }
- return filesAccumulator
-}
-
-export function defaultIgnore() {
- return ignore()
- .add('.*')
- .add('!*.icloud')
- .add('/derivatives')
- .add('/sourcedata')
- .add('/code')
-}
-
-async function getBIDSIgnore(dir) {
- const ig = defaultIgnore()
-
- const bidsIgnoreFileObj = getBIDSIgnoreFileObj(dir)
- if (bidsIgnoreFileObj) {
- const content = await readFile(bidsIgnoreFileObj)
- ig.add(content)
- }
- return ig
-}
-
-/**
- * Get File object corresponding to the .bidsignore file
- * @param dir
- * @returns File object or null if not found
- */
-function getBIDSIgnoreFileObj(dir) {
- if (isNode) {
- return getBIDSIgnoreFileObjNode(dir)
- } else {
- return getBIDSIgnoreFileObjBrowser(dir)
- }
-}
-
-function getBIDSIgnoreFileObjNode(dir) {
- const path = dir + '/.bidsignore'
- try {
- fs.accessSync(path)
- return { path: path, stats: { size: null } }
- } catch (err) {
- return null
- }
-}
-
-function getBIDSIgnoreFileObjBrowser(dir) {
- for (var i = 0; i < dir.length; i++) {
- const fileObj = dir[i]
- const relativePath = harmonizeRelativePath(fileObj.webkitRelativePath)
- if (relativePath === '/.bidsignore') {
- return fileObj
- }
- }
-}
-
-export {
- readDir,
- getFilesFromFs,
- fileArrayToObject,
- harmonizeRelativePath,
- readLsTreeLines,
- readCatFileLines,
- processFiles,
-}
-
-export default Object.assign(readDir, {
- readDir,
- getFilesFromFs,
- fileArrayToObject,
- harmonizeRelativePath,
- readLsTreeLines,
- readCatFileLines,
- processFiles,
-})
diff --git a/bids-validator/utils/files/readFile.js b/bids-validator/utils/files/readFile.js
deleted file mode 100644
index aebadff8..00000000
--- a/bids-validator/utils/files/readFile.js
+++ /dev/null
@@ -1,84 +0,0 @@
-import testFile from './testFile'
-import Issue from '../../utils/issues'
-import fs from 'fs'
-import isNode from '../isNode'
-import checkIfUtf8 from 'is-utf8'
-
-const JSONFilePattern = /.json$/
-const isJSONFile = (file) =>
- JSONFilePattern.test(isNode ? file.name : file.relativePath)
-
-// Work around JSDom not providing TextDecoder yet
-if (typeof TextDecoder === 'undefined') {
- const { TextDecoder } = require('util')
- global.TextDecoder = TextDecoder
-}
-
-/**
- * checkEncoding
- * @param {object | File} file - nodeJS fs file or browser File
- * @param {buffer | Uint8Array} data - file content buffer
- * @param {function} cb - returns { isUtf8 }
- */
-const checkEncoding = (file, data, cb) => {
- if (isJSONFile(file)) cb({ isUtf8: checkIfUtf8(data) })
-}
-
-/**
- * readFile
- * @param {object | File} file - nodeJS fs file or browser File
- * @param {boolean} annexed - is the file currently annexed?
- * @param {string} dir - path to directory containing dataset. Only used if
- * annexed is true.
- *
- * A helper method for reading file contents.
- * Takes a file object and a callback and calls
- * the callback with the binary contents of the
- * file as the only argument.
- *
- * In the browser the file should be a file object.
- * In node the file should be a path to a file.
- *
- */
-function readFile(file, annexed, dir) {
- return new Promise((resolve, reject) => {
- if (isNode) {
- testFile(file, annexed, dir, function (issue, stats, remoteBuffer) {
- if (issue) {
- return reject(issue)
- }
- if (!remoteBuffer) {
- fs.readFile(file.path, function (err, data) {
- if (err) {
- return reject(err)
- }
- checkEncoding(file, data, ({ isUtf8 }) => {
- if (!isUtf8) reject(new Issue({ code: 123, file }))
- })
- return resolve(data.toString('utf8'))
- })
- }
- if (remoteBuffer) {
- return resolve(remoteBuffer.toString('utf8'))
- }
- })
- } else {
- const reader = new FileReader()
- reader.onloadend = (e) => {
- if (e.target.readyState == FileReader.DONE) {
- if (!e.target.result) {
- return reject(new Issue({ code: 44, file: file }))
- }
- const buffer = new Uint8Array(e.target.result)
- checkEncoding(file, buffer, ({ isUtf8 }) => {
- if (!isUtf8) reject(new Issue({ code: 123, file }))
- })
- return resolve(new TextDecoder().decode(buffer))
- }
- }
- reader.readAsArrayBuffer(file)
- }
- })
-}
-
-export default readFile
diff --git a/bids-validator/utils/files/readNiftiHeader.js b/bids-validator/utils/files/readNiftiHeader.js
deleted file mode 100644
index 984efd24..00000000
--- a/bids-validator/utils/files/readNiftiHeader.js
+++ /dev/null
@@ -1,145 +0,0 @@
-import nifti from 'nifti-js'
-import pako from 'pako'
-import fs from 'fs'
-import testFile from './testFile'
-import Issue from '../../utils/issues'
-import isNode from '../isNode'
-
-/**
- * Read Nifti Header
- *
- * Takes a files and returns a json parsed nifti
- * header without reading any extra bytes.
- */
-function readNiftiHeader(file, annexed, dir, callback) {
- if (isNode) {
- nodeNiftiTest(file, annexed, dir, callback)
- } else {
- browserNiftiTest(file, callback)
- }
-}
-
-function nodeNiftiTest(file, annexed, dir, callback) {
- testFile(file, annexed, dir, function (issue, stats, remoteBuffer) {
- file.stats = stats
- if (issue) {
- callback({ error: issue })
- return
- }
- if (stats) {
- if (stats.size < 348) {
- callback({ error: new Issue({ code: 36, file: file }) })
- return
- }
- }
- if (remoteBuffer) {
- callback(parseNIfTIHeader(remoteBuffer, file))
- } else {
- return extractNiftiFile(file, callback)
- }
- })
-}
-
-function extractNiftiFile(file, callback) {
- const bytesRead = 1024
- const buffer = Buffer.alloc(bytesRead)
-
- fs.open(file.path, 'r', function (err, fd) {
- if (err) {
- callback({ error: new Issue({ code: 44, file: file }) })
- return
- } else {
- fs.read(fd, buffer, 0, bytesRead, 0, function () {
- if (file.name.endsWith('.nii')) {
- callback(parseNIfTIHeader(buffer, file))
- } else {
- try {
- const data = pako.inflate(buffer)
- callback(parseNIfTIHeader(data, file))
- } catch (err) {
- callback(handleGunzipError(buffer, file))
- }
- }
- })
- }
- })
-}
-
-async function browserNiftiTest(file, callback) {
- const bytesRead = 1024
- let blob
- if ('slice' in file) {
- // This is a real browser
- blob = file.slice(0, bytesRead)
- } else {
- // Slice is undefined by the Deno adapter, this is likely Deno or a very confused browser
- blob = await file.readBytes(0, bytesRead)
- }
- if (file.size == 0) {
- callback({ error: new Issue({ code: 44, file: file }) })
- return
- }
-
- // file size is smaller than nifti header size
- if (file.size < 348) {
- callback({ error: new Issue({ code: 36, file: file }) })
- return
- }
- const fileReader = constructBrowserFileReader(file, callback)
- fileReader.readAsArrayBuffer(blob)
-}
-
-function constructBrowserFileReader(file, callback) {
- const fileReader = new FileReader()
- fileReader.onloadend = function () {
- const buffer = new Uint8Array(fileReader.result)
- let unzipped
-
- try {
- unzipped = file.name.endsWith('.nii') ? buffer : pako.inflate(buffer)
- } catch (err) {
- callback(handleGunzipError(buffer, file))
- return
- }
-
- callback(parseNIfTIHeader(unzipped, file))
- }
- return fileReader
-}
-/**
- * Parse NIfTI Header (private)
- *
- * Attempts to parse a header buffer with
- * nifti-js and handles errors.
- */
-function parseNIfTIHeader(buffer, file) {
- var header
- try {
- header = nifti.parseNIfTIHeader(buffer)
- } catch (err) {
- // file is unreadable
- return { error: new Issue({ code: 26, file: file }) }
- }
- // file was not originally gzipped
- return header
-}
-
-/**
- * Handle Gunzip Error (private)
- *
- * Used when unzipping fails. Tests if file was
- * actually gzipped to begin with by trying to parse
- * the original header.
- */
-function handleGunzipError(buffer, file) {
- try {
- nifti.parseNIfTIHeader(buffer)
- } catch (err) {
- // file is unreadable
- return { error: new Issue({ code: 26, file: file }) }
- }
- // file was not originally gzipped
- return { error: new Issue({ code: 28, file: file }) }
-}
-
-export default readNiftiHeader
diff --git a/bids-validator/utils/files/readOMEFile.js b/bids-validator/utils/files/readOMEFile.js
deleted file mode 100644
index 4871bff9..00000000
--- a/bids-validator/utils/files/readOMEFile.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import ExifReader from 'exifreader'
-const xml2js = require('xml2js')
-
-const readOMEFile = (buffer) => {
- let tags = ExifReader.load(buffer)
- let xml = tags['ImageDescription']['description']
- return new Promise((resolve, reject) => {
- xml2js
- .parseStringPromise(xml)
- .then((result) => {
- resolve(result)
- })
- .catch((error) => reject(error))
- })
-}
-
-export default readOMEFile
diff --git a/bids-validator/utils/files/remoteFiles.js b/bids-validator/utils/files/remoteFiles.js
deleted file mode 100644
index de02bda6..00000000
--- a/bids-validator/utils/files/remoteFiles.js
+++ /dev/null
@@ -1,221 +0,0 @@
-import { S3Client } from '@aws-sdk/client-s3'
-import fs from 'fs'
-import cp from 'child_process'
-import Issue from '../issues'
-import pako from 'pako'
-import isNode from '../isNode'
-
-/**
- * Remote Files
- *
- * Helper functions for checking for and using remote file paths
- *
- */
-
-const remoteFiles = {
- // Initiates access of a remote file from git-annex remote
- // Get remotes info the call to try successive remotes
- // Called by testFile
- getAnnexedFile: function (file, dir, limit, callback) {
- // Build config object
- const config = {
- file: file,
- dir: dir,
- }
- if (limit) config.limit = limit
- config.remotesInfo = this.getRemotesInfo(dir, file)
-
- // try all the special git-annex remotes, and exit if there is an issue (reading / fetching files)
- // if all remotes fail, throw issue code 97
- config.remotesInfo.map((remote, idx) => {
- return this.tryRemote(remote, config)
- .then((data) => callback(null, null, data))
- .catch((err) => {
- if (err.code) {
- return callback(err, null, null)
- }
- if (idx == config.remotesInfo.length) {
- return callback(
- new Issue({ code: 98, file: config.file }),
- null,
- null,
- )
- }
- })
- })
- },
-
- // Try to access file from a remote
- tryRemote: function (remote, config) {
- // Get current remote
- config.s3Params = this.getSingleRemoteInfo(config.dir, remote.remoteUuid)
- const dir = config.dir.endsWith('/') ? config.dir.slice(0, -1) : config.dir
- const datasetName = dir.split('/')[dir.split('/').length - 1]
- const key = datasetName + config.file.relativePath
- // Add additional parameters
- config.s3Params['Key'] = key
- config.s3Params['VersionId'] = remote.versionId
- return this.accessRemoteFile(config)
- },
-
- // Download a remote file from its path
- accessRemoteFile: function (config) {
- if (config.limit) config.s3Params['Range'] = 'bytes=0-' + config.limit
- return new Promise((resolve, reject) => {
- this.constructAwsRequest(config)
- .then((buffer) => {
- if (config.file.name.endsWith('.gz')) {
- this.extractGzipBuffer(buffer, config)
- .then((data) => resolve(data))
- .catch((err) => reject(err))
- } else {
- resolve(buffer)
- }
- })
- .catch(reject)
- })
- },
-
- constructAwsRequest: function (config) {
- const hasCreds = isNode
- ? Object.keys(process.env).indexOf('AWS_ACCESS_KEY_ID') > -1
- : false
- if (hasCreds) {
- const s3 = new S3Client()
- return s3.getObject(config.s3Params).then((data) => data.Body)
- } else {
- let url = this.constructAwsUrl(config)
- return fetch(url).then((resp) => {
- if (resp.ok) {
- return resp.buffer()
- } else {
- return Promise.reject(
- new Error(
- `HTTP response failed - ${resp.status} - ${resp.statusText}`,
- ),
- )
- }
- })
- }
- },
-
- constructAwsUrl: function (config) {
- // bucket + key url
- let url = `http://s3.amazonaws.com/${config.s3Params.Bucket}/${config.s3Params.Key}`
-
- // add version to url, if exists
- url = config.s3Params.VersionId
- ? url + '?VersionId=' + config.s3Params.VersionId
- : url
-
- // add range to url, if exists
- url = config.s3Params.Range ? url + '?Range=' + config.s3Params.Range : url
- return url
- },
-
- extractGzipBuffer: function (buffer, config) {
- return new Promise((resolve, reject) => {
- try {
- resolve(pako.inflate(buffer))
- } catch (e) {
- return reject(new Issue({ code: 28, file: config.file }))
- }
- })
- },
-
- // Function for calling local git-annex
- callGitAnnex: function (cmd, cwd) {
- const stream = cp.execSync(cmd, {
- shell: true,
- cwd,
- })
- return stream.toString()
- },
-
- // Ask git-annex for more information about a file
- getRemotesInfo: function (dir, file) {
- // Remove leading slash from relativePath
- const relativePath =
- file.relativePath && file.relativePath.startsWith('/')
- ? file.relativePath.substring(1)
- : file.relativePath
- const lookupkey = this.getLookupKey(relativePath, dir)
- const hashDirLower = this.getHashDirLower(lookupkey, dir)
- const metadata = this.getRemoteMetadata(hashDirLower, lookupkey, dir)
- const remotesInfo = this.processRemoteMetadata(metadata)
- return remotesInfo
- },
-
- // get the key for a particular file's relative path
- getLookupKey: function (relativePath, dir) {
- const lookupKeyCmd = `git-annex lookupkey ${relativePath}`
- return this.callGitAnnex(lookupKeyCmd, dir).trim()
- },
-
- // get hashdirlower property from the git-annex examinekey command
- getHashDirLower: function (lookupkey, dir) {
- try {
- const examineKeyCmd = `git-annex examinekey --json ${lookupkey}`
- const examineKey = JSON.parse(this.callGitAnnex(examineKeyCmd, dir))
- return examineKey.hashdirlower
- } catch (e) {
- return null
- }
- },
-
- // get the remote metadata log content from git show command
- getRemoteMetadata: function (hashDirLower, lookupkey, dir) {
- const gitShowCmd = `git show git-annex:${hashDirLower}${lookupkey}.log.rmet`
- return this.callGitAnnex(gitShowCmd, dir)
- },
-
- // Get info from a given git-annex remote
- getSingleRemoteInfo: function (dir, uuid) {
- const infoCmd = `cd ${dir}
- git-annex info ${uuid}`
- const resp = this.callGitAnnex(infoCmd)
- return this.getRemoteBucket(resp)
- },
-
- // Obtain bucket field from git-annex info query
- getRemoteBucket: function (resp) {
- const params = {
- Bucket: null,
- }
- for (let line of resp.split('\n')) {
- if (line.includes('bucket: ')) {
- params.Bucket = line.split(': ')[1]
- }
- }
- return params
- },
-
- // Manipulate the response from git-annex lookupkey query
- processRemoteMetadata: function (resp) {
- const remotesInfo = []
- const lines = resp.split('\n')
- lines.map((line) => {
- const splitSpace = line.split(' ')
- if (splitSpace.length == 3) {
- const fileInfo = splitSpace[2].split('#')
- const timestamp = splitSpace[0]
- const annexInfo = splitSpace[1].split(':')
- if (fileInfo.length == 2 && annexInfo.length == 2) {
- const remoteUuid = annexInfo[0]
- const fileName = fileInfo[1]
- const versionId = fileInfo[0].substring(1)
- const remoteInfo = { timestamp, remoteUuid, fileName, versionId }
- remotesInfo.push(remoteInfo)
- }
- }
- })
- return remotesInfo
- },
- // Check if a local directory is a git-annex repo
- isGitAnnex: function (path) {
- if (isNode) return fs.existsSync(path + '/.git/annex')
- return false
- },
-}
-
-export default remoteFiles
diff --git a/bids-validator/utils/files/sessions.js b/bids-validator/utils/files/sessions.js
deleted file mode 100644
index c1083012..00000000
--- a/bids-validator/utils/files/sessions.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default {
- sessionMatcher: new RegExp('(ses-.*?)/'),
-
- Subject: function () {
- this.files = []
- this.sessions = []
- this.missingSessions = []
- },
-}
diff --git a/bids-validator/utils/files/testFile.js b/bids-validator/utils/files/testFile.js
deleted file mode 100644
index 117bb838..00000000
--- a/bids-validator/utils/files/testFile.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import fs from 'fs'
-import Issue from '../../utils/issues'
-import remoteFiles from './remoteFiles'
-import options from '../../utils/options'
-
-/**
- * Test File
- *
- * Takes a file and callback and tests if it's viable for
- * reading and is larger than 0 kb. Calls back with an error and stats if it isn't
- * or null and stats if it is.
- */
-function testFile(file, annexed, dir, callback) {
- fs.access(file.path, function (accessErr) {
- if (!accessErr) {
- // accessible
- handleFsAccess(file, callback)
- } else {
- // inaccessible
- fs.lstat(file.path, function (lstatErr, lstats) {
- if (!lstatErr && lstats && lstats.isSymbolicLink()) {
- // symlink
- if (options.getOptions().remoteFiles)
- // only follow symlinks when --remoteFiles option is on
- handleRemoteAccess(file, annexed, dir, callback)
- else
- callback(
- new Issue({
- code: 114,
- file,
- }),
- file.stats,
- )
- } else {
- // inaccessible local file
- callback(new Issue({ code: 44, file: file }), file.stats)
- }
- })
- }
- })
-}
-
-function handleFsAccess(file, callback) {
- process.nextTick(function () {
- if (file.stats.size === 0) {
- callback(
- new Issue({
- code: 99,
- file: file,
- reason: `Empty files (${file.path}) not allowed.`,
- }),
- file.stats,
- )
- }
- callback(null, file.stats)
- })
-}
-
-function handleRemoteAccess(file, annexed, dir, callback) {
- if (annexed) {
- // Set byte retrieval limits based on file type
- const limit = file.name.includes('.nii') ? 500 : false
- // Call process to get remote files
- // It will call callback with content or error
- remoteFiles.getAnnexedFile(file, dir, limit, callback)
- } else {
- callback(new Issue({ code: 43, file: file }), file.stats)
- }
-}
-
-export default testFile
diff --git a/bids-validator/utils/files/validateMisc.js b/bids-validator/utils/files/validateMisc.js
deleted file mode 100644
index d4ceed10..00000000
--- a/bids-validator/utils/files/validateMisc.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import Issue from '../issues/issue'
-import isNode from '../isNode'
-
-function createIssueForEmpty(file) {
- const size = !isNode ? file.size : file.stats.size
- var failsSizeRequirement = size <= 0
- // Exception misc files that can be valid although size==0
- // E.g., BadChannels and bad.segments in CTF data format (MEG modality)
- const exceptionMiscs = ['BadChannels', 'bad.segments']
- if (exceptionMiscs.indexOf(file.name) > -1) {
- failsSizeRequirement = false
- }
-
- return failsSizeRequirement && new Issue({ code: 99, file: file })
-}
-function clearNonIssues(x) {
- return x instanceof Issue
-}
-
-/**
- * validateMisc
- *
- * takes a list of files and returns an issue for each file
- */
-export default function validateMisc(miscFiles) {
- return Promise.resolve(
- miscFiles.map(createIssueForEmpty).filter(clearNonIssues),
- )
-}
diff --git a/bids-validator/utils/index.js b/bids-validator/utils/index.js
deleted file mode 100644
index 4eb8f223..00000000
--- a/bids-validator/utils/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import './prototype'
-import array from './array'
-import config from './config'
-import files from './files'
-import bids_files from './bids_files'
-import issues from './issues'
-import json from './json'
-import modalities from './modalities'
-import options from './options'
-import type from './type'
-import collectSummary from './summary/collectSummary'
-import limit from './promise_limiter'
-import unit from './unit'
-
-export {
- array,
- config,
- files,
- bids_files,
- issues,
- json,
- modalities,
- options,
- type,
- collectSummary,
- limit,
- unit,
-}
-
-export default {
- array,
- config,
- files,
- bids_files,
- issues,
- json,
- modalities,
- options,
- type,
- collectSummary,
- limit,
- unit,
-}
diff --git a/bids-validator/utils/isNode.js b/bids-validator/utils/isNode.js
deleted file mode 100644
index dfb3e6a8..00000000
--- a/bids-validator/utils/isNode.js
+++ /dev/null
@@ -1,7 +0,0 @@
-const isBrowserWorker = () =>
- // eslint-disable-next-line no-undef
- typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope
-
-const isNode = () => typeof window === 'undefined' && !isBrowserWorker()
-
-export default isNode()
diff --git a/bids-validator/utils/issues/index.js b/bids-validator/utils/issues/index.js
deleted file mode 100644
index 88c0add6..00000000
--- a/bids-validator/utils/issues/index.js
+++ /dev/null
@@ -1,206 +0,0 @@
-import list from './list'
-import Issue from './issue'
-import config from '../config'
-
-var issues = {
- /**
- * List
- *
- * List of all validator issues.
- */
- list: list,
-
- /**
- * Issue
- *
- * Issue constructor
- */
- Issue: Issue,
-
- /**
- * Filter Fieldmaps
- *
- * Remove fieldmap related warnings if no fieldmaps
- * are present.
- */
- filterFieldMaps: function (issueList) {
- var filteredIssueList = []
- var fieldmapRelatedCodes = [6, 7, 8, 9]
- for (var i = 0; i < issueList.length; i++) {
- var issue = issueList[i]
- if (fieldmapRelatedCodes.indexOf(issue.code) < 0) {
- filteredIssueList.push(issue)
- }
- }
- return filteredIssueList
- },
-
- /**
- * Format Issues
- */
- format: function (issueList, summary, options) {
- var errors = [],
- warnings = [],
- ignored = []
-
- if (summary.modalities.indexOf('fieldmap') < 0) {
- issueList = this.filterFieldMaps(issueList)
- }
-
- // sort alphabetically by relative path of files
- issueList.sort(function (a, b) {
- var aPath = a.file ? a.file.relativePath : ''
- var bPath = b.file ? b.file.relativePath : ''
- return aPath > bPath ? 1 : bPath > aPath ? -1 : 0
- })
-
- // organize by issue code
- const categorized = {}
- const codes = []
- for (var i = 0; i < issueList.length; i++) {
- var issue = issueList[i]
-
- if (
- issue.file &&
- config.ignoredFile(options.config, issue.file.relativePath)
- ) {
- continue
- }
-
- if (!categorized[issue.code]) {
- codes.push(issue.key)
- codes.push(issue.code)
- categorized[issue.code] = list[issue.code]
- categorized[issue.code].files = []
- categorized[issue.code].additionalFileCount = 0
- categorized[issue.code].helpUrl = issue.helpUrl
- }
- if (options.verbose || categorized[issue.code].files.length < 10) {
- categorized[issue.code].files.push(issue)
- } else {
- categorized[issue.code].additionalFileCount++
- }
- }
-
- const severityMap = config.interpret(codes, options.config)
-
- // organize by severity
- for (const codePropertyName in categorized) {
- if (!categorized.hasOwnProperty(codePropertyName)) {
- continue
- }
- // Properties are always strings but error codes are always integers
- const code = parseInt(codePropertyName)
- issue = categorized[code]
- issue.code = code
-
- if (severityMap.hasOwnProperty(issue.code)) {
- issue.severity = severityMap[issue.code]
- }
-
- if (severityMap.hasOwnProperty(issue.key)) {
- issue.severity = severityMap[issue.key]
- }
- if (issue.severity === 'error') {
- // Schema validation issues will yield the JSON file invalid, we should display them first to attract
- // user attention.
- if (code == 55) {
- errors.unshift(issue)
- } else {
- errors.push(issue)
- }
- } else if (issue.severity === 'warning' && !options.ignoreWarnings) {
- warnings.push(issue)
- } else if (issue.severity === 'ignore') {
- ignored.push(issue)
- }
- }
- return { errors, warnings, ignored }
- },
-
- /**
- * Error To Issue
- *
- * Takes and exception and returns an Issue
- */
- errorToIssue: function (err, code = 0) {
- const callStack = err.stack
- ? err.stack.split('\n').slice(1).join('\n').trim()
- : ''
-
- return new Issue({
- file: callStack,
- evidence: err.stack || '',
- reason: `${err.message}; please help the BIDS team and community by opening an issue at (https://github.com/bids-standard/bids-validator/issues) with the evidence here.`,
- code: code,
- })
- },
-
- /**
- * isAnIssue
- *
- * takes an object and checks if it's an Issue
- */
- isAnIssue: function (obj) {
- const objKeys = Object.keys(obj)
- return objKeys.includes('code') && objKeys.includes('reason')
- },
-
- /**
- * Reformat
- *
- * Takes an already formatted set of issues, a
- * summary and a config object and returns the
- * same issues reformatted against the config.
- */
- reformat: function (issueList, summary, config) {
- var errors = issueList.errors ? issueList.errors : [],
- warnings = issueList.warnings ? issueList.warnings : [],
- ignored = issueList.ignored ? issueList.ignored : []
-
- issueList = errors.concat(warnings).concat(ignored)
- var unformatted = []
- for (var i = 0; i < issueList.length; i++) {
- var issue = issueList[i]
- for (var j = 0; j < issue.files.length; j++) {
- var file = issue.files[j]
- unformatted.push(file)
- }
- }
- return issues.format(unformatted, summary, { config: config })
- },
- /**
- * Exception Handler
- *
- * takes an error in fullTest.js catch
- * converts it to an Issue and pushes it to the total list of issues
- * formats issue list and returns it
- */
- exceptionHandler: function (err, issueList, summary, options) {
- // err here can be a validator Issue or an unknown exception
- if (err.hasOwnProperty('key')) {
- issueList.push(err)
- } else {
- issueList.push(this.errorToIssue(err))
- }
-
- // Format issues
- const issues = this.format(issueList, summary, options)
- return issues
- },
-
- /**
- * Error/Issue redirector
- *
- * takes an error, resolve callback, and reject callback
- */
- redirect: function (err, reject, resolveCB) {
- if (this.isAnIssue(err)) {
- resolveCB()
- } else {
- reject(err)
- }
- },
-}
-
-export default Object.assign(Issue, issues)
diff --git a/bids-validator/utils/issues/issue.js b/bids-validator/utils/issues/issue.js
deleted file mode 100644
index 7311c881..00000000
--- a/bids-validator/utils/issues/issue.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import issues from './list'
-
-/**
- * Help Url
- *
- * Construct a link to a helpful neurostars query, based on the
- * issue key
- */
-const constructHelpUrl = (issue) => {
- const neurostarsPrefix = 'https://neurostars.org/'
- const searchQuery = issue && issue.key ? 'search?q=' + issue.key : ''
- const helpUrl = neurostarsPrefix + searchQuery
- return helpUrl
-}
-
-/**
- * Issue
- *
- * A constructor for BIDS issues.
- *
- * @param {Object} options
- * @param {string} options.key The descriptive string matching the issue code
- * @param {number} options.code Issue code - see 'list.js' for definitions
- * @param {File} [options.file] File object for the affected file
- * @param {string} [options.evidence] The value throwing this issue
- * @param {number} [options.line] The line of the affected file (if within a file)
- * @param {number} [options.character] The character offset in the affected line
- * @param {string} [options.severity] Is this an error or warning?
- * @param {string} [options.reason] A descriptive
- * @param {string} [options.helpUrl] A URL providing documentation to help solve this error
- * @returns {Object} Issue object
- */
-function Issue(options) {
- const code = options.hasOwnProperty('code') ? options.code : null
- const issue = issues[code]
-
- this.key = issue.key
- this.code = code
- this.file = options.hasOwnProperty('file') ? options.file : null
- this.evidence = options.hasOwnProperty('evidence') ? options.evidence : null
- this.line = options.hasOwnProperty('line') ? options.line : null
- this.character = options.hasOwnProperty('character')
- ? options.character
- : null
- this.severity = options.hasOwnProperty('severity')
- ? options.severity
- : issue.severity
- this.reason = options.hasOwnProperty('reason') ? options.reason : issue.reason
- this.helpUrl = constructHelpUrl(issue)
-}
-
-export default Issue
diff --git a/bids-validator/utils/issues/list.js b/bids-validator/utils/issues/list.js
deleted file mode 100644
index e1afa254..00000000
--- a/bids-validator/utils/issues/list.js
+++ /dev/null
@@ -1,1187 +0,0 @@
-/**
- * Issues
- *
- * A list of all possible issues organized by
- * issue code and including severity and reason
- * agnostic to file specifics.
- */
-export default {
- 0: {
- key: 'INTERNAL ERROR',
- severity: 'error',
- reason: 'Internal error. SOME VALIDATION STEPS MAY NOT HAVE OCCURRED',
- },
- 1: {
- key: 'NOT_INCLUDED',
- severity: 'error',
- reason:
- 'Files with such naming scheme are not part of BIDS specification. This error is most commonly ' +
- 'caused by typos in file names that make them not BIDS compatible. Please consult the specification and ' +
- 'make sure your files are named correctly. If this is not a file naming issue (for example when including ' +
- 'files not yet covered by the BIDS specification) you should include a ".bidsignore" file in your dataset (see' +
- ' https://github.com/bids-standard/bids-validator#bidsignore for details). Please ' +
- 'note that derived (processed) data should be placed in /derivatives folder and source data (such as DICOMS ' +
- 'or behavioural logs in proprietary formats) should be placed in the /sourcedata folder.',
- },
- 2: {
- key: 'REPETITION_TIME_GREATER_THAN',
- severity: 'warning',
- reason:
- "'RepetitionTime' is greater than 100 are you sure it's expressed in seconds?",
- },
- 3: {
- key: 'ECHO_TIME_GREATER_THAN',
- severity: 'warning',
- reason:
- "'EchoTime' is greater than 1 are you sure it's expressed in seconds?",
- },
- 4: {
- key: 'ECHO_TIME_DIFFERENCE_GREATER_THAN',
- severity: 'warning',
- reason:
- "'EchoTimeDifference' is greater than 1 are you sure it's expressed in seconds?",
- },
- 5: {
- key: 'TOTAL_READOUT_TIME_GREATER_THAN',
- severity: 'warning',
- reason:
- "'TotalReadoutTime' is greater than 10 are you sure it's expressed in seconds?",
- },
- 6: {
- key: 'ECHO_TIME_NOT_DEFINED',
- severity: 'warning',
- reason:
- "You should define 'EchoTime' for this file. If you don't provide this information field map correction will not be possible.",
- },
- 7: {
- key: 'PHASE_ENCODING_DIRECTION_NOT_DEFINED',
- severity: 'warning',
- reason:
- "You should define 'PhaseEncodingDirection' for this file. If you don't provide this information field map correction will not be possible.",
- },
- 8: {
- key: 'EFFECTIVE_ECHO_SPACING_NOT_DEFINED',
- severity: 'warning',
- reason:
- "You should define 'EffectiveEchoSpacing' for this file. If you don't provide this information field map correction will not be possible.",
- },
- 9: {
- key: 'TOTAL_READOUT_TIME_NOT_DEFINED',
- severity: 'warning',
- reason:
- "You should define 'TotalReadoutTime' for this file. If you don't provide this information field map correction using TOPUP might not be possible.",
- },
- 10: {
- key: 'REPETITION_TIME_MUST_DEFINE',
- severity: 'error',
- reason: "You have to define 'RepetitionTime' for this file.",
- },
- 11: {
- key: 'REPETITION_TIME_UNITS',
- severity: 'error',
- reason:
- "Repetition time was not defined in seconds, milliseconds or microseconds in the scan's header.",
- },
- 12: {
- key: 'REPETITION_TIME_MISMATCH',
- severity: 'error',
- reason:
- "Repetition time did not match between the scan's header and the associated JSON metadata file.",
- },
- 13: {
- key: 'SLICE_TIMING_NOT_DEFINED',
- severity: 'warning',
- reason:
- "You should define 'SliceTiming' for this file. If you don't provide this information slice time correction will not be possible. 'Slice Timing' is the time at which each slice was acquired within each volume (frame) of the acquisition. Slice timing is not slice order -- rather, it is a list of times containing the time (in seconds) of each slice acquisition in relation to the beginning of volume acquisition.",
- },
- 15: {
- key: 'ECHO_TIME1-2_NOT_DEFINED',
- severity: 'error',
- reason: "You have to define 'EchoTime1' and 'EchoTime2' for this file.",
- },
- 16: {
- key: 'ECHO_TIME_MUST_DEFINE',
- severity: 'error',
- reason: "You have to define 'EchoTime' for this file.",
- },
- 17: {
- key: 'UNITS_MUST_DEFINE',
- severity: 'error',
- reason: "You have to define 'Units' for this file.",
- },
- 18: {
- key: 'PHASE_ENCODING_DIRECTION_MUST_DEFINE',
- severity: 'error',
- reason: "You have to define 'PhaseEncodingDirection' for this file.",
- },
- 19: {
- key: 'TOTAL_READOUT_TIME_MUST_DEFINE',
- severity: 'error',
- reason: "You have to define 'TotalReadoutTime' for this file.",
- },
- 20: {
- key: 'EVENTS_COLUMN_ONSET',
- severity: 'error',
- reason: "First column of the events file must be named 'onset'",
- },
- 21: {
- key: 'EVENTS_COLUMN_DURATION',
- severity: 'error',
- reason: "Second column of the events file must be named 'duration'",
- },
- 22: {
- key: 'TSV_EQUAL_ROWS',
- severity: 'error',
- reason:
- 'All rows must have the same number of columns as there are headers.',
- },
- 23: {
- key: 'TSV_EMPTY_CELL',
- severity: 'error',
- reason:
- 'Empty cell in TSV file detected: The proper way of labeling missing values is "n/a".',
- },
- 24: {
- key: 'TSV_IMPROPER_NA',
- severity: 'warning',
- reason: 'A proper way of labeling missing values is "n/a".',
- },
- 25: {
- key: 'EVENTS_TSV_MISSING',
- severity: 'warning',
- reason:
- 'Task scans should have a corresponding events.tsv file. If this is a resting state scan you can ignore this warning or rename the task to include the word "rest".',
- },
- 26: {
- key: 'NIFTI_HEADER_UNREADABLE',
- severity: 'error',
- reason:
- 'We were unable to parse header data from this NIfTI file. Please ensure it is not corrupted or mislabeled.',
- },
- 27: {
- key: 'JSON_INVALID',
- severity: 'error',
- reason: 'Not a valid JSON file.',
- },
- 28: {
- key: 'GZ_NOT_GZIPPED',
- severity: 'error',
- reason: 'This file ends in the .gz extension but is not actually gzipped.',
- },
- 29: {
- key: 'VOLUME_COUNT_MISMATCH',
- severity: 'error',
- reason:
- 'The number of volumes in this scan does not match the number of volumes in the corresponding .bvec and .bval files.',
- },
- 30: {
- key: 'BVAL_MULTIPLE_ROWS',
- severity: 'error',
- reason: '.bval files should contain exactly one row of volumes.',
- },
- 31: {
- key: 'BVEC_NUMBER_ROWS',
- severity: 'error',
- reason: '.bvec files should contain exactly three rows of volumes.',
- },
- 32: {
- key: 'DWI_MISSING_BVEC',
- severity: 'error',
- reason: 'DWI scans should have a corresponding .bvec file.',
- },
- 33: {
- key: 'DWI_MISSING_BVAL',
- severity: 'error',
- reason: 'DWI scans should have a corresponding .bval file.',
- },
- 36: {
- key: 'NIFTI_TOO_SMALL',
- severity: 'error',
- reason: 'This file is too small to contain the minimal NIfTI header.',
- },
- 37: {
- key: 'INTENDED_FOR',
- severity: 'error',
- reason: "'IntendedFor' field needs to point to an existing file.",
- },
- 38: {
- key: 'INCONSISTENT_SUBJECTS',
- severity: 'warning',
- reason:
- 'Not all subjects contain the same files. Each subject should contain the same number of files with ' +
- 'the same naming unless some files are known to be missing.',
- },
- 39: {
- key: 'INCONSISTENT_PARAMETERS',
- severity: 'warning',
- reason: 'Not all subjects/sessions/runs have the same scanning parameters.',
- },
- 40: {
- key: 'NIFTI_DIMENSION',
- severity: 'warning',
- reason:
- "NIfTI file's header field for dimension information blank or too short.",
- },
- 41: {
- key: 'NIFTI_UNIT',
- severity: 'warning',
- reason:
- "NIfTI file's header field for unit information for x, y, z, and t dimensions empty or too short",
- },
- 42: {
- key: 'NIFTI_PIXDIM',
- severity: 'warning',
- reason:
- "NIfTI file's header field for pixel dimension information empty or too short.",
- },
- 43: {
- key: 'ORPHANED_SYMLINK',
- severity: 'error',
- reason:
- 'This file appears to be an orphaned symlink. Make sure it correctly points to its referent.',
- },
- 44: {
- key: 'FILE_READ',
- severity: 'error',
- reason:
- 'We were unable to read this file. Make sure it contains data (file size > 0 kB) and is not corrupted, incorrectly named, or incorrectly symlinked.',
- },
- 45: {
- key: 'SUBJECT_FOLDERS',
- severity: 'error',
- reason:
- 'There are no subject folders (labeled "sub-*") in the root of this dataset.',
- },
- 46: {
- key: 'BVEC_ROW_LENGTH',
- severity: 'error',
- reason:
- 'Each row in a .bvec file should contain the same number of values.',
- },
- 47: {
- key: 'B_FILE',
- severity: 'error',
- reason:
- '.bval and .bvec files must be single space delimited and contain only numerical values.',
- },
- 48: {
- key: 'PARTICIPANT_ID_COLUMN',
- severity: 'error',
- reason:
- "Participants and phenotype .tsv files must have a 'participant_id' column.",
- },
- 49: {
- key: 'PARTICIPANT_ID_MISMATCH',
- severity: 'error',
- reason:
- 'Participant labels found in this dataset did not match the values in participant_id column found in the participants.tsv file.',
- },
- 50: {
- key: 'TASK_NAME_MUST_DEFINE',
- severity: 'error',
- reason: "You have to define 'TaskName' for this file.",
- },
- 51: {
- key: 'PHENOTYPE_SUBJECTS_MISSING',
- severity: 'error',
- reason:
- 'A phenotype/ .tsv file lists subjects that were not found in the dataset.',
- },
- 52: {
- key: 'STIMULUS_FILE_MISSING',
- severity: 'error',
- reason: 'A stimulus file was declared but not found in the dataset.',
- },
- 53: {
- key: 'NO_T1W',
- severity: 'ignore',
- reason: 'Dataset does not contain any T1w scans.',
- },
- 54: {
- key: 'BOLD_NOT_4D',
- severity: 'error',
- reason: 'Bold scans must be 4 dimensional.',
- },
- 55: {
- key: 'JSON_SCHEMA_VALIDATION_ERROR',
- severity: 'error',
- reason:
- 'Invalid JSON file. The file is not formatted according the schema.',
- },
- 56: {
- key: 'Participants age 89 or higher',
- severity: 'warning',
- reason:
- 'As per section 164.514(C) of "The De-identification Standard" under HIPAA guidelines, participants with age 89 or higher should be tagged as 89+. More information can be found at https://www.hhs.gov/hipaa/for-professionals/privacy/special-topics/de-identification/#standard',
- },
- 57: {
- key: 'DATASET_DESCRIPTION_JSON_MISSING',
- severity: 'error',
- reason:
- 'The compulsory file /dataset_description.json is missing. See Section 03 (Modality agnostic files) of the BIDS specification.',
- },
- 58: {
- key: 'TASK_NAME_CONTAIN_ILLEGAL_CHARACTER',
- severity: 'error',
- reason:
- 'Task Name contain an Illegal Character hyphen or underscore. Please edit the filename as per BIDS spec.',
- },
- 59: {
- key: 'ACQ_NAME_CONTAIN_ILLEGAL_CHARACTER',
- severity: 'error',
- reason:
- 'acq Name contain an Illegal Character hyphen or underscore. Please edit the filename as per BIDS spec.',
- },
- 60: {
- key: 'SFORM_AND_QFORM_IN_IMAGE_HEADER_ARE_ZERO',
- severity: 'error',
- reason:
- 'sform_code and qform_code in the image header are 0. The image/file will be considered invalid or assumed to be in LAS orientation.',
- },
- 61: {
- key: 'QUICK_VALIDATION_FAILED',
- severity: 'error',
- reason:
- 'Quick validation failed - the general folder structure does not resemble a BIDS dataset. Have you chosen the right folder (with "sub-*/" subfolders)? Check for structural/naming issues and presence of at least one subject.',
- },
- 62: {
- key: 'SUBJECT_VALUE_CONTAINS_ILLEGAL_CHARACTER',
- severity: 'error',
- reason:
- 'Sub label contain an Illegal Character hyphen or underscore. Please edit the filename as per BIDS spec.',
- },
- 63: {
- key: 'SESSION_VALUE_CONTAINS_ILLEGAL_CHARACTER',
- severity: 'error',
- reason:
- 'Ses label contain an Illegal Character hyphen or underscore. Please edit the filename as per BIDS spec.',
- },
- 64: {
- key: 'SUBJECT_LABEL_IN_FILENAME_DOESNOT_MATCH_DIRECTORY',
- severity: 'error',
- reason:
- "Subject label in the filename doesn't match with the path of the file. File seems to be saved in incorrect subject directory.",
- },
- 65: {
- key: 'SESSION_LABEL_IN_FILENAME_DOESNOT_MATCH_DIRECTORY',
- severity: 'error',
- reason:
- "Session label in the filename doesn't match with the path of the file. File seems to be saved in incorrect session directory.",
- },
- 66: {
- key: 'SLICETIMING_VALUES_GREATOR_THAN_REPETITION_TIME',
- severity: 'error',
- reason:
- '"SliceTiming" value/s contains invalid value as it is greater than RepetitionTime. SliceTiming values should be in seconds not milliseconds (common mistake).',
- },
- 67: {
- key: 'NO_VALID_DATA_FOUND_FOR_SUBJECT',
- severity: 'error',
- reason: 'No BIDS compatible data found for at least one subject.',
- },
- 68: {
- key: 'FILENAME_COLUMN',
- severity: 'error',
- reason: "_scans.tsv files must have a 'filename' column.",
- },
- 70: {
- key: 'WRONG_NEW_LINE',
- severity: 'error',
- reason:
- "All TSV files must use Line Feed '\\n' characters to denote new lines. This files uses Carriage Return '\\r'.",
- },
- 71: {
- key: 'MISSING_TSV_COLUMN_CHANNELS',
- severity: 'error',
- reason:
- "The column names of the channels file must begin with ['name', 'type', 'units']",
- },
- 72: {
- key: 'MISSING_TSV_COLUMN_IEEG_CHANNELS',
- severity: 'error',
- reason:
- "The column names of the channels file must begin with ['name', 'type', 'units', 'low_cutoff', 'high_cutoff']",
- },
- 73: {
- key: 'MISSING_TSV_COLUMN_IEEG_ELECTRODES',
- severity: 'error',
- reason:
- "The column names of the electrodes file must begin with ['name', 'x', 'y', 'z', 'size']",
- },
- 74: {
- key: 'DUPLICATE_NIFTI_FILES',
- severity: 'error',
- reason: "NIfTI file exist with both '.nii' and '.nii.gz' extensions.",
- },
- 75: {
- key: 'NIFTI_PIXDIM4',
- severity: 'error',
- reason: "NIfTI file's header is missing time dimension information.",
- },
- 76: {
- key: 'EFFECTIVEECHOSPACING_TOO_LARGE',
- severity: 'error',
- reason: "Abnormally high value of 'EffectiveEchoSpacing'.",
- },
- 77: {
- key: 'UNUSED_STIMULUS',
- severity: 'warning',
- reason:
- 'There are files in the /stimuli directory that are not utilized in any _events.tsv file.',
- },
- 78: {
- key: 'CHANNELS_COLUMN_SFREQ',
- severity: 'error',
- reason:
- "Fourth column of the channels file must be named 'sampling_frequency'",
- },
- 79: {
- key: 'CHANNELS_COLUMN_LOWCUT',
- severity: 'error',
- reason: "Third column of the channels file must be named 'low_cutoff'",
- },
- 80: {
- key: 'CHANNELS_COLUMN_HIGHCUT',
- severity: 'error',
- reason: "Third column of the channels file must be named 'high_cutoff'",
- },
- 81: {
- key: 'CHANNELS_COLUMN_NOTCH',
- severity: 'error',
- reason: "Third column of the channels file must be named 'notch'",
- },
- 82: {
- key: 'CUSTOM_COLUMN_WITHOUT_DESCRIPTION',
- severity: 'warning',
- reason:
- 'Tabular file contains custom columns not described in a data dictionary',
- },
- 83: {
- key: 'ECHOTIME1_2_DIFFERENCE_UNREASONABLE',
- severity: 'error',
- reason:
- 'The value of (EchoTime2 - EchoTime1) should be within the range of 0.0001 - 0.01.',
- },
- 84: {
- key: 'ACQTIME_FMT',
- severity: 'error',
- reason:
- 'Entries in the "acq_time" column of _scans.tsv should be expressed in the following format YYYY-MM-DDTHH:mm:ss[.000000] (year, month, day, hour (24h), minute, second, and optionally fractional second; this is equivalent to the RFC3339 "date-time" format.',
- },
- 85: {
- key: 'SUSPICIOUSLY_LONG_EVENT_DESIGN',
- severity: 'warning',
- reason:
- 'The onset of the last event is after the total duration of the corresponding scan. This design is suspiciously long. ',
- },
- 86: {
- key: 'SUSPICIOUSLY_SHORT_EVENT_DESIGN',
- severity: 'warning',
- reason:
- 'The onset of the last event is less than half the total duration of the corresponding scan. This design is suspiciously short. ',
- },
- 87: {
- key: 'SLICETIMING_ELEMENTS',
- severity: 'warning',
- reason:
- "The number of elements in the SliceTiming array should match the 'k' dimension of the corresponding NIfTI volume.",
- },
- 88: {
- key: 'MALFORMED_BVEC',
- severity: 'error',
- reason:
- 'The contents of this .bvec file are undefined or severely malformed. ',
- },
- 89: {
- key: 'MALFORMED_BVAL',
- severity: 'error',
- reason:
- 'The contents of this .bval file are undefined or severely malformed. ',
- },
- 90: {
- key: 'SIDECAR_WITHOUT_DATAFILE',
- severity: 'error',
- reason: 'A json sidecar file was found without a corresponding data file',
- },
- 91: {
- key: '_FIELDMAP_WITHOUT_MAGNITUDE_FILE',
- severity: 'error',
- reason:
- '_fieldmap.nii[.gz] file does not have accompanying _magnitude.nii[.gz] file. ',
- },
- 92: {
- key: 'MISSING_MAGNITUDE1_FILE',
- severity: 'warning',
- reason:
- 'Each _phasediff.nii[.gz] file should be associated with a _magnitude1.nii[.gz] file.',
- },
- 93: {
- key: 'EFFECTIVEECHOSPACING_LARGER_THAN_TOTALREADOUTTIME',
- severity: 'error',
- reason:
- 'EffectiveEchoSpacing should always be smaller than TotalReadoutTime. ',
- },
- 94: {
- key: 'MAGNITUDE_FILE_WITH_TOO_MANY_DIMENSIONS',
- severity: 'error',
- reason:
- '_magnitude1.nii[.gz] and _magnitude2.nii[.gz] files must have exactly three dimensions. ',
- },
- 95: {
- key: 'T1W_FILE_WITH_TOO_MANY_DIMENSIONS',
- severity: 'error',
- reason: '_T1w.nii[.gz] files must have exactly three dimensions. ',
- },
- 96: {
- key: 'MISSING_TSV_COLUMN_EEG_ELECTRODES',
- severity: 'error',
- reason:
- "The column names of the electrodes file must begin with ['name', 'x', 'y', 'z']",
- },
- 97: {
- key: 'MISSING_SESSION',
- severity: 'warning',
- reason: 'Not all subjects contain the same sessions.',
- },
- 98: {
- key: 'INACCESSIBLE_REMOTE_FILE',
- severity: 'error',
- reason:
- 'This file appears to be a symlink to a remote annexed file but could not be accessed from any of the configured remotes.',
- },
- 99: {
- key: 'EMPTY_FILE',
- severity: 'error',
- reason: 'Empty files not allowed.',
- },
- 100: {
- key: 'BRAINVISION_LINKS_BROKEN',
- severity: 'error',
- reason:
- 'Internal file pointers in BrainVision file triplet (*.eeg, *.vhdr, and *.vmrk) are broken or some files do not exist.',
- },
- 101: {
- key: 'README_FILE_MISSING',
- severity: 'warning',
- reason:
- 'The recommended file /README is missing. See Section 03 (Modality agnostic files) of the BIDS specification.',
- },
- 102: {
- key: 'TOO_FEW_AUTHORS',
- severity: 'warning',
- reason:
- 'The Authors field of dataset_description.json should contain an array of fields - with one author per field. This was triggered based on the presence of only one author field. Please ignore if all contributors are already properly listed.',
- },
- 103: {
- key: 'MULTIPLE_COMMAS_IN_AUTHOR_FIELD',
- severity: 'error',
- reason:
- 'The Authors field of dataset_description.json should contain an array of fields - with one author per field. This was triggered based on the presence of multiple commas in a single author field. Please ensure your authors are properly formatted.',
- },
- 104: {
- key: 'HED_ERROR',
- severity: 'error',
- reason: 'The validation on this HED string returned an error.',
- },
- 105: {
- key: 'HED_WARNING',
- severity: 'warning',
- reason: 'The validation on this HED string returned a warning.',
- },
- 106: {
- key: 'HED_INTERNAL_ERROR',
- severity: 'error',
- reason: 'An internal error occurred during HED validation.',
- },
- 107: {
- key: 'HED_INTERNAL_WARNING',
- severity: 'warning',
- reason: 'An internal warning occurred during HED validation.',
- },
- 108: {
- key: 'HED_MISSING_VALUE_IN_SIDECAR',
- severity: 'warning',
- reason:
- 'The json sidecar does not contain this column value as a possible key to a HED string.',
- },
- 109: {
- key: 'HED_VERSION_NOT_DEFINED',
- severity: 'warning',
- reason:
- "You should define 'HEDVersion' for this file. If you don't provide this information, the HED validation will use the latest version available.",
- },
- 113: {
- key: 'NO_AUTHORS',
- severity: 'warning',
- reason:
- 'The Authors field of dataset_description.json should contain an array of fields - with one author per field. This was triggered because there are no authors, which will make DOI registration from dataset metadata impossible.',
- },
- 114: {
- key: 'INCOMPLETE_DATASET',
- severity: 'error',
- reason:
- 'This dataset contains remote files. If you would like to validate with remote files, use the --remoteFiles option.',
- },
- 115: {
- key: 'EMPTY_DATASET_NAME',
- severity: 'warning',
- reason:
- 'The Name field of dataset_description.json is present but empty of visible characters.',
- },
- 123: {
- key: 'INVALID JSON ENCODING',
- severity: 'error',
- reason: 'JSON files must be valid utf-8.',
- },
- 124: {
- key: 'INVALID_TSV_UNITS',
- severity: 'error',
- reason:
- 'Units in .tsv files must be valid SI units as described in the BIDS spec Appendix V (https://bids-specification.readthedocs.io/en/stable/99-appendices/05-units.html).',
- },
- 125: {
- key: 'CHANNELS_COLUMN_STATUS',
- severity: 'error',
- reason:
- 'Status column in channels.tsv files must contain only one of two values: good or bad. Per the BIDS spec: (https://bids-specification.readthedocs.io/en/stable/04-modality-specific-files/04-intracranial-electroencephalography.html#channels-description-_channelstsv).',
- },
- 126: {
- key: 'MISSING_TSV_COLUMN_TIME',
- severity: 'error',
- reason: '*_blood.tsv require a time column.',
- },
- 127: {
- key: 'NOT_IN_USE',
- severity: 'error',
- reason: 'Code 127 is currently not used or reserved.',
- },
- 128: {
- key: 'NO_GENETIC_DATABASE',
- severity: 'error',
- reason:
- 'A genetic_info.json file is present but no Database field present in Genetics object in dataset_description.json.',
- },
- 129: {
- key: 'SCANS_FILENAME_NOT_MATCH_DATASET',
- severity: 'error',
- reason:
- 'The filename in scans.tsv file does not match what is present in the BIDS dataset.',
- },
- 130: {
- key: 'CHANNELS_COLUMN_TYPE_UPPER_CASE',
- severity: 'error',
- reason:
- 'Type column in channels.tsv files should consist of upper-case characters.',
- },
- 131: {
- key: 'CHANNELS_COLUMN_TYPE',
- severity: 'error',
- reason:
- 'Type column in channels.tsv files should only consist of values allowed in the specification for MEG/EEG/iEEG data.',
- },
- 133: {
- key: 'LABELING_TYPE_MUST_DEFINE',
- severity: 'error',
- reason:
- "You should define 'ArterialSpinLabelingType' for this file. 'ArterialSpinLabelingType' can be CASL, PCASL, PASL.",
- },
- 134: {
- key: 'LABELING_DURATION_MUST_DEFINE',
- severity: 'error',
- reason:
- "You should define 'LabelingDuration' for this file. 'LabelingDuration' is the total duration of the labeling pulse train, in seconds, corresponding to the temporal width of the labeling bolus for `(P)CASL`. In case all control-label volumes (or deltam or CBF) have the same `LabelingDuration`, a scalar must be specified. In case the control-label volumes (or deltam or cbf) have a different `LabelingDuration`, an array of numbers must be specified, for which any `m0scan` in the timeseries has a `LabelingDuration` of zero. In case an array of numbers is provided, its length should be equal to the number of volumes specified in `*_aslcontext.tsv`. Corresponds to DICOM Tag 0018,9258 `ASL Pulse Train Duration`.",
- },
- 135: {
- key: 'POST_LABELING_DELAY_MUST_DEFINE',
- severity: 'error',
- reason:
- "You should define 'PostLabelingDelay' for this file. 'PostLabelingDelay' is the time, in seconds, after the end of the labeling (for (P)CASL) or middle of the labeling pulse (for PASL) until the middle of the excitation pulse applied to the imaging slab (for 3D acquisition) or first slice (for 2D acquisition). Can be a number (for a single-PLD time series) or an array of numbers (for multi-PLD and Look-Locker). In the latter case, the array of numbers contains the PLD of each volume (i.e. each 'control' and 'label') in the acquisition order. Any image within the time-series without a PLD (e.g. an 'm0scan') is indicated by a zero. Based on DICOM Tags 0018,9079 Inversion Times and 0018,0082 InversionTime.",
- },
- 136: {
- key: 'BACKGROUND_SUPPRESSION_MUST_DEFINE',
- severity: 'error',
- reason:
- "You should define 'BackgroundSuppression' for this file. 'BackGroundSuppression' is a boolean indicating if background suppression is used.",
- },
- 137: {
- key: 'VASCULAR_CRUSHING_MUST_DEFINE',
- severity: 'warning',
- reason:
- "It is recommended to define 'VascularCrushing' for this file. 'VascularCrushing' is a boolean value indicating if an ASL crusher method is used.",
- },
- 138: {
- key: 'PULSE_SEQUENCE_DETAILS_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'PulseSequenceDetails' for this file. 'PulseSequenceDetails' is the information beyond pulse sequence type that identifies the specific pulse sequence used (for example, 'Standard Siemens Sequence distributed with the VB17 software', 'Siemens WIP ### version #.##', or 'Sequence written by X using a version compiled on MM/DD/YYYY').",
- },
- 139: {
- key: 'BLACKLISTED_MODALITY',
- severity: 'error',
- reason:
- 'Found a modality that has been blacklisted through validator configuration.',
- },
- 140: {
- key: '140_EMPTY',
- severity: 'warning',
- reason: '',
- },
- 141: {
- key: '141_EMPTY',
- severity: 'warning',
- reason: '',
- },
- 142: {
- key: 'LABELING_SLAB_THICKNESS_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'LabelingSlabThickness' for this file. 'LabelingSlabThickness' is the thickness of the labeling slab in millimeters. For non-selective FAIR a zero is entered. Corresponds to DICOM Tag 0018,9254 ASL Slab Thickness.",
- },
- 143: {
- key: 'ACQUISITION_VOXELSIZE_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'AcquisitionVoxelSize' for this file. 'AcquisitionVoxelSize' is an array of numbers with a length of 3, in millimeters. This parameter denotes the original acquisition voxel size, excluding any inter-slice gaps and before any interpolation or resampling within reconstruction or image processing. Any point spread function effects (e.g. due to T2-blurring) that would decrease the effective resolution are not considered here.",
- },
- 144: {
- key: 'BACKGROUND_SUPPRESSION_PULSE_TIME_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'BackgroundSuppressionPulseTime' for this file, when the 'BackgroundSuppression' is set to true. 'BackGroundSuppressionPulseTime' is an array of numbers containing timing, in seconds, of the background suppression pulses with respect to the start of the labeling. In case of multi-PLD with different background suppression pulse times, only the pulse time of the first PLD should be defined.",
- },
- 145: {
- key: 'VASCULAR_CRUCHING_VENC_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'VascularCrushingVENC' for this file, when the 'VascularCrushing' is set to true. 'VascularCrushingVENC' is the crusher gradient strength, in centimeters per second. Specify either one number for the total time-series, or provide an array of numbers, for example when using QUASAR, using the value zero to identify volumes for which 'VascularCrushing' was turned off. Corresponds to DICOM Tag 0018,925A ASL Crusher Flow Limit.",
- },
- 147: {
- key: 'PASL_BOLUS_CUT_OFF_FLAG',
- severity: 'error',
- reason:
- "You should define the 'BolusCutOffFlag' for this file. 'BolusCutOffFlag' is a boolean indicating if a bolus cut-off technique is used. Corresponds to DICOM Tag 0018,925C ASL Bolus Cut-off Flag.",
- },
- 149: {
- key: 'PASL_BOLUS_CUT_OFF_DELAY_TIME',
- severity: 'error',
- reason:
- "It is required to define 'BolusCutOffDelayTime' for this file, when 'BolusCutOffFlag' is set to true. 'BolusCutOffDelayTime' is the duration between the end of the labeling and the start of the bolus cut-off saturation pulse(s), in seconds. This can be a number or array of numbers, of which the values must be non-negative and monotonically increasing, depending on the number of bolus cut-off saturation pulses. For Q2TIPS, only the values for the first and last bolus cut-off saturation pulses are provided. Based on DICOM Tag 0018,925F ASL Bolus Cut-off Delay Time.",
- },
- 150: {
- key: 'PASL_BOLUS_CUT_OFF_TECHNIQUE',
- severity: 'error',
- reason:
- "It is required to define 'BolusCutOffTechnique' for this file, when 'BolusCutOffFlag' is set to true. 'BolusCutOffTechnique' is the name of the technique used (e.g. Q2TIPS, QUIPSS, QUIPSSII). Corresponds to DICOM Tag 0018,925E ASL Bolus Cut-off Technique.",
- },
- 153: {
- key: 'M0Type_NOT_SET',
- severity: 'error',
- reason:
- "You should define the 'M0Type' for this file. 'M0Type' describes the presence of M0 information, as either: “Separate” when a separate `*_m0scan.nii[.gz]` is present, “Included” when an m0scan volume is contained within the current ‘*_asl.nii[.gz]’, “Estimate” when a single whole-brain M0 value is provided, or “Absent” when no specific M0 information is present.",
- },
- 154: {
- key: 'M0Type_SET_INCORRECTLY',
- severity: 'error',
- reason:
- "M0Type was not defined correctly. If 'M0Type' is equal to included, the corresponding '*_aslcontext.tsv' should contain the 'm0scan' volume.",
- },
- 155: {
- key: 'MRACQUISITIONTYPE_MUST_DEFINE',
- severity: 'error',
- reason:
- "You should define 'MRAcquisitionType' for this file. 'MRAcquistionType' is the type of sequence readout with possible values: `2D` or `3D`. Corresponds to DICOM Tag 0018,0023 `MR Acquisition Type`.",
- },
- 156: {
- key: 'ACQUISITION_VOXELSIZE_WRONG',
- severity: 'warning',
- reason:
- "The 'AcquisitionVoxelSize' field length is not 3. 'AcquisitionVoxelSize' should be defined as an array of numbers with a length of 3, in millimeters. This parameter denotes the original acquisition voxel size, excluding any inter-slice gaps and before any interpolation or resampling within reconstruction or image processing. Any point spread function effects (e.g. due to T2-blurring) that would decrease the effective resolution are not considered here.",
- },
- 157: {
- key: 'LABELLING_DURATION_LENGTH_NOT_MATCHING_NIFTI',
- severity: 'error',
- reason:
- "The number of values for 'LabelingDuration' for this file does not match the 4th dimension of the NIfTI header. 'LabelingDuration' is the total duration of the labeling pulse train, in seconds, corresponding to the temporal width of the labeling bolus for `(P)CASL`. In case all control-label volumes (or deltam or CBF) have the same `LabelingDuration`, a scalar must be specified. In case the control-label volumes (or deltam or cbf) have a different `LabelingDuration`, an array of numbers must be specified, for which any `m0scan` in the timeseries has a `LabelingDuration` of zero. In case an array of numbers is provided, its length should be equal to the number of volumes specified in `*_aslcontext.tsv`. Corresponds to DICOM Tag 0018,9258 `ASL Pulse Train Duration`.",
- },
- 164: {
- key: 'ASL_MANUFACTURER_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'Manufacturer' for this file. 'Manufacturer' is the manufacturer of the equipment that produced the composite instances. Corresponds to DICOM Tag 0008, 0070 Manufacturer",
- },
- 165: {
- key: 'ASLCONTEXT_TSV_NOT_CONSISTENT',
- severity: 'error',
- reason:
- "The number of volumes in the '*_aslcontext.tsv' for this file does not match the number of values in the NIfTI header.",
- },
- 166: {
- key: 'LOOK_LOCKER_FLIP_ANGLE_MISSING',
- severity: 'error',
- reason:
- "You should define 'FlipAngle' for this file, in case of a LookLocker acquisition. 'FlipAngle' is the flip angle (FA) for the acquisition, specified in degrees. Corresponds to: DICOM Tag 0018, 1314 `Flip Angle`. The data type number may apply to files from any MRI modality concerned with a single value for this field, or to the files in a file collection where the value of this field is iterated using the flip entity. The data type array provides a value for each volume in a 4D dataset and should only be used when the volume timing is critical for interpretation of the data, such as in ASL or variable flip angle fMRI sequences.",
- },
- 167: {
- key: 'FLIP_ANGLE_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'FlipAngle' for this file. 'FlipAngle' is the flip angle (FA) for the acquisition, specified in degrees. Corresponds to: DICOM Tag 0018, 1314 `Flip Angle`. The data type number may apply to files from any MRI modality concerned with a single value for this field, or to the files in a file collection where the value of this field is iterated using the flip entity. The data type array provides a value for each volume in a 4D dataset and should only be used when the volume timing is critical for interpretation of the data, such as in ASL or variable flip angle fMRI sequences.",
- },
- 168: {
- key: 'FLIP_ANGLE_NOT_MATCHING_NIFTI',
- severity: 'error',
- reason:
- "The number of values for 'FlipAngle' for this file does not match the 4th dimension of the NIfTI header. 'FlipAngle' is the flip angle (FA) for the acquisition, specified in degrees. Corresponds to: DICOM Tag 0018, 1314 `Flip Angle`. The data type number may apply to files from any MRI modality concerned with a single value for this field, or to the files in a file collection where the value of this field is iterated using the flip entity. The data type array provides a value for each volume in a 4D dataset and should only be used when the volume timing is critical for interpretation of the data, such as in ASL or variable flip angle fMRI sequences.",
- },
- 169: {
- key: 'LABELING_DURATION_PASL_INCONSISTENT',
- severity: 'error',
- reason:
- "The 'LabelingDuration' for PASL 'ArterialSpinLabelingType' can be only a numerical value put to zero or unset. 'LabelingDuration' is the total duration of the labeling pulse train, in seconds, corresponding to the temporal width of the labeling bolus for `(P)CASL`. In case all control-label volumes (or deltam or CBF) have the same `LabelingDuration`, a scalar must be specified. In case the control-label volumes (or deltam or cbf) have a different `LabelingDuration`, an array of numbers must be specified, for which any `m0scan` in the timeseries has a `LabelingDuration` of zero. In case an array of numbers is provided, its length should be equal to the number of volumes specified in `*_aslcontext.tsv`. Corresponds to DICOM Tag 0018,9258 `ASL Pulse Train Duration`.",
- },
- 170: {
- key: 'CONTINOUS_RECORDING_MISSING_JSON',
- severity: 'error',
- reason:
- 'Continous recording data files are required to have an associated JSON metadata file.',
- },
- 171: {
- key: 'VOLUME_TIMING_MISSING_ACQUISITION_DURATION',
- severity: 'error',
- reason:
- "The field 'VolumeTiming' requires 'AcquisitionDuration' or 'SliceTiming' to be defined.",
- },
- 172: {
- key: 'FLIP_ANGLE_NOT_MATCHING_ASLCONTEXT_TSV',
- severity: 'error',
- reason:
- "The number of values for 'FlipAngle' for this file does not match the number of volumes in the 'sub-[_ses-][_acq-][_rec-][_run-]_aslcontext.tsv'. 'FlipAngle' is the flip angle (FA) for the acquisition, specified in degrees. Corresponds to: DICOM Tag 0018, 1314 `Flip Angle`. The data type number may apply to files from any MRI modality concerned with a single value for this field, or to the files in a file collection where the value of this field is iterated using the flip entity. The data type array provides a value for each volume in a 4D dataset and should only be used when the volume timing is critical for interpretation of the data, such as in ASL or variable flip angle fMRI sequences.",
- },
- 173: {
- key: 'POST_LABELING_DELAY_NOT_MATCHING_NIFTI',
- severity: 'error',
- reason:
- "The number of values for 'PostLabelingDelay' for this file does not match the 4th dimension of the NIfTI header. 'PostLabelingDelay' is the time, in seconds, after the end of the labeling (for (P)CASL) or middle of the labeling pulse (for PASL) until the middle of the excitation pulse applied to the imaging slab (for 3D acquisition) or first slice (for 2D acquisition). Can be a number (for a single-PLD time series) or an array of numbers (for multi-PLD and Look-Locker). In the latter case, the array of numbers contains the PLD of each volume (i.e. each 'control' and 'label') in the acquisition order. Any image within the time-series without a PLD (e.g. an 'm0scan') is indicated by a zero. Based on DICOM Tags 0018,9079 Inversion Times and 0018,0082 InversionTime.",
- },
- 174: {
- key: 'POST_LABELING_DELAY_NOT_MATCHING_ASLCONTEXT_TSV',
- severity: 'error',
- reason:
- "'The number of values for PostLabelingDelay' for this file does not match the number of volumes in the 'sub-[_ses-][_acq-][_rec-][_run-]_aslcontext.tsv'.'PostLabelingDelay' is the time, in seconds, after the end of the labeling (for (P)CASL) or middle of the labeling pulse (for PASL) until the middle of the excitation pulse applied to the imaging slab (for 3D acquisition) or first slice (for 2D acquisition). Can be a number (for a single-PLD time series) or an array of numbers (for multi-PLD and Look-Locker). In the latter case, the array of numbers contains the PLD of each volume (i.e. each 'control' and 'label') in the acquisition order. Any image within the time-series without a PLD (e.g. an 'm0scan') is indicated by a zero. Based on DICOM Tags 0018,9079 Inversion Times and 0018,0082 InversionTime.",
- },
- 175: {
- key: 'LABELLING_DURATION_NOT_MATCHING_ASLCONTEXT_TSV',
- severity: 'error',
- reason:
- "The number of values for 'LabelingDuration' for this file does not match the number of volumes in the 'sub-[_ses-][_acq-][_rec-][_run-]_aslcontext.tsv'. 'LabelingDuration' is the total duration of the labeling pulse train, in seconds, corresponding to the temporal width of the labeling bolus for `(P)CASL`. In case all control-label volumes (or deltam or CBF) have the same `LabelingDuration`, a scalar must be specified. In case the control-label volumes (or deltam or cbf) have a different `LabelingDuration`, an array of numbers must be specified, for which any `m0scan` in the timeseries has a `LabelingDuration` of zero. In case an array of numbers is provided, its length should be equal to the number of volumes specified in `*_aslcontext.tsv`. Corresponds to DICOM Tag 0018,9258 `ASL Pulse Train Duration`.",
- },
- 176: {
- key: 'ASLCONTEXT_TSV_INCONSISTENT',
- severity: 'error',
- reason:
- "In the 'sub-[_ses-][_acq-][_rec-][_run-]_aslcontext.tsv', the 'volume_type' can only be filled with volumes ['cbf' ,'m0scan', 'label', 'control', 'deltam'].",
- },
- 177: {
- key: 'REPETITIONTIMEPREPARATION_NOT_MATCHING_ASLCONTEXT_TSV',
- severity: 'error',
- reason:
- "The number of values of 'RepetitionTimePreparation' for this file does not match the number of volumes in the 'sub-[_ses-][_acq-][_rec-][_run-]_aslcontext.tsv'. 'RepetitionTimePreparation' is the interval, in seconds, that it takes a preparation pulse block to re-appear at the beginning of the succeeding (essentially identical) pulse sequence block. The data type number may apply to files from any MRI modality concerned with a single value for this field. The data type array provides a value for each volume in a 4D dataset and should only be used when the volume timing is critical for interpretation of the data, such as in ASL.",
- },
- 178: {
- key: 'VOLUME_TIMING_AND_REPETITION_TIME_MUTUALLY_EXCLUSIVE',
- severity: 'error',
- reason:
- "The fields 'VolumeTiming' and 'RepetitionTime' for this file are mutually exclusive. Choose 'RepetitionTime' when the same repetition time is used for all volumes, or 'VolumeTiming' when variable times are used.",
- },
- 179: {
- key: 'BACKGROUND_SUPPRESSION_PULSE_NUMBER_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'BackgroundSuppressionNumberPulses' for this file, in case 'BackgroundSuppression' is set to true. 'BackgroundSuppressionNumberPulses' is the number of background suppression pulses used. Note that this excludes any effect of background suppression pulses applied before the labeling.",
- },
- 180: {
- key: 'BACKGROUND_SUPPRESSION_PULSE_NUMBER_NOT_CONSISTENT',
- severity: 'warning',
- reason:
- "The 'BackgroundSuppressionNumberPulses' field is not consistent with the length of 'BackgroundSuppressionPulseTime'. 'BackgroundSuppressionNumberPulses' is the number of background suppression pulses used. Note that this excludes any effect of background suppression pulses applied before the labeling.",
- },
- 181: {
- key: 'TOTAL_ACQUIRED_VOLUMES_NOT_CONSISTENT',
- severity: 'warning',
- reason:
- "The number of values for 'TotalAcquiredVolumes' for this file does not match number of volumes in the 'sub-[_ses-][_acq-][_rec-][_run-]_aslcontext.tsv'. 'TotalAcquiredVolumes' is the original number of 3D volumes acquired for each volume defined in the 'sub-[_ses-][_acq-][_rec-][_run-]_aslcontext.tsv'.",
- },
- 182: {
- key: 'MAGNETIC_FIELD_STRENGTH_MISSING',
- severity: 'error',
- reason:
- "You should define 'MagneticFieldStrength' for this file. 'MagneticFieldStrength' is the nominal field strength of MR magnet in Tesla. Corresponds to DICOM Tag 0018,0087 'Magnetic Field Strength'.",
- },
- 183: {
- key: 'SLICE_TIMING_NOT_DEFINED_2D_ASL',
- severity: 'error',
- reason:
- "'You should define SliceTiming', in case 'SequenceType' is set to a 2D sequence. 'SliceTiming' is the time at which each slice was acquired within each volume (frame) of the acquisition. Slice timing is not slice order -- rather, it is a list of times containing the time (in seconds) of each slice acquisition in relation to the beginning of volume acquisition. The list goes through the slices along the slice axis in the slice encoding dimension (see below). Note that to ensure the proper interpretation of the `SliceTiming` field, it is important to check if the OPTIONAL `SliceEncodingDirection` exists. In particular, if `SliceEncodingDirection` is negative, the entries in `SliceTiming` are defined in reverse order with respect to the slice axis, such that the final entry in the `SliceTiming` list is the time of acquisition of slice 0. Without this parameter slice time correction will not be possible. ",
- },
- 184: {
- key: 'POST_LABELING_DELAY_GREATER',
- severity: 'warning',
- reason:
- "'PostLabelingDelay' is greater than 10, are you sure it's expressed in seconds? 'PostLabelingDelay' is the time, in seconds, after the end of the labeling (for (P)CASL) or middle of the labeling pulse (for PASL) until the middle of the excitation pulse applied to the imaging slab (for 3D acquisition) or first slice (for 2D acquisition). Can be a number (for a single-PLD time series) or an array of numbers (for multi-PLD and Look-Locker). In the latter case, the array of numbers contains the PLD of each volume (i.e. each 'control' and 'label') in the acquisition order. Any image within the time-series without a PLD (e.g. an 'm0scan') is indicated by a zero. Based on DICOM Tags 0018,9079 Inversion Times and 0018,0082 InversionTime.",
- },
- 186: {
- key: 'BOLUS_CUT_OFF_DELAY_TIME_GREATER',
- severity: 'warning',
- reason:
- "'BolusCutOffDelayTime' is greater than 10, are you sure it's expressed in seconds? 'BolusCutOffDelayTime' is duration between the end of the labeling and the start of the bolus cut-off saturation pulse(s), in seconds. This can be a number or array of numbers, of which the values must be non-negative and monotonically increasing, depending on the number of bolus cut-off saturation pulses. For Q2TIPS, only the values for the first and last bolus cut-off saturation pulses are provided. Based on DICOM Tag 0018,925F ASL Bolus Cut-off Delay Time.",
- },
- 187: {
- key: 'LABELING_DURATION_GREATER',
- severity: 'warning',
- reason:
- "'LabelingDuration' is greater than 10, are you sure it's expressed in seconds? 'LabelingDuration' is the total duration of the labeling pulse train, in seconds, corresponding to the temporal width of the labeling bolus for `(P)CASL`. In case all control-label volumes (or deltam or CBF) have the same `LabelingDuration`, a scalar must be specified. In case the control-label volumes (or deltam or cbf) have a different `LabelingDuration`, an array of numbers must be specified, for which any `m0scan` in the timeseries has a `LabelingDuration` of zero. In case an array of numbers is provided, its length should be equal to the number of volumes specified in `*_aslcontext.tsv`. Corresponds to DICOM Tag 0018,9258 `ASL Pulse Train Duration`.",
- },
- 188: {
- key: 'VOLUME_TIMING_NOT_MONOTONICALLY_INCREASING',
- severity: 'error',
- reason:
- "'VolumeTiming' is not monotonically increasing. 'VolumeTiming' is the time at which each volume was acquired during the acquisition, referring to the start of each readout in the ASL timeseries. Use this field instead of the 'RepetitionTime' field in the case that the ASL timeseries have a non-uniform time distance between acquired volumes. The list must have the same length as the 'sub-[_ses-][_acq-][_rec-][_run-]_aslcontext.tsv', and the numbers must be non-negative and monotonically increasing. If 'VolumeTiming' is defined, this requires acquisition time (TA) to be defined via 'AcquisitionDuration'.",
- },
- 189: {
- key: 'CASL_PCASL_NOT_ALLOWED_FIELDS',
- severity: 'error',
- reason:
- "You defined one of the not allowed fields in case of CASL or PCASL 'ArterialSpinLabelingType'. Please verify which field among 'PASLType', 'LabelingSlabThickness' 'BolusCutOffFlag', 'BolusCutOffTimingSequence', 'BolusCutOffDelayTime' and 'BolusCutOffTechnique' you have filled.",
- },
- 190: {
- key: 'PASL_NOT_ALLOWED_FIELDS',
- severity: 'error',
- reason:
- "You defined one of the not allowed fields in case of PASL 'ArterialSpinLabelingType'. Please verify which field among 'CASLType', 'PCASLType' 'LabelingPulseAverageGradient', 'LabelingPulseMaximumGradient', 'LabelingPulseAverageB1', 'LabelingPulseDuration', 'LabelingPulseFlipAngle', 'LabelingPulseInterval', 'LabelingDuration' you have filled.",
- },
- 191: {
- key: 'PCASL_CASL_LABELING_TYPE_NOT_ALLOWED',
- severity: 'error',
- reason:
- "You defined either the 'CASLType' with a PCASL 'LabellingType' or the 'PCASLType' with a CASL 'LabellingType'. This is not allowed, please check that these fields are filled correctly.",
- },
- 192: {
- key: 'BOLUS_CUT_OFF_DELAY_TIME_NOT_MONOTONICALLY_INCREASING',
- severity: 'error',
- reason:
- "'BolusCutOffDelayTime' is not monotonically increasing. 'BolusCutOffDelayTime' is the duration between the end of the labeling and the start of the bolus cut-off saturation pulse(s), in seconds. This can be a number or array of numbers, of which the values must be non-negative and monotonically increasing, depending on the number of bolus cut-off saturation pulses. For Q2TIPS, only the values for the first and last bolus cut-off saturation pulses are provided. Based on DICOM Tag 0018,925F ASL Bolus Cut-off Delay Time.",
- },
- 193: {
- key: 'ECHO_TIME_NOT_DEFINED',
- severity: 'error',
- reason:
- "You must define 'EchoTime' for this file. 'EchoTime' is the echo time (TE) for the acquisition, specified in seconds. Corresponds to DICOM Tag 0018, 0081 Echo Time (please note that the DICOM term is in milliseconds not seconds). The data type number may apply to files from any MRI modality concerned with a single value for this field, or to the files in a file collection where the value of this field is iterated using the echo entity. The data type array provides a value for each volume in a 4D dataset and should only be used when the volume timing is critical for interpretation of the data, such as in ASL or variable echo time fMRI sequences.",
- },
- 194: {
- key: 'MRACQUISITIONTYPE_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'MRAcquisitionType' for this file. 'MRAcquistionType' is the type of sequence readout with possible values: `2D` or `3D`. Corresponds to DICOM Tag 0018,0023 `MR Acquisition Type`.",
- },
- 195: {
- key: 'M0ESTIMATE_NOT_DEFINED',
- severity: 'error',
- reason:
- "You must define 'M0Estimate' for this file, in case 'M0Type' is defined as 'Estimate'. 'M0Estimate' is a single numerical whole-brain M0 value (referring to the M0 of blood), only if obtained externally (for example retrieved from CSF in a separate measurement).",
- },
- 196: {
- key: 'ECHO_TIME_NOT_CONSISTENT',
- severity: 'warning',
- reason:
- "The number of values for 'EchoTime' for this file does not match number of volumes in the 'sub-[_ses-][_acq-][_rec-][_run-]_aslcontext.tsv'. 'EchoTime' is the echo time (TE) for the acquisition, specified in seconds. ",
- },
- 197: {
- key: 'ECHO_TIME_ELEMENTS',
- severity: 'warning',
- reason:
- "The number of elements in the 'EchoTime' array should match the 'k' dimension of the corresponding NIfTI volume.",
- },
- 198: {
- key: 'M0Type_SET_INCORRECTLY_TO_ABSENT',
- severity: 'error',
- reason:
- "You defined M0Type as 'absent' while including a separate '*_m0scan.nii[.gz]' and '*_m0scan.json', or defining the 'M0Estimate' field. This is not allowed, please check that this field are filled correctly.",
- },
- 199: {
- key: 'M0Type_SET_INCORRECTLY_TO_ABSENT_IN_ASLCONTEXT',
- severity: 'error',
- reason:
- "You defined M0Type as 'absent' while including an m0scan volume within the '*_aslcontext.tsv'. This is not allowed, please check that this field are filled correctly.",
- },
- 200: {
- key: 'REPETITION_TIME_PREPARATION_MISSING',
- severity: 'error',
- reason:
- "You must define 'RepetitionTimePreparation' for this file. 'RepetitionTimePreparation' is the interval, in seconds, that it takes a preparation pulse block to re-appear at the beginning of the succeeding (essentially identical) pulse sequence block. The data type number may apply to files from any MRI modality concerned with a single value for this field. The data type array provides a value for each volume in a 4D dataset and should only be used when the volume timing is critical for interpretation of the data, such as in ASL.",
- },
- 201: {
- key: 'REPETITIONTIME_PREPARATION_NOT_CONSISTENT',
- severity: 'error',
- reason:
- "The number of values for 'RepetitionTimePreparation' for this file does not match the 4th dimension of the NIfTI header. 'RepetitionTimePreparation' is the interval, in seconds, that it takes a preparation pulse block to re-appear at the beginning of the succeeding (essentially identical) pulse sequence block. The data type number may apply to files from any MRI modality concerned with a single value for this field. The data type array provides a value for each volume in a 4D dataset and should only be used when the volume timing is critical for interpretation of the data, such as in ASL.",
- },
- 202: {
- key: 'M0Type_SET_INCORRECTLY',
- severity: 'error',
- reason:
- "M0Type was not defined correctly. If 'M0Type' is equal to separate, the dataset should include a *_m0scan.nii[.gz] and *_m0scan.json file.",
- },
- 211: {
- key: 'TSV_MISSING_REQUIRED_COLUMN',
- severity: 'error',
- reason:
- 'A TSV file is missing a column required by a value in its JSON sidecar.',
- },
- 212: {
- key: 'PARTICIPANT_ID_PATTERN',
- severity: 'error',
- reason:
- 'Participant_id column labels must consist of the pattern "sub-".',
- },
- 213: {
- key: 'README_FILE_SMALL',
- severity: 'warning',
- reason:
- 'The recommended file /README is very small. Please consider expanding it with additional information about the dataset.',
- },
- 214: {
- key: 'SAMPLES_TSV_MISSING',
- severity: 'error',
- reason:
- 'The compulsory file /samples.tsv is missing. See Section 03 (Modality agnostic files) of the BIDS specification.',
- },
- 215: {
- key: 'SAMPLE_ID_PATTERN',
- severity: 'error',
- reason:
- 'sample_id column labels must consist of the pattern "sample-".',
- },
- 216: {
- key: 'SAMPLE_ID_COLUMN',
- severity: 'error',
- reason: "Samples .tsv files must have a 'sample_id' column.",
- },
- 217: {
- key: 'PARTICIPANT_ID_COLUMN',
- severity: 'error',
- reason: "Samples .tsv files must have a 'participant_id' column.",
- },
- 218: {
- key: 'SAMPLE_TYPE_COLUMN',
- severity: 'error',
- reason: "Samples .tsv files must have a 'sample_type' column.",
- },
- 219: {
- key: 'SAMPLE_TYPE_VALUE',
- severity: 'error',
- reason:
- 'sample_type MUST consist of one of the following values: cell line, in vitro differentiated cells, primary cell, cell-free sample, cloning host, tissue, whole organisms, organoid or technical sample.',
- },
- 220: {
- key: 'SAMPLE_ID_DUPLICATE',
- severity: 'error',
- reason:
- 'Each sample from a same subject MUST be described by one and only one row.',
- },
- 221: {
- key: 'PIXEL_SIZE_INCONSISTENT',
- severity: 'error',
- reason:
- 'PixelSize need to be consistent with PhysicalSizeX, PhysicalSizeY and PhysicalSizeZ OME metadata fields',
- },
- 222: {
- key: 'INVALID_PIXEL_SIZE_UNIT',
- severity: 'warning',
- reason: 'PixelSize consistency is only validated for "mm", "µm" and "nm".',
- },
- 223: {
- key: 'CHUNK_TRANSFORMATION_MATRIX_MISSING',
- severity: 'warning',
- reason:
- "It is recommended to define 'ChunkTransformationMatrix' for this file.",
- },
- 224: {
- key: 'OPTIONAL_FIELD_INCONSISTENT',
- severity: 'error',
- reason: 'Optional JSON field is not consistent with the OME-TIFF metadata',
- },
- 225: {
- key: 'NO_VALID_JSON',
- severity: 'error',
- reason: 'No valid JSON file found for this file',
- },
- 226: {
- key: 'UNSUPPORTED_BIG_TIFF',
- severity: 'warning',
- reason: 'Metadata consistency check skipped for BigTiff OME-TIFF file',
- },
- 227: {
- key: 'INCONSISTENT_TIFF_EXTENSION',
- severity: 'error',
- reason: 'Inconsistent TIFF file type and extension',
- },
- 228: {
- key: 'MULTIPLE_README_FILES',
- severity: 'error',
- reason:
- 'A BIDS dataset MUST NOT contain more than one `README` file (with or without extension) at its root directory.',
- },
- 229: {
- key: 'INCORRECT_ORDER_TSV_COLUMN_CHANNELS_IEEG',
- severity: 'error',
- reason:
- "The column names of the IEEG channels file must be in the following order ['name', 'type', 'units', 'low_cutoff', 'high_cutoff']",
- },
- 230: {
- key: 'INCORRECT_ORDER_TSV_COLUMN_CHANNELS_EEG',
- severity: 'error',
- reason:
- "The column names of the EEG channels file must be in the following order ['name', 'type', 'units']",
- },
- 231: {
- key: 'TSV_COLUMN_HEADER_DUPLICATE',
- severity: 'error',
- reason:
- 'Two elements in the first row of a TSV are the same. Each column header must be unique.',
- },
- 232: {
- key: 'TSV_COLUMN_HEADER_NA',
- severity: 'error',
- reason:
- 'An element in a tsv header is "n/a". A different header name should be chosen.',
- },
- 233: {
- key: 'MISSING_TSV_COLUMN_NIRS_OPTODES',
- severity: 'error',
- reason:
- "The column names of the optodes file must begin with ['name', 'type', 'x', 'y', 'z']",
- },
- 234: {
- key: 'MISSING_TSV_COLUMN_NIRS_CHANNELS',
- severity: 'error',
- reason:
- "The column names of the channels file must begin with ['name', 'type', 'source', 'detector', 'wavelength_nominal', 'units']",
- },
- 235: {
- key: 'MOTION_COMPONENT_IN_WRONG_COLUMN',
- severity: 'error',
- reason:
- "The 'component' column must be the second column in the channels.tsv file.",
- },
- 236: {
- key: 'MOTION_COMPONENT_INVLAID_VALUE',
- severity: 'error',
- reason:
- "Values in the 'component' column must be one of ['x', 'y', 'z', 'quat_x', 'quat_y', 'quat_z', 'quat_w', 'n/a'].",
- },
- 237: {
- key: 'PET_JSON_KEY_REQUIRED',
- severity: 'error',
- reason: 'A PET image JSON sidecar is missing a required field.',
- },
-}
diff --git a/bids-validator/utils/json.js b/bids-validator/utils/json.js
deleted file mode 100644
index ad3785ac..00000000
--- a/bids-validator/utils/json.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import Issue from './issues'
-import { JSHINT } from 'jshint'
-
-/**
- * Similar to native JSON.parse but returns a promise and
- * runs jshint for more thorough error reporting
- */
-function parse(file, contents) {
- return new Promise((resolve) => {
- let jsObj
- let err
- try {
- jsObj = JSON.parse(contents)
- } catch (exception) {
- err = exception
- } finally {
- if (err) {
- jshint(file, contents, function (issues) {
- resolve({ issues, parsed: null })
- })
- } else {
- resolve({ issues: [], parsed: jsObj })
- }
- }
- })
-}
-
-/**
- * JSHint
- *
- * Checks known invalid JSON file
- * content in order to produce a
- * verbose error message.
- */
-function jshint(file, contents, callback) {
- var issues = []
- if (!JSHINT(contents)) {
- var out = JSHINT.data()
- for (var i = 0; out.errors.length > i; ++i) {
- var error = out.errors[i]
- if (error) {
- issues.push(
- new Issue({
- code: 27,
- file: file,
- line: error.line ? error.line : null,
- character: error.character ? error.character : null,
- reason: error.reason ? error.reason : null,
- evidence: error.evidence ? error.evidence : null,
- }),
- )
- }
- }
- }
- callback(issues)
-}
-
-export default {
- parse,
- jshint,
-}
diff --git a/bids-validator/utils/modalities.js b/bids-validator/utils/modalities.js
deleted file mode 100644
index 88d32735..00000000
--- a/bids-validator/utils/modalities.js
+++ /dev/null
@@ -1,75 +0,0 @@
-export default {
- /**
- * Group
- *
- * Takes an array of modalities and looks for
- * groupings defined in 'modalityGroups' and
- * replaces any perfectly matched groupings with
- * the grouping object key.
- */
- group: function (modalities) {
- var modalityGroups = [
- [['magnitude1', 'magnitude2', 'phase1', 'phase2'], 'fieldmap'],
- [['magnitude1', 'magnitude2', 'phasediff'], 'fieldmap'],
- [['magnitude1', 'phasediff'], 'fieldmap'],
- [['magnitude', 'fieldmap'], 'fieldmap'],
- [['epi'], 'fieldmap'],
- ]
-
- for (
- var groupTouple_i = 0;
- groupTouple_i < modalityGroups.length;
- groupTouple_i++
- ) {
- var groupSet = modalityGroups[groupTouple_i][0]
- var groupName = modalityGroups[groupTouple_i][1]
- var match = true
- for (var i = 0; i < groupSet.length; i++) {
- if (modalities.indexOf(groupSet[i]) === -1) {
- match = false
- }
- }
- if (match) {
- modalities.push(groupName)
- for (var j = 0; j < groupSet.length; j++) {
- modalities.splice(modalities.indexOf(groupSet[j]), 1)
- }
- }
- }
-
- return modalities
- },
- /*
- * Removed in #1122, but modified in BEP-009
- *
- * isCorrectModality: path => {
- * let isCorrectModality = false
- * // MRI
- * if (
- * path[0].includes('.nii') &&
- * ['anat', 'func', 'dwi', 'pet'].indexOf(path[1]) != -1
- * ) {
- * isCorrectModality = true
- * } else if (['.json', '.tsv'].some(v => path[0].includes(v))) {
- * const testPath = path[1]
- * switch (testPath) {
- * case 'meg':
- * // MEG
- * isCorrectModality = true
- * break
- * case 'eeg':
- * // EEG
- * isCorrectModality = true
- * break
- * case 'ieeg':
- * // iEEG
- * isCorrectModality = true
- * break
- * default:
- * break
- * }
- * }
- * return isCorrectModality
- * },
- */
-}
diff --git a/bids-validator/utils/options.js b/bids-validator/utils/options.js
deleted file mode 100644
index f428ce6f..00000000
--- a/bids-validator/utils/options.js
+++ /dev/null
@@ -1,105 +0,0 @@
-import path from 'path'
-import getFileStats from '../utils/files/getFileStats'
-import readFile from '../utils/files/readFile'
-import json from './json'
-import isNode from '../utils/isNode.js'
-
-let options
-
-export default {
- /**
- * Parse
- */
- parse: function (dir, args, callback) {
- options = args ? args : {}
- options = {
- ignoreWarnings: Boolean(options.ignoreWarnings),
- ignoreNiftiHeaders: Boolean(options.ignoreNiftiHeaders),
- ignoreSymlinks: Boolean(options.ignoreSymlinks),
- ignoreSubjectConsistency: Boolean(options.ignoreSubjectConsistency),
- blacklistModalities: options.blacklistModalities,
- verbose: Boolean(options.verbose),
- gitTreeMode: Boolean(options.gitTreeMode),
- remoteFiles: Boolean(options.remoteFiles),
- gitRef: options.gitRef || 'HEAD',
- config: options.config || {},
- }
- if (options.config && typeof options.config !== 'boolean') {
- this.parseConfig(dir, options.config, function (issues, config) {
- options.config = config
- callback(issues, options)
- })
- } else {
- callback(null, options)
- }
- },
-
- getOptions: () => {
- const readonlyOptions = Object.freeze({ ...options })
- return readonlyOptions
- },
-
- /**
- * Load Config
- */
- loadConfig: function (dir, config, callback) {
- if (typeof config === 'string') {
- let configFile
- if (isNode) {
- const configPath = path.isAbsolute(config)
- ? config
- : path.join(dir, config)
- configFile = { path: configPath }
- } else {
- // Grab file from FileList if a path was provided
- configFile = [...dir].find((f) => f.webkitRelativePath === config)
- // No matching config, return a default
- if (!configFile) {
- return callback(null, configFile, JSON.stringify({}))
- }
- }
- configFile.stats = getFileStats(configFile)
- readFile(configFile)
- .then((contents) => {
- callback(null, configFile, contents)
- })
- .catch((issue) => {
- // If the config does not exist, issue 44 is returned
- if (issue.code === 44) {
- callback(null, configFile, JSON.stringify({}))
- } else {
- callback([issue], configFile, null)
- }
- })
- } else if (typeof config === 'object') {
- callback(null, { path: 'config' }, JSON.stringify(config))
- }
- },
-
- /**
- * Parse Config
- */
- parseConfig: function (dir, config, callback) {
- this.loadConfig(dir, config, function (issues, file, contents) {
- if (issues) {
- callback(issues, null)
- } else {
- json.parse(file, contents).then(({ issues, parsed: jsObj }) => {
- if (issues && issues.length > 0) {
- callback(issues, null)
- } else {
- const parsedConfig = {
- ignore: jsObj.ignore ? [].concat(jsObj.ignore) : [],
- warn: jsObj.warn ? [].concat(jsObj.warn) : [],
- error: jsObj.error ? [].concat(jsObj.error) : [],
- ignoredFiles: jsObj.ignoredFiles
- ? [].concat(jsObj.ignoredFiles)
- : [],
- }
- callback(null, parsedConfig)
- }
- })
- }
- })
- },
-}
diff --git a/bids-validator/utils/promise_limiter.js b/bids-validator/utils/promise_limiter.js
deleted file mode 100644
index a5d37959..00000000
--- a/bids-validator/utils/promise_limiter.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* limits promises to LIMIT to prevent memory overuse */
-
-import pLimit from 'p-limit'
-
-const LIMIT = 200
-
-export default pLimit(LIMIT)
diff --git a/bids-validator/utils/prototype.js b/bids-validator/utils/prototype.js
deleted file mode 100644
index 6a5825ce..00000000
--- a/bids-validator/utils/prototype.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Prototype
- *
- * A collection to extensions to native javascript prototypes.
- */
-
-// String - Ends With (Polyfill based on MDN recommendation)
-if (!String.prototype.endsWith) {
- String.prototype.endsWith = function (searchString, position) {
- var subjectString = this.toString()
- if (
- typeof position !== 'number' ||
- !isFinite(position) ||
- Math.floor(position) !== position ||
- position > subjectString.length
- ) {
- position = subjectString.length
- }
- position -= searchString.length
- var lastIndex = subjectString.indexOf(searchString, position)
- return lastIndex !== -1 && lastIndex === position
- }
-}
-
-// String - Includes
-if (!String.prototype.includes) {
- String.prototype.includes = function () {
- 'use strict'
- return String.prototype.indexOf.apply(this, arguments) !== -1
- }
-}
diff --git a/bids-validator/utils/summary/__tests__/collectDatatype.spec.js b/bids-validator/utils/summary/__tests__/collectDatatype.spec.js
deleted file mode 100644
index 425aa870..00000000
--- a/bids-validator/utils/summary/__tests__/collectDatatype.spec.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import {
- ds001421,
- ds001734,
- ds003400,
-} from '../../../tests/data/collectModalities-data'
-import collectDatatype from '../collectDataTypes'
-
-describe('collectDatatype()', () => {
- it('includes types such as T1w', () => {
- expect(collectDatatype(ds001734)).toEqual([
- 'magnitude1',
- 'magnitude2',
- 'phasediff',
- 'T1w',
- 'sbref',
- 'bold',
- 'events',
- ])
- expect(collectDatatype(ds001421)).toEqual(['pet', 'T1w'])
- })
- it('does not include T1w when missing', () => {
- expect(collectDatatype(ds003400)).not.toContain('T1w')
- })
-})
diff --git a/bids-validator/utils/summary/__tests__/collectModalities.spec.js b/bids-validator/utils/summary/__tests__/collectModalities.spec.js
deleted file mode 100644
index dd83b432..00000000
--- a/bids-validator/utils/summary/__tests__/collectModalities.spec.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import {
- ds000247,
- ds001421,
- ds001734,
- ds002718,
- ds003400,
-} from '../../../tests/data/collectModalities-data'
-import { collectModalities } from '../collectModalities'
-
-describe('collectModalities()', () => {
- it('returns correct values for a PET dataset', () => {
- expect(collectModalities(ds001421)).toEqual({
- primary: ['PET', 'MRI'],
- secondary: ['MRI_Structural'],
- })
- })
- it('returns correct values for an MRI dataset', () => {
- expect(collectModalities(ds001734)).toEqual({
- primary: ['MRI'],
- secondary: ['MRI_Functional', 'MRI_Structural'],
- })
- })
- it('returns correct values for an EEG dataset', () => {
- expect(collectModalities(ds002718)).toEqual({
- primary: ['EEG', 'MRI'],
- secondary: ['MRI_Structural'],
- })
- })
- it('returns correct values for an iEEG dataset', () => {
- expect(collectModalities(ds003400)).toEqual({
- primary: ['iEEG'],
- secondary: [],
- })
- })
- it('returns correct values for an MEG dataset', () => {
- expect(collectModalities(ds000247)).toEqual({
- primary: ['MEG', 'MRI'],
- secondary: ['MRI_Structural'],
- })
- })
- it('sorts other modalities ahead of MRI on ties', () => {
- const tied = [
- '/sub-01/ses-02/pet/sub-01_ses-02_pet.nii.gz',
- '/sub-01/ses-02/anat/sub-01_ses-02_T1w.nii',
- ]
- expect(collectModalities(tied)).toEqual({
- primary: ['PET', 'MRI'],
- secondary: ['MRI_Structural'],
- })
- })
- it('returns empty arrays when no matches are found', () => {
- expect(collectModalities([])).toEqual({
- primary: [],
- secondary: [],
- })
- })
-})
diff --git a/bids-validator/utils/summary/__tests__/collectPetFields.spec.js b/bids-validator/utils/summary/__tests__/collectPetFields.spec.js
deleted file mode 100644
index 4ef4a252..00000000
--- a/bids-validator/utils/summary/__tests__/collectPetFields.spec.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import collectPetFields, { orderedList } from '../collectPetFields.js'
-import jsonContentsDict from '../../../tests/data/pet001_jsonContentsDict'
-
-describe('collectPetFields()', () => {
- it('extracts an ordered list of pet specific fields', () => {
- expect(collectPetFields(jsonContentsDict)).toEqual({
- BodyPart: ['Brain'],
- ScannerManufacturer: ['Siemens'],
- ScannerManufacturersModelName: [
- 'High-Resolution Research Tomograph (HRRT, CTI/Siemens)',
- ],
- TracerName: ['CIMBI-36'],
- TracerRadionuclide: ['C11'],
- })
- })
-})
-
-describe('orderedList()', () => {
- it('reduces a tally object to an ordered list', () => {
- expect(orderedList({ a: 3, b: 5, c: 1 })).toEqual(['b', 'a', 'c'])
- })
- it('handles empty objects', () => {
- expect(orderedList({})).toEqual([])
- })
-})
diff --git a/bids-validator/utils/summary/__tests__/collectSubjectMetadata.spec.js b/bids-validator/utils/summary/__tests__/collectSubjectMetadata.spec.js
deleted file mode 100644
index 229bc4cf..00000000
--- a/bids-validator/utils/summary/__tests__/collectSubjectMetadata.spec.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import collectSubjectMetadata from '../collectSubjectMetadata.js'
-
-const CRLFParticipantsTsv = 'participant_id\tsex\tage\r\nsub-01\tM\t25\r\n'
-
-describe('collectSubjectMetadata()', () => {
- it('handles Windows newline characters in column row', () => {
- expect(collectSubjectMetadata(CRLFParticipantsTsv)).toEqual([
- {
- age: 25,
- participantId: '01',
- sex: 'M',
- },
- ])
- })
-})
diff --git a/bids-validator/utils/summary/checkForDerivatives.js b/bids-validator/utils/summary/checkForDerivatives.js
deleted file mode 100644
index 04dced0b..00000000
--- a/bids-validator/utils/summary/checkForDerivatives.js
+++ /dev/null
@@ -1,9 +0,0 @@
-const derivativesFilePattern = /^\/derivatives\/\w+re/
-
-export default function checkForDerivatives(files) {
- return (
- Object.values(files).findIndex((file) =>
- derivativesFilePattern.test(file.relativePath),
- ) !== -1
- )
-}
diff --git a/bids-validator/utils/summary/collectDataTypes.js b/bids-validator/utils/summary/collectDataTypes.js
deleted file mode 100644
index 085d277d..00000000
--- a/bids-validator/utils/summary/collectDataTypes.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import type from '../type'
-
-/**
- * Collect all datatype suffixes for files that match a supported modality
- **/
-export const collectDataTypes = (filenames) => {
- const datatypes = []
- for (const path of filenames) {
- const pathParts = path.split('_')
- const suffix = pathParts[pathParts.length - 1]
-
- // check modality by data file extension ...
- // and capture data files for later sanity checks (when available)
- if (type.file.hasModality(path)) {
- // collect modality summary
- const dataType = suffix.slice(0, suffix.indexOf('.'))
- if (datatypes.indexOf(dataType) === -1) {
- datatypes.push(dataType)
- }
- }
- }
- return datatypes
-}
-
-export default collectDataTypes
diff --git a/bids-validator/utils/summary/collectModalities.js b/bids-validator/utils/summary/collectModalities.js
deleted file mode 100644
index d0e0a03a..00000000
--- a/bids-validator/utils/summary/collectModalities.js
+++ /dev/null
@@ -1,93 +0,0 @@
-import type from '../type'
-
-export const collectModalities = (filenames) => {
- const modalities = {
- MRI: 0,
- PET: 0,
- MEG: 0,
- EEG: 0,
- iEEG: 0,
- Microscopy: 0,
- NIRS: 0,
- }
- const secondary = {
- MRI_Diffusion: 0,
- MRI_Structural: 0,
- MRI_Functional: 0,
- MRI_Perfusion: 0,
- PET_Static: 0,
- PET_Dynamic: 0,
- iEEG_ECoG: 0,
- iEEG_SEEG: 0,
- }
- for (const path of filenames) {
- // MRI files
- if (type.file.isAnat(path)) {
- modalities.MRI++
- secondary.MRI_Structural++
- }
- if (type.file.isDWI(path)) {
- modalities.MRI++
- secondary.MRI_Diffusion++
- }
- if (type.file.isAsl(path)) {
- modalities.MRI++
- secondary.MRI_Perfusion++
- }
- if (type.file.isFunc(path) || type.file.isFuncBold(path)) {
- modalities.MRI++
- secondary.MRI_Functional++
- }
- if (type.file.isFieldMap(path)) {
- modalities.MRI++
- }
- if (type.file.isPET(path) || type.file.isPETBlood(path)) {
- modalities.PET++
- if (path.match('rec-acstat') || path.match('rec-nacstat')) {
- secondary.PET_Static++
- } else if (path.match('rec-acdyn') || path.match('rec-nacdyn')) {
- secondary.PET_Dynamic++
- }
- }
- if (type.file.isMeg(path)) {
- modalities.MEG++
- }
- if (type.file.isEEG(path)) {
- modalities.EEG++
- }
- if (type.file.isIEEG(path)) {
- modalities.iEEG++
- }
- if (type.file.isMicroscopy(path)) {
- modalities.Microscopy++
- }
- if (type.file.isNIRS(path)) {
- modalities.NIRS++
- }
- }
- // Order by matching file count
- const nonZero = Object.keys(modalities).filter((a) => modalities[a] !== 0)
- if (nonZero.length === 0) {
- return { primary: [], secondary: [] }
- }
- const sortedModalities = nonZero.sort((a, b) => {
- if (modalities[b] === modalities[a]) {
- // On a tie, hand it to the non-MRI modality
- if (b === 'MRI') {
- return -1
- } else {
- return 0
- }
- }
- return modalities[b] - modalities[a]
- })
- const nonZeroSecondary = Object.keys(secondary).filter(
- (a) => secondary[a] !== 0,
- )
- const sortedSecondary = nonZeroSecondary.sort(
- (a, b) => secondary[b] - secondary[a],
- )
- return { primary: sortedModalities, secondary: sortedSecondary }
-}
-
-export default collectModalities
diff --git a/bids-validator/utils/summary/collectPetFields.js b/bids-validator/utils/summary/collectPetFields.js
deleted file mode 100644
index 8c048b9f..00000000
--- a/bids-validator/utils/summary/collectPetFields.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * Gets the Target, Scanner Mfg, Radiotracer, and Radionuclide from json sidecar
- * @param {*} fileList
- */
-const collectPetFields = (jsonContentsDict) => {
- const fields = {
- BodyPart: {},
- ScannerManufacturer: {},
- ScannerManufacturersModelName: {},
- TracerName: {},
- TracerRadionuclide: {},
- }
-
- // tally up values in fields from all pet.json files
- Object.entries(jsonContentsDict).forEach(([filepath, json]) => {
- if (filepath.endsWith('pet.json')) {
- record(fields, 'ScannerManufacturer', json.Manufacturer)
- record(
- fields,
- 'ScannerManufacturersModelName',
- json.ManufacturersModelName,
- )
- record(fields, 'TracerName', json.TracerName)
- record(fields, 'TracerRadionuclide', json.TracerRadionuclide)
- if (json.BodyPart) record(fields, 'BodyPart', json.BodyPart)
- }
- })
-
- return ordered(fields)
-}
-
-const record = (fields, field, value) => {
- if (fields[field][value]) {
- fields[field][value]++
- } else {
- fields[field][value] = 1
- }
-}
-
-/**
- * Takes each field of tallies and converts it to an ordered list (pure).
- */
-const ordered = (fields) => {
- const orderedFields = {}
- Object.keys(fields).forEach((key) => {
- orderedFields[key] = orderedList(fields[key])
- })
- return orderedFields
-}
-
-/**
- * Given tallies = { a: 3, b: 5, c: 1 }, returns ['b', 'a', 'c']
- * @param {object} tallies
- * @returns {string[]}
- */
-export const orderedList = (tallies) =>
- Object.keys(tallies)
- // convert object to list of key/value pairs
- .map((key) => ({ key, count: tallies[key] }))
- // sort by count, greatest to least
- .sort(({ count: a }, { count: b }) => b - a)
- .map(({ key }) => key)
-
-export default collectPetFields
diff --git a/bids-validator/utils/summary/collectSessions.js b/bids-validator/utils/summary/collectSessions.js
deleted file mode 100644
index d85121c0..00000000
--- a/bids-validator/utils/summary/collectSessions.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import type from '../type'
-
-const collectSessions = (fileList) => {
- const sessions = []
- Object.keys(fileList).forEach((key) => {
- const file = fileList[key]
- if (
- !type.file.isStimuliData(file.relativePath) &&
- type.isBIDS(file.relativePath)
- ) {
- const pathValues = type.getPathValues(file.relativePath)
- const isEmptyRoom = pathValues.sub && pathValues.sub == 'emptyroom'
-
- if (
- pathValues.ses &&
- sessions.indexOf(pathValues.ses) === -1 &&
- !isEmptyRoom
- ) {
- sessions.push(pathValues.ses)
- }
- }
- })
- return sessions
-}
-
-export default collectSessions
diff --git a/bids-validator/utils/summary/collectSubjectMetadata.js b/bids-validator/utils/summary/collectSubjectMetadata.js
deleted file mode 100644
index 17a1bac4..00000000
--- a/bids-validator/utils/summary/collectSubjectMetadata.js
+++ /dev/null
@@ -1,68 +0,0 @@
-const PARTICIPANT_ID = 'participantId'
-/**
- * Go from tsv format string with participant_id as a required header to array of form
- * [
- * {
- * participantId: 'participant_id_1'
- * foo: 'x',
- * ...
- * },
- * {
- * participantId: 'participant_id_2'
- * foo: 'y',
- * ...
- * }
- * ...
- * ]
- *
- * returns null if participant_id is not a header or file contents do not exist
- * @param {string} participantsTsvContent
- */
-const collectSubjectMetadata = (participantsTsvContent) => {
- if (participantsTsvContent) {
- const contentTable = participantsTsvContent
- .split(/\r?\n/)
- .filter((row) => row !== '')
- .map((row) => row.split('\t'))
- const [snakeCaseHeaders, ...subjectData] = contentTable
- const headers = snakeCaseHeaders.map((header) =>
- header === 'participant_id' ? PARTICIPANT_ID : header,
- )
- const targetKeys = [PARTICIPANT_ID, 'age', 'sex', 'group']
- .map((key) => ({
- key,
- index: headers.findIndex((targetKey) => targetKey === key),
- }))
- .filter(({ index }) => index !== -1)
- const participantIdKey = targetKeys.find(
- ({ key }) => key === PARTICIPANT_ID,
- )
- const ageKey = targetKeys.find(({ key }) => key === 'age')
- if (participantIdKey === undefined) return null
- else
- return subjectData
- .map((data) => {
- // this first map is for transforming any data coming out of participants.tsv:
- // strip subject ids to match metadata.subjects: 'sub-01' -> '01'
- data[participantIdKey.index] = data[participantIdKey.index].replace(
- /^sub-/,
- '',
- )
- // make age an integer
- if (ageKey) data[ageKey.index] = parseInt(data[ageKey.index])
- return data
- })
- .map((data) =>
- //extract all target metadata for each subject
- targetKeys.reduce(
- (subject, { key, index }) => ({
- ...subject,
- [key]: data[index],
- }),
- {},
- ),
- )
- }
-}
-
-export default collectSubjectMetadata
diff --git a/bids-validator/utils/summary/collectSubjects.js b/bids-validator/utils/summary/collectSubjects.js
deleted file mode 100644
index f640e0f0..00000000
--- a/bids-validator/utils/summary/collectSubjects.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import type from '../type'
-
-const collectSubjects = (fileList) => {
- const subjects = []
- const fileKeys = Object.keys(fileList)
- fileKeys.forEach((key) => {
- const file = fileList[key]
- if (
- !type.file.isStimuliData(file.relativePath) &&
- type.isBIDS(file.relativePath)
- ) {
- const pathValues = type.getPathValues(file.relativePath)
- const isEmptyRoom = pathValues.sub && pathValues.sub == 'emptyroom'
-
- if (
- pathValues.sub &&
- subjects.indexOf(pathValues.sub) === -1 &&
- !isEmptyRoom
- ) {
- subjects.push(pathValues.sub)
- }
- }
- })
- return subjects
-}
-
-export default collectSubjects
diff --git a/bids-validator/utils/summary/collectSummary.js b/bids-validator/utils/summary/collectSummary.js
deleted file mode 100644
index 4446089b..00000000
--- a/bids-validator/utils/summary/collectSummary.js
+++ /dev/null
@@ -1,55 +0,0 @@
-import files from '../files'
-import checkForDerivatives from './checkForDerivatives'
-import collectDataTypes from './collectDataTypes'
-import collectModalities from './collectModalities'
-import collectSessions from './collectSessions'
-import collectSubjects from './collectSubjects'
-
-const collectSummary = (fileList, options) => {
- const summary = {
- sessions: [],
- subjects: [],
- subjectMetadata: {},
- tasks: [],
- modalities: [],
- secondaryModalities: [],
- totalFiles: -1,
- size: 0,
- dataProcessed: false,
- pet: null,
- }
-
- summary.dataProcessed = checkForDerivatives(fileList)
-
- // remove ignored files from list:
- Object.keys(fileList).forEach(function (key) {
- if (fileList[key].ignore) {
- delete fileList[key]
- }
- })
-
- summary.totalFiles = Object.keys(fileList).length
-
- const relativePaths = Object.keys(fileList).map(
- (file) => fileList[file].relativePath,
- )
-
- //collect file directory statistics
- summary.size = files.collectDirectorySize(fileList)
-
- // collect modalities for summary
- const { primary, secondary } = collectModalities(relativePaths)
- summary.modalities = primary
- summary.secondaryModalities = secondary
- summary.dataTypes = collectDataTypes(relativePaths)
-
- // collect subjects
- summary.subjects = collectSubjects(fileList, options)
-
- // collect sessions
- summary.sessions = collectSessions(fileList, options)
-
- return summary
-}
-
-export default collectSummary
diff --git a/bids-validator/utils/type.js b/bids-validator/utils/type.js
deleted file mode 100644
index 9a231549..00000000
--- a/bids-validator/utils/type.js
+++ /dev/null
@@ -1,437 +0,0 @@
-/**
- * Type
- *
- * A library of functions that take a file path and return a boolean
- * representing whether the given file path is valid within the
- * BIDS specification requirements.
- */
-
-/**
- * Import RegExps from bids-validator-common
- */
-import associated_data_rules from '../bids_validator/rules/associated_data_rules.json'
-
-import file_level_rules from '../bids_validator/rules/file_level_rules.json'
-import phenotypic_rules from '../bids_validator/rules/phenotypic_rules.json'
-import session_level_rules from '../bids_validator/rules/session_level_rules.json'
-import subject_level_rules from '../bids_validator/rules/subject_level_rules.json'
-import top_level_rules from '../bids_validator/rules/top_level_rules.json'
-
-// Associated data
-const associatedData = buildRegExp(associated_data_rules.associated_data)
-// File level
-const anatNonparametric = buildRegExp(file_level_rules.anat_nonparametric)
-const anatParametric = buildRegExp(file_level_rules.anat_parametric)
-const anatDefacemask = buildRegExp(file_level_rules.anat_defacemask)
-const anatMultiEcho = buildRegExp(file_level_rules.anat_multiecho)
-const anatMultiFlip = buildRegExp(file_level_rules.anat_multiflip)
-const anatMultiInv = buildRegExp(file_level_rules.anat_multiinv)
-const anatMP2RAGE = buildRegExp(file_level_rules.anat_mp2rage)
-const anatVFAMT = buildRegExp(file_level_rules.anat_vfa_mt)
-const anatMTR = buildRegExp(file_level_rules.anat_mtr)
-const anatCont = buildRegExp(file_level_rules.anat_cont)
-const behavioralData = buildRegExp(file_level_rules.behavioral)
-const dwiData = buildRegExp(file_level_rules.dwi)
-const eegData = buildRegExp(file_level_rules.eeg)
-const fmapGre = buildRegExp(file_level_rules.fmap_gre)
-const fmapPepolarAsl = buildRegExp(file_level_rules.fmap_pepolar_asl)
-const fmapTB1DAM = buildRegExp(file_level_rules.fmap_TB1DAM)
-const fmapTB1EPI = buildRegExp(file_level_rules.fmap_TB1EPI)
-const fmapRF = buildRegExp(file_level_rules.fmap_rf)
-const fmapTB1SRGE = buildRegExp(file_level_rules.fmap_TB1SRGE)
-const fmapParametric = buildRegExp(file_level_rules.fmap_parametric)
-const func = buildRegExp(file_level_rules.func)
-const funcPhaseDeprecated = buildRegExp(file_level_rules.func_phase_deprecated)
-const funcEvents = buildRegExp(file_level_rules.func_events)
-const funcTimeseries = buildRegExp(file_level_rules.func_timeseries)
-const funcBoldData = buildRegExp(file_level_rules.func_bold)
-const aslData = buildRegExp(file_level_rules.asl)
-const ieegData = buildRegExp(file_level_rules.ieeg)
-const megData = buildRegExp(file_level_rules.meg)
-const megCalibrationData = buildRegExp(file_level_rules.meg_calbibration)
-const megCrosstalkData = buildRegExp(file_level_rules.meg_crosstalk)
-const stimuliData = buildRegExp(file_level_rules.stimuli)
-const petData = buildRegExp(file_level_rules.pet)
-const petBlood = buildRegExp(file_level_rules.pet_blood)
-const microscopyData = buildRegExp(file_level_rules.microscopy)
-const microscopyPhotoData = buildRegExp(file_level_rules.microscopy_photo)
-const microscopyJSON = buildRegExp(file_level_rules.microscopy_json)
-const motion = buildRegExp(file_level_rules.motion)
-const nirsData = buildRegExp(file_level_rules.nirs)
-// Phenotypic data
-const phenotypicData = buildRegExp(phenotypic_rules.phenotypic_data)
-// Session level
-const anatSes = buildRegExp(session_level_rules.anat_ses)
-const dwiSes = buildRegExp(session_level_rules.dwi_ses)
-const eegSes = buildRegExp(session_level_rules.eeg_ses)
-const funcSes = buildRegExp(session_level_rules.func_ses)
-const aslSes = buildRegExp(session_level_rules.asl_ses)
-const ieegSes = buildRegExp(session_level_rules.ieeg_ses)
-const megSes = buildRegExp(session_level_rules.meg_ses)
-const scansSes = buildRegExp(session_level_rules.scans)
-const petSes = buildRegExp(session_level_rules.pet_ses)
-const motionSes = buildRegExp(session_level_rules.motion_ses)
-const microscopySes = buildRegExp(session_level_rules.microscopy_ses)
-const nirsSes = buildRegExp(session_level_rules.nirs_ses)
-// Subject level
-const subjectLevel = buildRegExp(subject_level_rules.subject_level)
-// Top level
-const rootTop = buildRegExp(top_level_rules.root_top)
-const funcTop = buildRegExp(top_level_rules.func_top)
-const aslTop = buildRegExp(top_level_rules.asl_top)
-const anatTop = buildRegExp(top_level_rules.anat_top)
-const vfaTop = buildRegExp(top_level_rules.VFA_top)
-const megreTop = buildRegExp(top_level_rules.megre_mese_top)
-const irt1Top = buildRegExp(top_level_rules.irt1_top)
-const mpmTop = buildRegExp(top_level_rules.mpm_top)
-const mtsTop = buildRegExp(top_level_rules.mts_top)
-const mtrTop = buildRegExp(top_level_rules.mtr_top)
-const mp2rageTop = buildRegExp(top_level_rules.mp2rage_top)
-const dwiTop = buildRegExp(top_level_rules.dwi_top)
-const eegTop = buildRegExp(top_level_rules.eeg_top)
-const ieegTop = buildRegExp(top_level_rules.ieeg_top)
-const fmapEpiTop = buildRegExp(top_level_rules.fmap_epi_top)
-const fmapGreTop = buildRegExp(top_level_rules.fmap_gre_top)
-const otherTopFiles = buildRegExp(top_level_rules.other_top_files)
-const megTop = buildRegExp(top_level_rules.meg_top)
-const petTop = buildRegExp(top_level_rules.pet_top)
-const motionTop = buildRegExp(top_level_rules.motion_top)
-const microscopyTop = buildRegExp(top_level_rules.microscopy_top)
-const nirsTop = buildRegExp(top_level_rules.nirs_top)
-
-export default {
- /**
- * Is BIDS
- *
- * Check if a given path is valid within the
- * bids spec.
- */
- isBIDS: function (path) {
- return (
- this.file.isTopLevel(path) ||
- this.file.isStimuliData(path) ||
- this.file.isSessionLevel(path) ||
- this.file.isSubjectLevel(path) ||
- this.file.isAnat(path) ||
- this.file.isDWI(path) ||
- this.file.isFunc(path) ||
- this.file.isAsl(path) ||
- this.file.isMeg(path) ||
- this.file.isNIRS(path) ||
- this.file.isIEEG(path) ||
- this.file.isEEG(path) ||
- this.file.isBehavioral(path) ||
- this.file.isFieldMap(path) ||
- this.file.isPhenotypic(path) ||
- this.file.isPET(path) ||
- this.file.isPETBlood(path) ||
- this.file.isMOTION(path) ||
- this.file.isMicroscopy(path) ||
- this.file.isMicroscopyPhoto(path) ||
- this.file.isMicroscopyJSON(path)
- )
- },
-
- /**
- * Object with all file type checks
- */
- file: {
- /**
- * Check if the file has appropriate name for a top level file
- */
- isTopLevel: function (path) {
- return (
- rootTop.test(path) ||
- funcTop.test(path) ||
- aslTop.test(path) ||
- dwiTop.test(path) ||
- anatTop.test(path) ||
- vfaTop.test(path) ||
- megreTop.test(path) ||
- irt1Top.test(path) ||
- mpmTop.test(path) ||
- mtsTop.test(path) ||
- mtrTop.test(path) ||
- mp2rageTop.test(path) ||
- fmapEpiTop.test(path) ||
- fmapGreTop.test(path) ||
- otherTopFiles.test(path) ||
- megTop.test(path) ||
- eegTop.test(path) ||
- ieegTop.test(path) ||
- petTop.test(path) ||
- motionTop.test(path) ||
- nirsTop.test(path) ||
- microscopyTop.test(path)
- )
- },
-
- /**
- * Check if file is a data file
- */
- isDatafile: function (path) {
- return (
- this.isAssociatedData(path) ||
- this.isTSV(path) ||
- this.isStimuliData(path) ||
- this.isPhenotypic(path) ||
- this.hasModality(path)
- )
- },
- /**
- * Check if file is appropriate associated data.
- */
- isAssociatedData: function (path) {
- return associatedData.test(path)
- },
-
- isTSV: function (path) {
- return path.endsWith('.tsv')
- },
-
- isContinousRecording: function (path) {
- return path.endsWith('.tsv.gz')
- },
-
- isStimuliData: function (path) {
- return stimuliData.test(path)
- },
-
- /**
- * Check if file is phenotypic data.
- */
- isPhenotypic: function (path) {
- return phenotypicData.test(path)
- },
- /**
- * Check if the file has appropriate name for a session level
- */
- isSessionLevel: function (path) {
- return (
- conditionalMatch(scansSes, path) ||
- conditionalMatch(funcSes, path) ||
- conditionalMatch(aslSes, path) ||
- conditionalMatch(anatSes, path) ||
- conditionalMatch(dwiSes, path) ||
- conditionalMatch(megSes, path) ||
- conditionalMatch(nirsSes, path) ||
- conditionalMatch(eegSes, path) ||
- conditionalMatch(ieegSes, path) ||
- conditionalMatch(petSes, path) ||
- conditionalMatch(motionSes, path) ||
- conditionalMatch(microscopySes, path)
- )
- },
-
- /**
- * Check if the file has appropriate name for a subject level
- */
- isSubjectLevel: function (path) {
- return subjectLevel.test(path)
- },
-
- /**
- * Check if the file has a name appropriate for an anatomical scan
- */
- isAnat: function (path) {
- return (
- conditionalMatch(anatNonparametric, path) ||
- conditionalMatch(anatParametric, path) ||
- conditionalMatch(anatDefacemask, path) ||
- conditionalMatch(anatMultiEcho, path) ||
- conditionalMatch(anatMultiFlip, path) ||
- conditionalMatch(anatMultiInv, path) ||
- conditionalMatch(anatMP2RAGE, path) ||
- conditionalMatch(anatVFAMT, path) ||
- conditionalMatch(anatMTR, path) ||
- conditionalMatch(anatCont, path)
- )
- },
-
- /**
- * Check if the file has a name appropriate for a diffusion scan
- */
- isDWI: function (path) {
- return conditionalMatch(dwiData, path)
- },
-
- /**
- * Check if the file has a name appropriate for a fieldmap scan
- */
- isFieldMap: function (path) {
- return (
- conditionalMatch(fmapGre, path) ||
- conditionalMatch(fmapPepolarAsl, path) ||
- conditionalMatch(fmapTB1DAM, path) ||
- conditionalMatch(fmapTB1EPI, path) ||
- conditionalMatch(fmapTB1SRGE, path) ||
- conditionalMatch(fmapRF, path) ||
- conditionalMatch(fmapParametric, path)
- )
- },
-
- isFieldMapMainNii: function (path) {
- return (
- !path.endsWith('.json') &&
- /* isFieldMap */
- (conditionalMatch(fmapGre, path) ||
- conditionalMatch(fmapPepolarAsl, path) ||
- conditionalMatch(fmapTB1DAM, path) ||
- conditionalMatch(fmapTB1EPI, path) ||
- conditionalMatch(fmapTB1SRGE, path) ||
- conditionalMatch(fmapRF, path) ||
- conditionalMatch(fmapParametric, path))
- )
- },
-
- /**
- * Check if the file has a name appropriate for a functional scan
- */
- isFunc: function (path) {
- return (
- conditionalMatch(func, path) ||
- conditionalMatch(funcPhaseDeprecated, path) ||
- conditionalMatch(funcEvents, path) ||
- conditionalMatch(funcTimeseries, path)
- )
- },
-
- isAsl: function (path) {
- return conditionalMatch(aslData, path)
- },
-
- isPET: function (path) {
- return conditionalMatch(petData, path)
- },
-
- isPETBlood: function (path) {
- return conditionalMatch(petBlood, path)
- },
-
- isMeg: function (path) {
- return (
- conditionalMatch(megData, path) ||
- conditionalMatch(megCalibrationData, path) ||
- conditionalMatch(megCrosstalkData, path)
- )
- },
- isNIRS: function (path) {
- return conditionalMatch(nirsData, path)
- },
-
- isEEG: function (path) {
- return conditionalMatch(eegData, path)
- },
-
- isIEEG: function (path) {
- return conditionalMatch(ieegData, path)
- },
-
- isMOTION: function (path) {
- return conditionalMatch(motion, path)
- },
-
- isMicroscopy: function (path) {
- return conditionalMatch(microscopyData, path)
- },
-
- isMicroscopyPhoto: function (path) {
- return conditionalMatch(microscopyPhotoData, path)
- },
-
- isMicroscopyJSON: function (path) {
- return conditionalMatch(microscopyJSON, path)
- },
-
- isBehavioral: function (path) {
- return conditionalMatch(behavioralData, path)
- },
-
- isFuncBold: function (path) {
- return conditionalMatch(funcBoldData, path)
- },
-
- hasModality: function (path) {
- return (
- this.isAnat(path) ||
- this.isDWI(path) ||
- this.isFieldMap(path) ||
- this.isFieldMapMainNii(path) ||
- this.isFunc(path) ||
- this.isAsl(path) ||
- this.isMeg(path) ||
- this.isNIRS(path) ||
- this.isEEG(path) ||
- this.isIEEG(path) ||
- this.isBehavioral(path) ||
- this.isFuncBold(path) ||
- this.isPET(path) ||
- this.isPETBlood(path) ||
- this.isMicroscopy(path) ||
- this.isMicroscopyPhoto(path) ||
- this.isMicroscopyJSON(path) ||
- this.isMOTION(path)
- )
- },
- },
-
- checkType(obj, typeString) {
- if (typeString == 'number') {
- return !isNaN(parseFloat(obj)) && isFinite(obj)
- } else {
- return typeof obj == typeString
- }
- },
-
- /**
- * Get Path Values
- *
- * Takes a file path and returns and values
- * found for the following path keys.
- * sub-
- * ses-
- */
- getPathValues: function (path) {
- var values = {},
- match
-
- // capture subject
- match = /^\/sub-([a-zA-Z0-9]+)/.exec(path)
- values.sub = match && match[1] ? match[1] : null
-
- // capture session
- match = /^\/sub-[a-zA-Z0-9]+\/ses-([a-zA-Z0-9]+)/.exec(path)
- values.ses = match && match[1] ? match[1] : null
-
- return values
- },
-}
-
-function conditionalMatch(expression, path) {
- const match = expression.exec(path)
-
- // we need to do this because JS does not support conditional groups
- if (match) {
- if ((match[2] && match[3]) || !match[2]) {
- return true
- }
- }
- return false
-}
-
-/**
- * Insert tokens into RegExps from bids-validator-common
- */
-function buildRegExp(obj) {
- if (obj.tokens) {
- let regExp = obj.regexp
- const keys = Object.keys(obj.tokens)
- for (let key of keys) {
- const args = obj.tokens[key].join('|')
- regExp = regExp.replace(key, args)
- }
- return new RegExp(regExp)
- } else {
- return new RegExp(obj.regexp)
- }
-}
diff --git a/bids-validator/utils/unit.js b/bids-validator/utils/unit.js
deleted file mode 100644
index 1f13348d..00000000
--- a/bids-validator/utils/unit.js
+++ /dev/null
@@ -1,190 +0,0 @@
-const roots = [
- 'metre',
- 'm',
- 'kilogram',
- 'kg',
- 'second',
- 's',
- 'ampere',
- 'A',
- 'kelvin',
- 'K',
- 'mole',
- 'mol',
- 'candela',
- 'cd',
- 'radian',
- 'rad',
- 'steradian',
- 'sr',
- 'hertz',
- 'Hz',
- 'newton',
- 'N',
- 'pascal',
- 'Pa',
- 'joule',
- 'J',
- 'watt',
- 'W',
- 'coulomb',
- 'C',
- 'volt',
- 'V',
- 'farad',
- 'F',
- 'ohm',
- 'Ω',
- 'siemens',
- 'S',
- 'weber',
- 'Wb',
- 'tesla',
- 'T',
- 'henry',
- 'H',
- 'degree',
- 'Celsius',
- '°C',
- 'lumen',
- 'lm',
- 'lux',
- 'lx',
- 'becquerel',
- 'Bq',
- 'gray',
- 'Gy',
- 'sievert',
- 'Sv',
- 'katal',
- 'kat',
-]
-const prefixes = [
- // multiples
- 'deca',
- 'da',
- 'hecto',
- 'h',
- 'kilo',
- 'k',
- 'mega',
- 'M',
- 'giga',
- 'G',
- 'tera',
- 'T',
- 'peta',
- 'P',
- 'exa',
- 'E',
- 'zetta',
- 'Z',
- 'yotta',
- 'Y',
- // sub-multiples
- 'deci',
- 'd',
- 'centi',
- 'c',
- 'milli',
- 'm',
- 'micro',
- 'µ',
- 'nano',
- 'n',
- 'pico',
- 'p',
- 'femto',
- 'f',
- 'atto',
- 'a',
- 'zepto',
- 'z',
- 'yocto',
- 'y',
-]
-const unitOperators = ['/', '*', '⋅']
-const exponentOperator = '^'
-const operators = [...unitOperators, exponentOperator]
-
-// from 0-9
-const superscriptNumbers = [
- '\u2070',
- '\u00B9',
- '\u00B2',
- '\u00B3',
- '\u2074',
- '\u2075',
- '\u2076',
- '\u2077',
- '\u2078',
- '\u2079',
-]
-const superscriptNegative = '\u207B'
-
-const start = '^'
-const end = '$'
-const prefix = `(${prefixes.join('|')})?`
-const root = `(${roots.join('|')})`
-const superscriptExp = `(${superscriptNegative}?[${superscriptNumbers}]+)?`
-const operatorExp = `(\\^-?[0-9]+)?`
-const unitWithExponentPattern = new RegExp(
- `${start}${prefix}${root}(${superscriptExp}|${operatorExp})${end}`,
-)
-
-const unitOperatorPattern = new RegExp(`[${unitOperators.join('')}]`)
-
-const isUnavailable = (unit) => unit.trim().toLowerCase() === 'n/a'
-const isPercent = (unit) => unit.trim() === '%'
-
-/* Validate currently not used, out of line with specification:
- * https://github.com/bids-standard/bids-specification/pull/411
- * Once updated to use cmixf uncomment section in tsv validator that
- * calls this function, remove this comment, and uncomment test in tests/tsv.spec.js
- */
-/**
- * validate
- *
- * Checks that the SI unit given is valid.
- * Whitespace characters are not supported.
- * Unit must include at least one root unit of measuremnt.
- * Multiple root units must be separated by one of the operators '/' (division) or '*' (multiplication).
- * Each root unit may or may not pre preceded by a multiplier prefix,
- * and may or may not be followed by an exponent.
- * Exponents may only be to integer powers,
- * and may be formatted as either unicode superscript numbers,
- * or as integers following the '^' operator.
- *
- * @param {string} derivedUnit - a simple or complex SI unit
- * @returns {object} - { isValid, evidence }
- */
-const validate = (derivedUnit) => {
- if (isUnavailable(derivedUnit) || isPercent(derivedUnit)) {
- return { isValid: true, evidence: '' }
- } else {
- const separatedUnits = derivedUnit
- .split(unitOperatorPattern)
- .map((str) => str.trim())
- const invalidUnits = separatedUnits.filter(
- (unit) => !unitWithExponentPattern.test(unit),
- )
-
- const isValid = invalidUnits.length === 0
- const evidence = isValid
- ? ''
- : `Subunit${invalidUnits.length === 1 ? '' : 's'} (${invalidUnits.join(
- ', ',
- )}) of unit ${derivedUnit} is invalid. `
-
- return { isValid, evidence }
- }
-}
-
-export { roots, prefixes, superscriptNumbers, operators, validate }
-export default {
- roots,
- prefixes,
- superscriptNumbers,
- operators,
- validate,
-}
diff --git a/bids-validator/validators/__tests__/checkAnyDataPresent.spec.js b/bids-validator/validators/__tests__/checkAnyDataPresent.spec.js
deleted file mode 100644
index 23f357b6..00000000
--- a/bids-validator/validators/__tests__/checkAnyDataPresent.spec.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import { assert } from 'chai'
-import { getFolderSubjects } from '../checkAnyDataPresent.js'
-
-describe('checkAnyDataPresent', () => {
- describe('getFolderSubjects()', () => {
- it('returns only unique subjects', () => {
- // Pseudo-FileList object but an array simulates it
- const fileList = [
- { relativePath: 'sub-01/files' },
- { relativePath: 'sub-01/another' },
- { relativePath: 'sub-02/data' },
- ]
- const subjects = getFolderSubjects(fileList)
- assert.isArray(subjects)
- assert.deepEqual(subjects, ['01', '02'])
- })
- it('filters out emptyroom subject', () => {
- const fileList = [
- { relativePath: 'sub-01/files' },
- { relativePath: 'sub-emptyroom/data' },
- ]
- const subjects = getFolderSubjects(fileList)
- assert.isArray(subjects)
- assert.deepEqual(subjects, ['01'])
- })
- it('works for deeply nested files', () => {
- const fileList = [
- { relativePath: 'sub-01/files/a.nii.gz' },
- { relativePath: 'sub-01/another/b.nii.gz' },
- { relativePath: 'sub-02/data/test' },
- ]
- const subjects = getFolderSubjects(fileList)
- assert.isArray(subjects)
- assert.deepEqual(subjects, ['01', '02'])
- })
- it('works with object arguments', () => {
- const fileList = { 0: { relativePath: 'sub-01/anat/one.nii.gz' } }
- const subjects = getFolderSubjects(fileList)
- assert.isArray(subjects)
- assert.deepEqual(subjects, ['01'])
- })
- })
-})
diff --git a/bids-validator/validators/__tests__/headerFields.spec.js b/bids-validator/validators/__tests__/headerFields.spec.js
deleted file mode 100644
index 8bbe9ab1..00000000
--- a/bids-validator/validators/__tests__/headerFields.spec.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import { assert } from 'chai'
-import { collect39Issues } from '../headerFields'
-
-describe('headerFields', () => {
- describe('collect39Issues()', () => {
- it('should return an empty array if there are no files in allIssues39Dict', () => {
- const allIssues39Dict = {}
- const issues = collect39Issues(allIssues39Dict)
- assert.isArray(issues)
- assert.lengthOf(issues, 0)
- })
- it('should return one issue per file in the allIssues39Dict', () => {
- const allIssues39Dict = {
- file_1: [
- {
- code: 39,
- reason: 'for some reason',
- },
- {
- code: 39,
- reason: 'for some other reason',
- },
- ],
- }
- const issues = collect39Issues(allIssues39Dict)
- assert.isArray(issues)
- assert.lengthOf(issues, 1)
- })
- it('should return one issue for each file with code 39 issues', () => {
- const allIssues39Dict = {
- file_1: [
- {
- code: 39,
- reason: 'reason1',
- },
- ],
- file_2: [
- {
- code: 39,
- reason: 'reason2',
- },
- ],
- }
- const issues = collect39Issues(allIssues39Dict)
- assert.lengthOf(issues, 2)
- })
- it('constructs a combined reason string from each issue.reason of a file', () => {
- const allIssues39Dict = {
- file_1: [
- {
- code: 39,
- reason: 'reason1',
- },
- {
- code: 39,
- reason: 'reason2',
- },
- ],
- }
- const issues = collect39Issues(allIssues39Dict)
- assert.lengthOf(issues, 1)
- assert(issues[0].reason == ' reason1 reason2')
- })
- })
-})
diff --git a/bids-validator/validators/bids/__tests__/checkDatasetDescription.spec.js b/bids-validator/validators/bids/__tests__/checkDatasetDescription.spec.js
deleted file mode 100644
index 347723c5..00000000
--- a/bids-validator/validators/bids/__tests__/checkDatasetDescription.spec.js
+++ /dev/null
@@ -1,127 +0,0 @@
-import { assert } from 'chai'
-import checkDatasetDescription from '../checkDatasetDescription'
-
-describe('checkDatasetDescription', () => {
- describe('checkNameAndAuthorsFields', () => {
- it('returns no issues with valid Name and Authors field', () => {
- const validJsonContentsDict = {
- '/dataset_description.json': {
- Name: 'Electric Boots',
- Authors: ['Benny', 'the Jets'],
- },
- }
- const issues = checkDatasetDescription(validJsonContentsDict)
- assert.lengthOf(issues, 0)
- })
- })
- describe('checkNameField', () => {
- it('returns code 115 when Name is empty', () => {
- const invalidJsonContentsDict = {
- '/dataset_description.json': {
- Name: '',
- },
- }
- const issues = checkDatasetDescription(invalidJsonContentsDict)
- assert(
- issues.findIndex((issue) => issue.code === 115) > -1,
- 'issues include a code 115',
- )
- })
- it('returns code 115 when name only contains whitespace', () => {
- const invalidJsonContentsDict = {
- '/dataset_description.json': {
- Name: ' \t\r\n\f\v\u2003',
- },
- }
- const issues = checkDatasetDescription(invalidJsonContentsDict)
- assert(
- issues.findIndex((issue) => issue.code === 115) > -1,
- 'issues include a code 115',
- )
- })
- it('returns no issues with one non-whitespace character', () => {
- const validJsonContentsDict = {
- '/dataset_description.json': {
- Name: ' \u2708 ',
- Authors: ['Benny', 'the Jets'],
- },
- }
- const issues = checkDatasetDescription(validJsonContentsDict)
- assert.lengthOf(issues, 0)
- })
- })
- describe('checkAuthorField', () => {
- it('returns code 102 when there is only one author present', () => {
- const invalidJsonContentsDict = {
- '/dataset_description.json': {
- Authors: ['Benny'],
- },
- }
- const issues = checkDatasetDescription(invalidJsonContentsDict)
- assert(
- issues.findIndex((issue) => issue.code === 102) > -1,
- 'issues include a code 102',
- )
- })
- it('returns code 103 when there an author has more than one comma', () => {
- const invalidJsonContentsDict = {
- '/dataset_description.json': {
- Authors: ['Benny, and the, Jets'],
- },
- }
- const issues = checkDatasetDescription(invalidJsonContentsDict)
- assert(
- issues.findIndex((issue) => issue.code === 103) > -1,
- 'issues include a code 103',
- )
- })
- it('returns code 113 when there are no Authors', () => {
- const invalidJsonContentsDict = {
- '/dataset_description.json': {
- Authors: [],
- },
- }
- let issues = checkDatasetDescription(invalidJsonContentsDict)
- assert(
- issues.findIndex((issue) => issue.code === 113) > -1,
- 'issues include a code 113',
- )
-
- const invalidJsonContentsDict2 = {
- '/dataset_description.json': {},
- }
- issues = checkDatasetDescription(invalidJsonContentsDict2)
- assert(
- issues.findIndex((issue) => issue.code === 113) > -1,
- 'issues include a code 113',
- )
- })
- })
- describe('checkGeneticDatabaseField', () => {
- it('returns code 128 when there is no Genetics.Dataset with a genetic_info.json present', () => {
- const invalidJsonContentsDict = {
- '/dataset_description.json': {},
- '/genetic_info.json': {},
- }
- let issues = checkDatasetDescription(invalidJsonContentsDict)
- assert(
- issues.findIndex((issue) => issue.code === 128) > -1,
- 'issues include a code 128',
- )
- })
- it('does not return code 128 when GeneticDataset field and genetic_info.json present', () => {
- const validJsonContentsDict = {
- '/dataset_description.json': {
- Authors: ['Benny', 'the Jets'],
- Genetics: { Dataset: 'GeneticGeneticDataset' },
- },
- '/genetic_info.json': {},
- }
- let issues = checkDatasetDescription(validJsonContentsDict)
- assert(
- issues.findIndex((issue) => issue.code === 128) === -1,
- 'issues does not include a code 128',
- )
- })
- })
-})
diff --git a/bids-validator/validators/bids/__tests__/checkReadme.spec.js b/bids-validator/validators/bids/__tests__/checkReadme.spec.js
deleted file mode 100644
index 20fc33e8..00000000
--- a/bids-validator/validators/bids/__tests__/checkReadme.spec.js
+++ /dev/null
@@ -1,70 +0,0 @@
-import { assert } from 'chai'
-import checkReadme from '../checkReadme'
-
-describe('checkReadme', () => {
- it('returns issues with multiple readme files', () => {
- const fileList = {
- '/README': {
- name: 'README',
- path: '/ds-999/README',
- relativePath: '/README',
- stats: { size: 155 },
- },
- '/README.md': {
- name: 'README.md',
- path: '/ds-999/README.md',
- relativePath: '/README.md',
- stats: { size: 155 },
- },
- }
- const issues = checkReadme(fileList)
- assert.lengthOf(issues, 1)
- assert.equal(issues[0].code, 228)
- })
- it('returns issues with multiple small readme files', () => {
- const fileList = {
- '/README': {
- name: 'README',
- path: '/ds-999/README',
- relativePath: '/README',
- stats: { size: 100 },
- },
- '/README.md': {
- name: 'README.md',
- path: '/ds-999/README.md',
- relativePath: '/README.md',
- stats: { size: 100 },
- },
- }
- const issues = checkReadme(fileList)
- assert.lengthOf(issues, 3)
- const codes = issues.map((issue) => issue.code)
- assert.equal(codes.filter((x) => x === 213).length, 2)
- assert.equal(codes.filter((x) => x === 228).length, 1)
- })
- it('returns no issues on readme with extension', () => {
- const fileList = {
- '/README.md': {
- name: 'README.md',
- path: '/ds-999/README.md',
- relativePath: '/README.md',
- stats: { size: 155 },
- },
- }
- const issues = checkReadme(fileList)
- assert.lengthOf(issues, 0)
- })
- it('returns issue on no readme', () => {
- const fileList = {
- '/bad.md': {
- name: 'bad.md',
- path: '/ds-999/bad.md',
- relativePath: '/bad.md',
- stats: { size: 155 },
- },
- }
- const issues = checkReadme(fileList)
- assert.lengthOf(issues, 1)
- assert.equal(issues[0].code, 101)
- })
-})
diff --git a/bids-validator/validators/bids/__tests__/subjects.spec.js b/bids-validator/validators/bids/__tests__/subjects.spec.js
deleted file mode 100644
index b55cffcc..00000000
--- a/bids-validator/validators/bids/__tests__/subjects.spec.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import { assert } from 'chai'
-import subjects from '../subjects'
-
-describe('subjects', () => {
- const subjectsArray = ['01', '02', '03']
-
- describe('participantsInSubjects', () => {
- it('returns no issues if there are no participants provided', () => {
- const issues = subjects.participantsInSubjects(null, [])
- assert.lengthOf(issues, 0)
- })
- it('returns no issues if all participants are in the subjects array', () => {
- const participants = {
- list: subjectsArray,
- }
- const issues = subjects.participantsInSubjects(
- participants,
- subjectsArray,
- )
- assert.lengthOf(issues, 0)
- })
- it('return issue code 49 if participants are not the same as subjects', () => {
- const participants = {
- list: ['01', '05'],
- }
- const issues = subjects.participantsInSubjects(
- participants,
- subjectsArray,
- )
- assert.lengthOf(issues, 1)
- assert.equal(issues[0].code, 49)
- })
- })
-})
diff --git a/bids-validator/validators/bids/checkDatasetDescription.js b/bids-validator/validators/bids/checkDatasetDescription.js
deleted file mode 100644
index 87f730a8..00000000
--- a/bids-validator/validators/bids/checkDatasetDescription.js
+++ /dev/null
@@ -1,79 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-
-const checkDatasetDescription = (jsonContentsDict) => {
- let issues = []
- const jsonFilePaths = Object.keys(jsonContentsDict)
- const hasDatasetDescription = jsonFilePaths.some((path) => {
- return path == '/dataset_description.json'
- })
- const hasGeneticInfo = jsonFilePaths.some((path) => {
- return path === '/genetic_info.json'
- })
-
- if (!hasDatasetDescription) {
- issues.push(new Issue({ code: 57 }))
- } else {
- const datasetDescription = jsonContentsDict['/dataset_description.json']
-
- // check to ensure that the dataset description fields are
- // properly formatted
- issues = issues.concat(checkNameField(datasetDescription.Name))
- issues = issues.concat(checkAuthorField(datasetDescription.Authors))
-
- // if genetic info json present ensure mandatory GeneticDataset present
- if (
- hasGeneticInfo &&
- !(
- 'Genetics' in datasetDescription &&
- 'Dataset' in datasetDescription.Genetics
- )
- ) {
- issues.push(new Issue({ code: 128 }))
- }
- }
- return issues
-}
-
-const checkNameField = (name) => {
- const issues = []
- // missing name will be caught by validation (later)
- if (name !== undefined) {
- const nonws = /\S/
- if (!name.match(nonws)) {
- issues.push(new Issue({ code: 115 }))
- }
- }
- return issues
-}
-
-const checkAuthorField = (authors) => {
- const issues = []
- // because this test happens before schema validation,
- // we have to make sure that authors is an array
- if (authors && typeof authors == 'object' && authors.length) {
- // if any author has more than one comma, throw an error
- authors.forEach((author) => {
- if (('' + author).split(',').length > 2) {
- issues.push(new Issue({ code: 103, evidence: author }))
- }
- })
- // if authors is length 1, we want a warning for a single comma
- // and an error for multiple commas
- if (authors.length == 1) {
- const author = authors[0]
- // check the number of commas in the single author field
- if (typeof author == 'string' && author.split(',').length <= 2) {
- // if there is one or less comma in the author field,
- // we suspect that the curator has not listed everyone involved
- issues.push(new Issue({ code: 102, evidence: author }))
- }
- }
- } else {
- // if there are no authors,
- // warn user that errors could occur during doi minting
- // and that snapshots on OpenNeuro will not be allowed
- issues.push(new Issue({ code: 113, evidence: JSON.stringify(authors) }))
- }
- return issues
-}
-export default checkDatasetDescription
diff --git a/bids-validator/validators/bids/checkReadme.js b/bids-validator/validators/bids/checkReadme.js
deleted file mode 100644
index 3a50a929..00000000
--- a/bids-validator/validators/bids/checkReadme.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import isNode from '../../utils/isNode'
-
-const Issue = require('../../utils').issues.Issue
-
-const checkReadme = (fileList) => {
- const issues = []
- const readmeFiles = Array.from(Object.values(fileList)).filter(
- (file) => file.relativePath && file.relativePath.startsWith('/README'),
- )
-
- readmeFiles.map((readmeFile) => {
- const size = !isNode ? readmeFile.size : readmeFile.stats.size
- const failsSizeRequirement = size <= 150
- if (failsSizeRequirement) {
- issues.push(new Issue({ code: 213, file: readmeFile }))
- }
- })
- if (readmeFiles.length > 1) {
- issues.push(new Issue({ code: 228 }))
- } else if (readmeFiles.length === 0) {
- issues.push(new Issue({ code: 101 }))
- }
- return issues
-}
-export default checkReadme
diff --git a/bids-validator/validators/bids/fullTest.js b/bids-validator/validators/bids/fullTest.js
deleted file mode 100644
index b0018ecf..00000000
--- a/bids-validator/validators/bids/fullTest.js
+++ /dev/null
@@ -1,272 +0,0 @@
-import BIDS from './obj'
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-import tsv from '../tsv'
-import json from '../json'
-import NIFTI from '../nifti'
-import bval from '../bval'
-import bvec from '../bvec'
-import microscopy from '../microscopy'
-import Events from '../events'
-import hed from '../hed'
-import { session } from '../session'
-import checkAnyDataPresent from '../checkAnyDataPresent'
-import headerFields from '../headerFields'
-import subSesMismatchTest from './subSesMismatchTest'
-import groupFileTypes from './groupFileTypes'
-import subjects from './subjects'
-import checkDatasetDescription from './checkDatasetDescription'
-import checkReadme from './checkReadme'
-import validateMisc from '../../utils/files/validateMisc'
-import collectSubjectMetadata from '../../utils/summary/collectSubjectMetadata'
-import collectPetFields from '../../utils/summary/collectPetFields'
-import collectModalities from '../../utils/summary/collectModalities'
-
-/**
- * Full Test
- *
- * Takes on an array of files, callback, and boolean indicating if git-annex is used.
- * Starts the validation process for a BIDS package.
- */
-const fullTest = (fileList, options, annexed, dir, callback) => {
- const self = BIDS
- self.options = options
-
- const jsonContentsDict = {}
- const bContentsDict = {}
- const events = []
- const stimuli = {
- events: [],
- directory: [],
- }
- const jsonFiles = []
- const headers = []
- const participants = null
- const phenotypeParticipants = []
-
- const tsvs = []
-
- if (self.options.blacklistModalities) {
- const relativePaths = Object.keys(fileList).map(
- (file) => fileList[file].relativePath,
- )
- const preIgnoreModalities = collectModalities(relativePaths)
- self.options.blacklistModalities.map((mod) => {
- if (preIgnoreModalities.primary.includes(mod)) {
- self.issues.push(
- new Issue({
- file: mod,
- evidence: `found ${mod} files`,
- code: 139,
- }),
- )
- }
- })
- }
-
- const summary = utils.collectSummary(fileList, self.options)
-
- // remove size redundancies
- for (const key in fileList) {
- if (fileList.hasOwnProperty(key)) {
- const file = fileList[key]
- if (typeof file.stats === 'object' && file.stats.hasOwnProperty('size'))
- delete file.size
- }
- }
-
- // remove ignored files from list:
- Object.keys(fileList).forEach(function (key) {
- if (fileList[key].ignore) {
- delete fileList[key]
- }
- })
-
- self.issues = self.issues.concat(subSesMismatchTest(fileList))
-
- // check for illegal character in task name and acq name
- self.issues = self.issues.concat(utils.files.illegalCharacterTest(fileList))
-
- const files = groupFileTypes(fileList, self.options)
-
- // generate issues for all files that do not comply with
- // bids spec
- files.invalid.map(function (file) {
- self.issues.push(
- new Issue({
- file: file,
- evidence: file.name,
- code: 1,
- }),
- )
- })
-
- // check if dataset contains T1w
- if (!summary.dataTypes.includes('T1w')) {
- self.issues.push(
- new Issue({
- code: 53,
- }),
- )
- }
-
- validateMisc(files.misc)
- .then((miscIssues) => {
- self.issues = self.issues.concat(miscIssues)
-
- // TSV validation
- return tsv.validate(
- files.tsv,
- fileList,
- tsvs,
- events,
- participants,
- phenotypeParticipants,
- stimuli,
- )
- })
- .then(({ tsvIssues, participantsTsvContent }) => {
- self.issues = self.issues.concat(tsvIssues)
-
- // extract metadata on participants to metadata.age and
- // return metadata on each subject from participants.tsv
- summary.subjectMetadata = collectSubjectMetadata(participantsTsvContent)
- // Bvec validation
- return bvec.validate(files.bvec, bContentsDict)
- })
- .then((bvecIssues) => {
- self.issues = self.issues.concat(bvecIssues)
-
- // Bval validation
- return bval.validate(files.bval, bContentsDict)
- })
- .then((bvalIssues) => {
- self.issues = self.issues.concat(bvalIssues)
-
- // Load json files and construct a contents object with field, value pairs
- return json.load(files.json, jsonFiles, jsonContentsDict)
- })
- .then((jsonLoadIssues) => {
- self.issues = self.issues.concat(jsonLoadIssues)
-
- // Check for at least one subject
- const noSubjectIssues = subjects.atLeastOneSubject(fileList)
- self.issues = self.issues.concat(noSubjectIssues)
-
- // Check for datasetDescription file in the proper place
- const datasetDescriptionIssues = checkDatasetDescription(jsonContentsDict)
- self.issues = self.issues.concat(datasetDescriptionIssues)
-
- // Check for README file in the proper place
- const readmeIssues = checkReadme(fileList)
- self.issues = self.issues.concat(readmeIssues)
-
- // Check for microscopy samples file and json files
- if (summary.modalities.includes('Microscopy')) {
- const samplesIssues = microscopy.checkSamples(fileList)
- const jsonAndFieldIssues = microscopy.checkJSONAndField(
- files,
- jsonContentsDict,
- fileList,
- )
- self.issues = self.issues
- .concat(samplesIssues)
- .concat(jsonAndFieldIssues)
- }
- // Validate json files and contents
- return json.validate(jsonFiles, fileList, jsonContentsDict, summary)
- })
- .then((jsonIssues) => {
- self.issues = self.issues.concat(jsonIssues)
-
- // OME-TIFF consistency check
- return microscopy.validate(files.ome, jsonContentsDict)
- })
- .then((omeIssues) => {
- self.issues = self.issues.concat(omeIssues)
- // Nifti validation
- return NIFTI.validate(
- files.nifti,
- fileList,
- self.options,
- jsonContentsDict,
- bContentsDict,
- events,
- headers,
- annexed,
- dir,
- )
- })
- .then((niftiIssues) => {
- self.issues = self.issues.concat(niftiIssues)
-
- // Issues related to participants not listed in the subjects list
- const participantsInSubjectsIssues = subjects.participantsInSubjects(
- participants,
- summary.subjects,
- )
- self.issues = self.issues.concat(participantsInSubjectsIssues)
-
- // Check for equal number of participants from ./phenotype/*.tsv and participants in dataset
- const phenotypeIssues = tsv.checkPhenotype(phenotypeParticipants, summary)
- self.issues = self.issues.concat(phenotypeIssues)
-
- // Validate nii header fields
- self.issues = self.issues.concat(headerFields(headers))
-
- // Events validation
- stimuli.directory = files.stimuli
- self.issues = self.issues.concat(
- Events.validateEvents(events, stimuli, headers, jsonContentsDict),
- )
-
- // check the HED strings
- return hed(tsvs, jsonContentsDict, jsonFiles)
- })
- .then((hedIssues) => {
- self.issues = self.issues.concat(hedIssues)
-
- // Validate custom fields in all TSVs and add any issues to the list
- self.issues = self.issues.concat(
- tsv.validateTsvColumns(tsvs, jsonContentsDict, headers),
- )
- // Validate continuous recording files
- self.issues = self.issues.concat(
- tsv.validateContRec(files.contRecord, jsonContentsDict),
- )
-
- if (!options.ignoreSubjectConsistency) {
- // Validate session files
- self.issues = self.issues.concat(session(fileList))
- }
-
- // Determine if each subject has data present
- self.issues = self.issues.concat(
- checkAnyDataPresent(fileList, summary.subjects),
- )
-
- // Group summary modalities
- summary.modalities = utils.modalities.group(summary.modalities)
-
- // collect PET specific fields
- if (summary.modalities.includes('PET'))
- summary.pet = collectPetFields(jsonContentsDict)
-
- // Format issues
- const issues = utils.issues.format(self.issues, summary, self.options)
- callback(issues, summary)
- })
- .catch((err) => {
- // take internal exceptions and push to issues
- // note: exceptions caught here may have skipped subsequent validations
- const issues = utils.issues.exceptionHandler(
- err,
- self.issues,
- summary,
- self.options,
- )
- callback(issues, summary)
- })
-}
-
-export default fullTest
diff --git a/bids-validator/validators/bids/groupFileTypes.js b/bids-validator/validators/bids/groupFileTypes.js
deleted file mode 100644
index e0e8a7d8..00000000
--- a/bids-validator/validators/bids/groupFileTypes.js
+++ /dev/null
@@ -1,106 +0,0 @@
-import utils from '../../utils'
-
-const groupFileTypes = (fileList, options) => {
- const files = {
- json: [],
- nifti: [],
- stimuli: [],
- ephys: [],
- tsv: [],
- bval: [],
- bvec: [],
- contRecord: [],
- invalid: [],
- ome: [],
- jpg: [],
- png: [],
- tif: [],
- // used to check all files not already passed through testFile()
- misc: [],
- }
- sortFiles(fileList, options, files)
- return files
-}
-
-const sortFiles = (fileList, options, files) => {
- const keys = Object.keys(fileList)
- keys.forEach((key) => {
- const file = fileList[key]
- const filename = file.name
- if (utils.type.file.isStimuliData(file.relativePath)) {
- // collect stimuli
- files.stimuli.push(file)
- files.misc.push(file)
- } else if (!utils.type.isBIDS(file.relativePath)) {
- // invalid file type
- files.invalid.push(file)
- files.misc.push(file)
- } else if (ofType(filename, 'nii') || ofType(filename, 'nii.gz')) {
- // collect niftis
- files.nifti.push(file)
- } else if (ofType(filename, 'json')) {
- // collect json
- files.json.push(file)
- } else if (ofType(filename, 'tsv')) {
- // collect tsv
- files.tsv.push(file)
- } else if (ofType(filename, 'bval')) {
- // collect bval
- files.bval.push(file)
- } else if (ofType(filename, 'bvec')) {
- // collect bvec
- files.bvec.push(file)
- } else if (ephysTest(filename)) {
- // collect ephys
- files.ephys.push(file)
- files.misc.push(file)
- } else if (ofType(filename, 'tsv.gz')) {
- files.contRecord.push(file)
- } else if (ofType(filename, 'ome.tif') || ofType(filename, 'ome.btf')) {
- // collect ome-tiff
- files.ome.push(file)
- } else if (ofType(filename, 'jpg')) {
- // collect jpg
- files.jpg.push(file)
- } else if (ofType(filename, 'png')) {
- // collect png
- files.png.push(file)
- } else if (
- // collect tif
- ofType(filename, 'tif') &&
- !ofType(filename, 'ome.tif') &&
- !ofType(filename, 'ome.btf')
- ) {
- files.tif.push(file)
- } else {
- files.misc.push(file)
- }
- })
-}
-
-const ephysTest = (filename) => {
- return [
- 'edf',
- 'vhdr',
- 'vmrk',
- 'eeg',
- 'bdf',
- 'set',
- 'fdt',
- 'nwb',
- 'rdat',
- 'ridx',
- 'tdat',
- 'tidx',
- 'tmet',
- 'vidx',
- 'vmet',
- ].includes(filename.split('.').pop())
-}
-
-const ofType = (filename, extension) => {
- const ending = '.' + extension
- return filename && filename.endsWith(ending)
-}
-
-export default groupFileTypes
diff --git a/bids-validator/validators/bids/index.js b/bids-validator/validators/bids/index.js
deleted file mode 100644
index cb2e4e53..00000000
--- a/bids-validator/validators/bids/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import start from './start'
-import reset from './reset'
-import quickTest from './quickTest'
-import quickTestError from './quickTestError'
-import fullTest from './fullTest'
-import subIDsesIDmismatchTest from './subSesMismatchTest'
-
-const options = {}
-const issues = []
-const subIDsesIDmismatchtest = subIDsesIDmismatchTest
-
-export {
- options,
- issues,
- start,
- quickTestError,
- quickTest,
- fullTest,
- subIDsesIDmismatchtest,
- reset,
-}
-
-export default {
- options,
- issues,
- start,
- quickTestError,
- quickTest,
- fullTest,
- subIDsesIDmismatchtest,
- reset,
-}
diff --git a/bids-validator/validators/bids/obj.js b/bids-validator/validators/bids/obj.js
deleted file mode 100644
index 08026c3d..00000000
--- a/bids-validator/validators/bids/obj.js
+++ /dev/null
@@ -1,12 +0,0 @@
-export default {
- options: {},
- issues: [],
- summary: {
- sessions: [],
- subjects: [],
- tasks: [],
- modalities: [],
- totalFiles: [],
- size: 0,
- },
-}
diff --git a/bids-validator/validators/bids/quickTest.js b/bids-validator/validators/bids/quickTest.js
deleted file mode 100644
index 8a092f01..00000000
--- a/bids-validator/validators/bids/quickTest.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Quick Test
- *
- * A quick test to see if it could be a BIDS
- * dataset based on structure/naming. If it
- * could be it will trigger the full validation
- * otherwise it will throw a callback with a
- * generic error.
- */
-const quickTest = (fileList) => {
- const keys = Object.keys(fileList)
- const couldBeBIDS = keys.some((key) => {
- const file = fileList[key]
- let path = file.relativePath
- if (path) {
- path = path.split('/')
- path = path.reverse()
-
- let pathIsSesOrSub =
- path[2] &&
- (path[2].indexOf('ses-') == 0 || path[2].indexOf('sub-') == 0)
-
- return pathIsSesOrSub
- }
- })
- return couldBeBIDS
-}
-
-export default quickTest
diff --git a/bids-validator/validators/bids/quickTestError.js b/bids-validator/validators/bids/quickTestError.js
deleted file mode 100644
index 550eff0b..00000000
--- a/bids-validator/validators/bids/quickTestError.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import path from 'path'
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-import isNode from '../../utils/isNode'
-
-/*
- * Generates an error for quickTest failures
- */
-const quickTestError = function (dir) {
- let filename
- if (isNode) {
- // For Node, grab the path from the dir string
- filename = path.basename(dir)
- } else {
- filename = constructFileName(dir)
- }
- const issue = new Issue({
- code: 61,
- file: {
- name: filename,
- path: path.join('.', filename),
- relativePath: path.join('', filename),
- },
- })
- return issue
-}
-
-const constructFileName = (dir) => {
- try {
- return dir[0].webkitRelativePath.split(path.sep).pop()
- } catch (err) {
- return 'uploaded-directory'
- }
-}
-
-export default quickTestError
diff --git a/bids-validator/validators/bids/reset.js b/bids-validator/validators/bids/reset.js
deleted file mode 100644
index 426546f4..00000000
--- a/bids-validator/validators/bids/reset.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Reset
- *
- * Resets the in object data back to original values.
- */
-
-const reset = (BIDS) => {
- BIDS.issues = []
-}
-
-export default reset
diff --git a/bids-validator/validators/bids/start.js b/bids-validator/validators/bids/start.js
deleted file mode 100644
index 20463ce6..00000000
--- a/bids-validator/validators/bids/start.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import { version } from '../../package.json'
-import BIDS from './obj'
-import reset from './reset'
-import quickTest from './quickTest'
-import quickTestError from './quickTestError'
-import fullTest from './fullTest'
-import utils from '../../utils'
-
-/**
- * Start
- *
- * Takes either a filelist array or
- * a path to a BIDS directory and an
- * options object and starts
- * the validation process and
- * returns the errors and warnings as
- * arguments to the callback.
- */
-const start = (dir, options, callback) => {
- if (!options.json) {
- // eslint-disable-next-line
- console.log(`bids-validator@${version}`)
- }
-
- utils.options.parse(dir, options, async function (issues, options) {
- if (issues && issues.length > 0) {
- // option parsing issues
- callback({ config: issues })
- } else {
- BIDS.options = options
- reset(BIDS)
- const files = await utils.files.readDir(dir, options)
- if (quickTest(files)) {
- // Is the dir using git-annex?
- const annexed = utils.files.remoteFiles.isGitAnnex(dir)
- fullTest(files, BIDS.options, annexed, dir, callback)
- } else {
- // Return an error immediately if quickTest fails
- const issue = quickTestError(dir)
- BIDS.summary.totalFiles = Object.keys(files).length
- callback(utils.issues.format([issue], BIDS.summary, options))
- }
- }
- })
-}
-
-export default start
diff --git a/bids-validator/validators/bids/subSesMismatchTest.js b/bids-validator/validators/bids/subSesMismatchTest.js
deleted file mode 100644
index d800e57e..00000000
--- a/bids-validator/validators/bids/subSesMismatchTest.js
+++ /dev/null
@@ -1,111 +0,0 @@
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-
-/**
- * subid and sesid mismatch test. Generates error if ses-id and sub-id are different for any file, Takes a file list and return issues
- */
-const subSesMismatchTest = (fileList) => {
- const issues = []
-
- // validates if sub/ses-id in filename matches with ses/sub directory file is saved
- const fileKeys = Object.keys(fileList)
- fileKeys.forEach((key) => {
- let file = fileList[key]
- if (utils.type.file.isStimuliData(file.relativePath)) {
- return
- }
- const values = getPathandFileValues(file.relativePath)
-
- const pathValues = values[0]
- const fileValues = values[1]
-
- if (fileValues.sub !== null || fileValues.ses !== null) {
- const subMismatch = fileValues.sub !== pathValues.sub
- const sesMismatch = fileValues.ses !== pathValues.ses
-
- if (subMismatch) {
- issues.push(mismatchError('subject', file))
- }
-
- if (sesMismatch) {
- issues.push(mismatchError('session', file))
- }
- }
- })
- return issues
-}
-
-/**
- * getPathandFileValues
- * Takes a file path and returns values
- * found related to subject and session keys for both path and file keys.
- *
- * @param {string} path the string to extract subject and session level values
- */
-const getPathandFileValues = (path) => {
- const values = {}
- const file_name = {}
-
- // capture subject
- values.sub = captureFromPath(path, /^\/sub-([a-zA-Z0-9]+)/)
-
- // capture session
- values.ses = captureFromPath(path, /^\/sub-[a-zA-Z0-9]+\/ses-([a-zA-Z0-9]+)/)
-
- //capture session and subject id from filename to find if files are in
- // correct sub/ses directory
- const filename = path.replace(/^.*[\\/]/, '')
-
- // capture sub from file name
- file_name.sub = captureFromPath(filename, /^sub-([a-zA-Z0-9]+)/)
-
- // capture session from file name
- file_name.ses = captureFromPath(
- filename,
- /^sub-[a-zA-Z0-9]+_ses-([a-zA-Z0-9]+)/,
- )
-
- return [values, file_name]
-}
-
-/**
- * CaptureFromPath
- *
- * takes a file path and a regex and
- * returns the matched value or null
- *
- * @param {string} path path to test regex against
- * @param {regex} regex regex pattern we wish to test
- */
-const captureFromPath = (path, regex) => {
- const match = regex.exec(path)
- return match && match[1] ? match[1] : null
-}
-
-/**
- *
- * Mismatch Error
- *
- * generates the Issue object for session / subject
- * mismatch
- *
- * @param {string} type error type - session or subject
- * @param {object} file file responsible for the error
- */
-const mismatchError = (type, file) => {
- let code, abbrv
- if (type == 'session') {
- code = 65
- abbrv = 'ses'
- } else {
- code = 64
- abbrv = 'sub'
- }
- return new Issue({
- code: code,
- evidence: `File: ${file.relativePath} is saved in incorrect ${type} directory as per ${abbrv}-id in filename.`,
- file: file,
- })
-}
-
-export default subSesMismatchTest
diff --git a/bids-validator/validators/bids/subjects.js b/bids-validator/validators/bids/subjects.js
deleted file mode 100644
index ea0d0963..00000000
--- a/bids-validator/validators/bids/subjects.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-
-const participantsInSubjects = (participants, subjects) => {
- const issues = []
- if (participants) {
- const participantsFromFile = participants.list.sort()
- const participantsFromFolders = subjects.sort()
- if (
- !utils.array.equals(participantsFromFolders, participantsFromFile, true)
- ) {
- const evidence = constructMismatchEvidence(
- participantsFromFile,
- participantsFromFolders,
- )
- issues.push(
- new Issue({
- code: 49,
- evidence: evidence,
- file: participants.file,
- }),
- )
- }
- }
- return issues
-}
-
-const constructMismatchEvidence = (participants, subjects) => {
- const diffs = utils.array.diff(participants, subjects)
- const subjectsNotInSubjectsArray = diffs[0]
- const subjectsNotInParticipantsArray = diffs[1]
- const evidenceOfMissingParticipants = subjectsNotInParticipantsArray.length
- ? 'Subjects ' +
- subjectsNotInParticipantsArray.join(', ') +
- ' were found in the folder structure but are missing in participants.tsv. '
- : ''
- const evidenceOfMissingSubjects = subjectsNotInSubjectsArray.length
- ? 'Subjects ' +
- subjectsNotInSubjectsArray.join(', ') +
- ' were found in participants.tsv but are not present in the folder structure. '
- : ''
- const evidence = evidenceOfMissingParticipants + evidenceOfMissingSubjects
- return evidence
-}
-
-const atLeastOneSubject = (fileList) => {
- const issues = []
- const fileKeys = Object.keys(fileList)
- const hasSubjectDir = fileKeys.some((key) => {
- const file = fileList[key]
- return file.relativePath && file.relativePath.startsWith('/sub-')
- })
- if (!hasSubjectDir) {
- issues.push(new Issue({ code: 45 }))
- }
- return issues
-}
-
-export default {
- participantsInSubjects,
- atLeastOneSubject,
-}
diff --git a/bids-validator/validators/bval/bval.js b/bids-validator/validators/bval/bval.js
deleted file mode 100644
index 1ef92109..00000000
--- a/bids-validator/validators/bval/bval.js
+++ /dev/null
@@ -1,82 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-import { type } from '../../utils'
-
-/**
- * bval
- *
- * Takes a bval file, its contents as a string
- * and a callback as arguments. Callsback
- * with any issues it finds while validating
- * against the BIDS specification.
- */
-export default function bval(file, contents, callback) {
- let issues = []
-
- // break val if type of contents is not string
- issues = issues.concat(checkType(contents, file))
- if (issues.length) {
- return callback(issues)
- }
-
- // check number of rows in contents
- issues = issues.concat(checkNumberOfRows(contents, file))
-
- // check for proper separator and value type
- issues = issues.concat(checkSeparatorAndValueType(contents, file))
-
- callback(issues)
-}
-
-function checkType(contents, file) {
- const issues = []
- // throw error if contents are not string
- if (!type.checkType(contents, 'string')) {
- const evidence =
- 'The contents of this .bval file have type ' +
- typeof contents +
- ' but should be a string.'
- issues.push(
- new Issue({
- code: 89,
- file: file,
- evidence: evidence,
- }),
- )
- }
- return issues
-}
-
-function checkSeparatorAndValueType(contents, file) {
- const issues = []
- const row = contents.replace(/^\s+|\s+$/g, '').split(' ')
- let invalidValue = false
- for (let j = 0; j < row.length; j++) {
- const value = row[j]
- if (!type.checkType(value, 'number')) {
- invalidValue = true
- }
- }
- if (invalidValue) {
- issues.push(
- new Issue({
- code: 47,
- file: file,
- }),
- )
- }
- return issues
-}
-
-function checkNumberOfRows(contents, file) {
- const issues = []
- const numberOfRows = contents.replace(/^\s+|\s+$/g, '').split('\n').length
- if (numberOfRows !== 1) {
- issues.push(
- new Issue({
- code: 30,
- file: file,
- }),
- )
- }
- return issues
-}
diff --git a/bids-validator/validators/bval/index.js b/bids-validator/validators/bval/index.js
deleted file mode 100644
index e7676d76..00000000
--- a/bids-validator/validators/bval/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import bval from './bval'
-import validate from './validate'
-
-export { bval, validate }
-
-export default {
- bval,
- validate,
-}
diff --git a/bids-validator/validators/bval/validate.js b/bids-validator/validators/bval/validate.js
deleted file mode 100644
index f686960d..00000000
--- a/bids-validator/validators/bval/validate.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import utils from '../../utils'
-import bval from './bval'
-
-const validate = (files, bContentsDict, annexed, dir) => {
- let issues = []
- // validate bval
- const bvalPromises = files.map(function (file) {
- return utils.limit(
- () =>
- new Promise((resolve, reject) => {
- utils.files
- .readFile(file, annexed, dir)
- .then((contents) => {
- bContentsDict[file.relativePath] = contents
- bval(file, contents, function (bvalIssues) {
- issues = issues.concat(bvalIssues)
- resolve()
- })
- })
- .catch((err) =>
- utils.issues.redirect(err, reject, () => {
- issues.push(err)
- resolve()
- }),
- )
- }),
- )
- })
- return Promise.all(bvalPromises).then(() => issues)
-}
-
-export default validate
diff --git a/bids-validator/validators/bvec/bvec.js b/bids-validator/validators/bvec/bvec.js
deleted file mode 100644
index 3d0c639b..00000000
--- a/bids-validator/validators/bvec/bvec.js
+++ /dev/null
@@ -1,98 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-import { type } from '../../utils'
-
-/**
- * bvec
- *
- * Takes a bvec file, its contents as a string
- * and a callback as arguments. Callsback
- * with any issues it finds while validating
- * against the BIDS specification.
- */
-export default function bvec(file, contents, callback) {
- let issues = []
-
- issues = issues.concat(checkType(contents, file))
- if (issues.length) {
- return callback(issues)
- }
-
- // check that there are exactly three rows
- issues = issues.concat(checkNumberOfRows(contents, file))
-
- // check that each row is the same length
- issues = issues.concat(checkRowConsistency(contents, file))
-
- // check that each value is a number
- issues = issues.concat(checkValueValidity(contents, file))
-
- callback(issues)
-}
-
-function checkType(contents, file) {
- const issues = []
- // throw error if contents are undefined or the wrong type
- if (!type.checkType(contents, 'string')) {
- const evidence = contents
- ? 'The contents of this .bvec file have type ' +
- typeof contents +
- ' but should be a string.'
- : 'The contents of this .bvec file are undefined.'
- issues.push(
- new Issue({
- code: 88,
- file: file,
- evidence: evidence,
- }),
- )
- }
- return issues
-}
-
-function checkNumberOfRows(contents, file) {
- const issues = []
- if (contents.replace(/^\s+|\s+$/g, '').split('\n').length !== 3) {
- issues.push(
- new Issue({
- code: 31,
- file: file,
- }),
- )
- }
- return issues
-}
-
-function checkRowConsistency(contents, file) {
- let rowLength = false
-
- const rows = contents.replace(/^\s+|\s+$/g, '').split('\n')
-
- for (let i = 0; i < rows.length; i++) {
- const row = rows[i].replace(/^\s+|\s+$/g, '').split(' ')
- if (!rowLength) {
- rowLength = row.length
- }
-
- // check for consistent row length
- if (rowLength !== row.length) {
- return [new Issue({ code: 46, file: file })]
- }
- }
- return []
-}
-
-function checkValueValidity(contents, file) {
- const rows = contents.replace(/^\s+|\s+$/g, '').split('\n')
- for (let i = 0; i < rows.length; i++) {
- const row = rows[i].replace(/^\s+|\s+$/g, '').split(' ')
-
- // check for proper separator and value type
- const hasIssue = row
- .map((value) => !type.checkType(value, 'number'))
- .some((val) => val)
- if (hasIssue) {
- return [new Issue({ code: 47, file: file })]
- }
- }
- return []
-}
diff --git a/bids-validator/validators/bvec/index.js b/bids-validator/validators/bvec/index.js
deleted file mode 100644
index 682eb4b8..00000000
--- a/bids-validator/validators/bvec/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import bvec from './bvec'
-import validate from './validate'
-
-export { bvec, validate }
-
-export default {
- bvec,
- validate,
-}
diff --git a/bids-validator/validators/bvec/validate.js b/bids-validator/validators/bvec/validate.js
deleted file mode 100644
index 62a4a0bb..00000000
--- a/bids-validator/validators/bvec/validate.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import utils from '../../utils'
-import bvec from './bvec'
-
-const validate = (files, bContentsDict, annexed, dir) => {
- // validate bvec
- let issues = []
- const bvecPromises = files.map(function (file) {
- return utils.limit(
- () =>
- new Promise((resolve, reject) => {
- utils.files
- .readFile(file, annexed, dir)
- .then((contents) => {
- bContentsDict[file.relativePath] = contents
- bvec(file, contents, function (bvecIssues) {
- issues = issues.concat(bvecIssues)
- resolve()
- })
- })
- .catch((err) =>
- utils.issues.redirect(err, reject, () => {
- issues.push(err)
- resolve()
- }),
- )
- }),
- )
- })
- return Promise.all(bvecPromises).then(() => issues)
-}
-
-export default validate
diff --git a/bids-validator/validators/checkAnyDataPresent.js b/bids-validator/validators/checkAnyDataPresent.js
deleted file mode 100644
index 28e9d170..00000000
--- a/bids-validator/validators/checkAnyDataPresent.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import utils from '../utils'
-var Issue = utils.issues.Issue
-
-// Match sub-.../... files, except sub-emptyroom
-const matchSubjectPath = (file) =>
- file.relativePath.match(/sub-((?!emptyroom).*?)(?=\/)/)
-
-// Helper for filtering unique values in an array
-const uniqueArray = (value, index, self) => self.indexOf(value) === index
-
-/**
- * Find unique subjects from FileList
- * @param {object} fileList Browser FileList or Node equivalent
- */
-const getFolderSubjects = (fileList) =>
- Object.values(fileList)
- .filter(matchSubjectPath)
- .map((f) => matchSubjectPath(f)[1])
- .filter(uniqueArray)
-
-/**
- * checkAnyDataPresent
- *
- * Takes a list of files and participants with valid data. Checks if they match.
- */
-function checkAnyDataPresent(fileList, summarySubjects) {
- var issues = []
- var folderSubjects = getFolderSubjects(fileList)
- var subjectsWithoutAnyValidData = folderSubjects.filter(function (i) {
- return summarySubjects.indexOf(i) < 0
- })
-
- for (var i = 0; i < subjectsWithoutAnyValidData.length; i++) {
- var missingSubject = subjectsWithoutAnyValidData[i]
- var subFolder = '/sub-' + missingSubject
- issues.push(
- new Issue({
- file: {
- relativePath: subFolder,
- webkitRelativePath: subFolder,
- name: subFolder,
- path: subFolder,
- },
- reason: 'No BIDS compatible data found for subject ' + missingSubject,
- code: 67,
- }),
- )
- }
- return issues
-}
-
-export default checkAnyDataPresent
-export { getFolderSubjects }
diff --git a/bids-validator/validators/events/events.js b/bids-validator/validators/events/events.js
deleted file mode 100644
index 8df4fe37..00000000
--- a/bids-validator/validators/events/events.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/* eslint-disable no-unused-vars */
-
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-
-export default function (events, stimuli, headers, jsonContents) {
- // check that all stimuli files present in /stimuli are included in an _events.tsv file
- const stimuliIssues = checkStimuli(stimuli)
-
- // check the events file for suspiciously long or short durations
- const designIssues = checkDesignLength(events, headers, jsonContents)
-
- return [].concat(stimuliIssues, designIssues)
-}
-
-const checkStimuli = function (stimuli) {
- const issues = []
- const stimuliFromEvents = stimuli.events
- const stimuliFromDirectory = stimuli.directory
- if (stimuliFromDirectory) {
- const unusedStimuli = stimuliFromDirectory.filter(function (stimuli) {
- return stimuliFromEvents.indexOf(stimuli.relativePath) < 0
- })
- for (let key of unusedStimuli) {
- const stimulus = unusedStimuli[key]
- issues.push(
- new Issue({
- code: 77,
- file: stimulus,
- }),
- )
- }
- }
- return issues
-}
-
-const checkDesignLength = function (events, headers, jsonContents) {
- const issues = []
- // get all headers associated with task data
- const taskHeaders = headers.filter((header) => {
- const file = header[0]
- return file.relativePath.includes('_task-')
- })
-
- // loop through headers with files that are tasks
- taskHeaders.forEach((taskHeader) => {
- // extract the fourth element of 'dim' field of header - this is the
- // number of volumes that were obtained during scan (numVols)
- const file = taskHeader[0]
- const header = taskHeader[1]
- const dim = header.dim
- const numVols = dim[4]
-
- // get the json sidecar dictionary associated with that nifti scan
- const potentialSidecars = utils.files.potentialLocations(
- file.relativePath.replace('.gz', '').replace('.nii', '.json'),
- )
- const mergedDictionary = utils.files.generateMergedSidecarDict(
- potentialSidecars,
- jsonContents,
- )
-
- // extract the 'RepetitionTime' field from said sidecar (TR)
- const TR = mergedDictionary.RepetitionTime
-
- // calculate max reasonable scan time (TR * numVols = longDurationThreshold)
- const longDurationThreshold = Math.floor(TR * numVols)
-
- // calculate min reasonable scan time (.5 * TR * numVols = shortDurationThreshold)
- const shortDurationThreshold = Math.floor(0.5 * longDurationThreshold)
-
- // get the _events.tsv associated with this task scan
- const potentialEvents = utils.files.potentialLocations(
- file.relativePath.replace('.gz', '').replace('bold.nii', 'events.tsv'),
- )
- const associatedEvents = events.filter(
- (event) => potentialEvents.indexOf(event.path) > -1,
- )
-
- // loop through all events associated with this task scan
- for (let event of associatedEvents) {
- // get all non-empty rows
- const rows = event.contents
- .split('\n')
- .filter((row) => !(!row || /^\s*$/.test(row)))
-
- // get the 'onset' field of the last event (lastEventOnset)
- const lastEventOnset = rows[rows.length - 1].trim().split('\t')[0]
-
- // check if lastEventOnset > longDurationThreshold - append issue if so
- if (lastEventOnset > longDurationThreshold) {
- issues.push(
- new Issue({
- file: event.file,
- code: 85,
- }),
- )
- }
-
- // check if the lastEventOnset < shortDurationThreshold - append issue if so
- if (lastEventOnset < shortDurationThreshold) {
- issues.push(
- new Issue({
- file: event.file,
- code: 86,
- }),
- )
- }
- }
- })
- return issues
-}
diff --git a/bids-validator/validators/events/index.js b/bids-validator/validators/events/index.js
deleted file mode 100644
index 7e19d4c8..00000000
--- a/bids-validator/validators/events/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import events from './events'
-import validate from './validate'
-
-export default {
- events: events,
- validateEvents: validate,
-}
diff --git a/bids-validator/validators/events/validate.js b/bids-validator/validators/events/validate.js
deleted file mode 100644
index 7ce367cb..00000000
--- a/bids-validator/validators/events/validate.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import eventsTest from './events'
-
-export default eventsTest
diff --git a/bids-validator/validators/headerFields.js b/bids-validator/validators/headerFields.js
deleted file mode 100644
index 3684c498..00000000
--- a/bids-validator/validators/headerFields.js
+++ /dev/null
@@ -1,297 +0,0 @@
-import utils from '../utils'
-var Issue = utils.issues.Issue
-import isNode from '../utils/isNode'
-
-/**
- * dimensions and resolution
- *
- * Checks dimensions and resolution for x, y, z, and time across subjects to
- * ensure they are consistent.
- *
- * The fields we are interested in are all arrays and we are only looking at
- * the first for values in those arrays. To handle single values or longer
- * arrays more arguments will need to be added to headerField.
- */
-
-const headerFields = (headers) => {
- var finalIssues = []
- var allIssues39Dict = {}
- var fields = ['dim', 'pixdim']
-
- /* turn a list of dicts into a dict of lists */
- for (var i = 0; i < fields.length; i++) {
- var field = fields[i]
- var issues = headerField(headers, field)
- issues.forEach((issue) => {
- if (issue.code == 39) {
- if (allIssues39Dict.hasOwnProperty(issue.file.relativePath)) {
- allIssues39Dict[issue.file.relativePath].push(issue)
- } else {
- allIssues39Dict[issue.file.relativePath] = [issue]
- }
- } else {
- finalIssues.push(issue)
- }
- })
- }
-
- finalIssues = finalIssues.concat(collect39Issues(allIssues39Dict))
-
- return finalIssues
-}
-
-const collect39Issues = (allIssues39Dict) => {
- const finalIssues = []
- for (let file of Object.keys(allIssues39Dict)) {
- const firstIssue = allIssues39Dict[file][0]
- let evidence = ''
- for (var issue of allIssues39Dict[file]) {
- evidence = evidence + ' ' + issue.reason
- }
- firstIssue.reason = evidence
- finalIssues.push(firstIssue)
- }
- return finalIssues
-}
-
-/**
- * Key to headerField working is the fact that we take and array of values
- * from the nifti header and convert it to a string. This string is used to
- * compare the header field value against other header field values and is used
- * as an attribute in the object nifti_types. Nifti types refers to the
- * different types of nifti files we are comparing across subjects. Only the
- * dimensionality of similar anatomy/functional/dwi headers are being compared.
- */
-
-const headerField = (headers, field) => {
- var nifti_types = {}
- var issues = []
- for (var header_index = 0; header_index < headers.length; header_index++) {
- var badField = false
- var field_value
- var file = headers[header_index][0]
- var filename
- var header = headers[header_index][1]
- var match
- var path = file.relativePath
- var subject
-
- if (field === 'dim') {
- if (
- typeof header[field] === 'undefined' ||
- header[field] === null ||
- header[field].length < header[field][0]
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 40,
- }),
- )
- continue
- } else if (
- file.name.indexOf('_bold') > -1 &&
- (header[field][0] !== 4 || header[field].length !== 5)
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 54,
- evidence: 'header field "dim" = ' + header[field],
- }),
- )
- continue
- } else if (
- (file.name.indexOf('magnitude1') > -1 ||
- file.name.indexOf('magnitude2') > -1) &&
- header[field].length !== 4
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 94,
- evidence: 'this magnitude file has more than three dimensions. ',
- }),
- )
- continue
- } else if (file.name.indexOf('T1w') > -1 && header[field].length !== 4) {
- issues.push(
- new Issue({
- file: file,
- code: 95,
- evidence: 'this T1w file does not have exactly three dimensions. ',
- }),
- )
- }
- field_value = header[field].slice(1, header[field][0] + 1).toString()
- } else if (field === 'pixdim') {
- if (
- typeof header['xyzt_units'] === 'undefined' ||
- header['xyzt_units'] === null ||
- header['xyzt_units'].length < 4
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 41,
- }),
- )
- badField = true
- }
- if (
- typeof header['pixdim'] === 'undefined' ||
- header['pixdim'] === null ||
- header['pixdim'].length < 4
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 42,
- }),
- )
- badField = true
- }
- if (header['qform_code'] === 0 && header['sform_code'] === 0) {
- issues.push(
- new Issue({
- file: file,
- code: 60,
- }),
- )
- badField = true
- }
- if (badField === true) {
- continue
- }
- field_value = []
- var pix_dim = header[field].slice(1, 5)
- var units = header['xyzt_units'].slice(0, 4)
- for (var i = 0; i < pix_dim.length; i++) {
- field_value.push('' + pix_dim[i].toFixed(2) + units[i])
- }
- field_value = field_value.toString()
- } else {
- console.warn(
- 'Checks against header field: ' + field + ' are currently unsupported.',
- )
- return
- }
-
- if (!file || (!isNode && !file.webkitRelativePath)) {
- continue
- }
-
- //match the subject identifier up to the '/' in the full path to a file.
- match = path.match(/sub-(.*?)(?=\/)/)
- if (match === null) {
- continue
- } else {
- subject = match[0]
- }
- // files are prepended with subject name, the following two commands
- // remove the subject from the file name to allow filenames to be more
- // easily compared
- filename = path.substring(path.match(subject).index + subject.length)
- filename = filename.replace(subject, '')
-
- // generalize the run number so we can compare counts across all runs
- match = filename.match(/run-\d+/)
- if (match !== null) {
- filename = filename.replace(match[0], '')
- }
-
- if (!nifti_types.hasOwnProperty(filename)) {
- nifti_types[filename] = {}
- nifti_types[filename][field_value] = { count: 1, files: [file] }
- } else {
- if (!nifti_types[filename].hasOwnProperty(field_value)) {
- nifti_types[filename][field_value] = { count: 1, files: [file] }
- } else {
- nifti_types[filename][field_value].count += 1
- nifti_types[filename][field_value].files.push(file)
- }
- }
- }
- for (let nifti_key of Object.keys(nifti_types)) {
- const nifti_type = nifti_types[nifti_key]
- let max_field_value = Object.keys(nifti_type)[0]
- for (let field_value_key in nifti_type) {
- if (nifti_type.hasOwnProperty(field_value_key)) {
- field_value = nifti_type[field_value_key]
- if (field_value.count > nifti_type[max_field_value].count) {
- max_field_value = field_value_key
- }
- }
- }
- for (let field_value_key of Object.keys(nifti_type)) {
- field_value = nifti_type[field_value_key]
- if (
- max_field_value !== field_value_key &&
- headerFieldCompare(max_field_value, field_value_key)
- ) {
- for (
- var nifti_file_index = 0;
- nifti_file_index < field_value.files.length;
- nifti_file_index++
- ) {
- var nifti_file = field_value.files[nifti_file_index]
- var evidence
- if (field === 'dim') {
- evidence =
- 'The most common set of dimensions is: ' +
- max_field_value +
- ' (voxels), This file has the dimensions: ' +
- field_value_key +
- ' (voxels).'
- } else if (field === 'pixdim') {
- evidence =
- 'The most common resolution is: ' +
- max_field_value.replace(/,/g, ' x ') +
- ', This file has the resolution: ' +
- field_value_key.replace(/,/g, ' x ') +
- '.'
- }
- issues.push(
- new Issue({
- file: nifti_file,
- reason: evidence,
- code: 39,
- }),
- )
- }
- }
- }
- }
- return issues
-}
-
-/**
- * if elements of the two arrays differ by less than one we won't raise a
- * warning about them. There are a large number of floating point rounding
- * errors that cause resolutions to be slightly different. Returns true if
- * the two headers are significantly different
- */
-const headerFieldCompare = (header1, header2) => {
- var hdr1 = header1.split(',')
- var hdr2 = header2.split(',')
- if (hdr1.length !== hdr2.length) {
- return true
- }
- for (var i = 0; i < hdr1.length; i++) {
- var hdr1_val = Number(hdr1[i].match(/-?\d*\.?\d*/))
- var hdr2_val = Number(hdr2[i].match(/-?\d*\.?\d*/))
- // Matching alphas with * will return '' on headers without units
- var hdr1_unit = hdr1[i].match(/[A-Za-z]*$/)[0]
- var hdr2_unit = hdr2[i].match(/[A-Za-z]*$/)[0]
- if (Math.abs(hdr1_val - hdr2_val) > 0.00001) {
- return true
- }
- if (hdr1_unit !== hdr2_unit) {
- return true
- }
- }
- return false
-}
-
-export default headerFields
-export { collect39Issues }
diff --git a/bids-validator/validators/hed.js b/bids-validator/validators/hed.js
deleted file mode 100644
index 4dde02b4..00000000
--- a/bids-validator/validators/hed.js
+++ /dev/null
@@ -1,96 +0,0 @@
-import hedValidator from 'hed-validator'
-import utils from '../utils'
-
-const Issue = utils.issues.Issue
-
-export default async function returnHedIssues(tsvs, jsonContents, jsonFiles) {
- const issues = await checkHedStrings(tsvs, jsonContents, jsonFiles)
- return issues.map((issue) => new Issue(issue))
-}
-
-async function checkHedStrings(tsvs, jsonContents, jsonFiles) {
- const datasetDescription = jsonContents['/dataset_description.json']
- const datasetDescriptionData = new hedValidator.bids.BidsJsonFile(
- '/dataset_description.json',
- datasetDescription,
- getSidecarFileObject('/dataset_description.json', jsonFiles),
- )
-
- let hedSchemas
- try {
- hedSchemas = await hedValidator.bids.buildBidsSchemas(
- datasetDescriptionData,
- null,
- )
- } catch (issueError) {
- return hedValidator.bids.BidsHedIssue.fromHedIssues(
- issueError,
- datasetDescriptionData.file,
- )
- }
-
- const issues = []
- for (const [sidecarName, sidecarContents] of Object.entries(jsonContents)) {
- try {
- const sidecarFile = buildSidecar(sidecarName, sidecarContents, jsonFiles)
- issues.push(...validateFile(sidecarFile, hedSchemas))
- } catch (e) {
- issues.push(new Issue({ code: 109 }))
- return issues
- }
- }
-
- if (issues.some((issue) => issue.isError())) {
- return issues
- }
-
- for (const tsv of tsvs) {
- try {
- const tsvFile = buildTsv(tsv, jsonContents)
- issues.push(...validateFile(tsvFile, hedSchemas))
- } catch (e) {
- issues.push(new Issue({ code: 109 }))
- return issues
- }
- }
-
- return issues
-}
-
-function buildSidecar(sidecarName, sidecarContents, jsonFiles) {
- const file = getSidecarFileObject(sidecarName, jsonFiles)
-
- return new hedValidator.bids.BidsSidecar(sidecarName, sidecarContents, file)
-}
-
-function buildTsv(tsv, jsonContents) {
- const potentialSidecars = utils.files.potentialLocations(
- tsv.file.relativePath.replace('.tsv', '.json'),
- )
- const mergedDictionary = utils.files.generateMergedSidecarDict(
- potentialSidecars,
- jsonContents,
- )
-
- return new hedValidator.bids.BidsTsvFile(
- tsv.file.relativePath,
- tsv.contents,
- tsv.file,
- potentialSidecars,
- mergedDictionary,
- )
-}
-
-function validateFile(file, hedSchemas) {
- const issues = file.validate(hedSchemas)
- if (issues === null) {
- throw new Error()
- }
- return issues
-}
-
-function getSidecarFileObject(sidecarName, jsonFiles) {
- return jsonFiles.filter((file) => {
- return file.relativePath === sidecarName
- })[0]
-}
diff --git a/bids-validator/validators/index.js b/bids-validator/validators/index.js
deleted file mode 100644
index f8599726..00000000
--- a/bids-validator/validators/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// dependencies ------------------------------------------------------
-import 'cross-fetch/polyfill'
-
-import tsv from './tsv'
-import json from './json'
-import { NIFTI } from './nifti'
-import { start as BIDS } from './bids'
-import Events from './events'
-import { bval } from './bval'
-import { bvec } from './bvec'
-import utils from '../utils'
-import consoleFormat from '../utils/consoleFormat'
-
-// public api --------------------------------------------------------
-
-const validate = {
- BIDS: BIDS,
- JSON: json.json,
- TSV: tsv,
- NIFTI,
- Events: Events,
- bval: bval,
- bvec: bvec,
- reformat: utils.issues.reformat,
- utils: utils,
- consoleFormat,
-}
-
-// exports -----------------------------------------------------------
-
-export default validate
diff --git a/bids-validator/validators/json/index.js b/bids-validator/validators/json/index.js
deleted file mode 100644
index e5555e84..00000000
--- a/bids-validator/validators/json/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import json from './json'
-import validate from './validate'
-import load from './load'
-
-export default {
- json: json,
- validate: validate,
- load: load,
-}
diff --git a/bids-validator/validators/json/json.js b/bids-validator/validators/json/json.js
deleted file mode 100644
index a6b01a9c..00000000
--- a/bids-validator/validators/json/json.js
+++ /dev/null
@@ -1,204 +0,0 @@
-import utils from '../../utils'
-import Ajv from 'ajv'
-const ajv = new Ajv({ allErrors: true, strictSchema: false })
-ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json'))
-ajv.addSchema(require('./schemas/common_definitions.json'))
-const Issue = utils.issues.Issue
-
-/**
- * JSON
- *
- * Takes a JSON file as a string and a callback
- * as arguments. And callsback with any errors
- * it finds while validating against the BIDS
- * specification.
- */
-export default function (file, jsonContentsDict, callback) {
- // primary flow --------------------------------------------------------------------
- let issues = []
- const potentialSidecars = utils.files.potentialLocations(file.relativePath)
- const mergedDictionary = utils.files.generateMergedSidecarDict(
- potentialSidecars,
- jsonContentsDict,
- )
- if (mergedDictionary) {
- issues = issues.concat(checkUnits(file, mergedDictionary))
- issues = issues.concat(compareSidecarProperties(file, mergedDictionary))
- }
- callback(issues, mergedDictionary)
-}
-
-// individual checks ---------------------------------------------------------------
-
-function checkUnits(file, sidecar) {
- let issues = []
- const schema = selectSchema(file)
- issues = issues.concat(validateSchema(file, sidecar, schema))
-
- issues = issues.concat(
- checkSidecarUnits(file, sidecar, { field: 'RepetitionTime', min: 100 }, 2),
- )
-
- issues = issues.concat(
- checkSidecarUnits(file, sidecar, { field: 'EchoTime', min: 1 }, 3),
- )
- issues = issues.concat(
- checkSidecarUnits(file, sidecar, { field: 'EchoTime1', min: 1 }, 4),
- )
- issues = issues.concat(
- checkSidecarUnits(file, sidecar, { field: 'EchoTime2', min: 1 }, 4),
- )
- issues = issues.concat(
- checkSidecarUnits(file, sidecar, { field: 'TotalReadoutTime', min: 10 }, 5),
- )
-
- return issues
-}
-
-const compareSidecarProperties = (file, sidecar) => {
- const issues = []
-
- // check that EffectiveEchoSpacing < TotalReadoutTime
- if (
- sidecar.hasOwnProperty('TotalReadoutTime') &&
- sidecar.hasOwnProperty('EffectiveEchoSpacing') &&
- sidecar['TotalReadoutTime'] < sidecar['EffectiveEchoSpacing']
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 93,
- }),
- )
- }
- return issues
-}
-
-const selectSchema = (file) => {
- let schema = null
- if (file.name) {
- if (file.name.endsWith('participants.json')) {
- schema = require('./schemas/data_dictionary.json')
- } else if (
- file.name.endsWith('bold.json') ||
- file.name.endsWith('sbref.json')
- ) {
- schema = require('./schemas/bold.json')
- } else if (file.name.endsWith('asl.json')) {
- schema = require('./schemas/asl.json')
- } else if (file.name.endsWith('pet.json')) {
- schema = require('./schemas/pet.json')
- } else if (file.name.endsWith('nirs.json')) {
- schema = require('./schemas/nirs.json')
- } else if (file.relativePath === '/dataset_description.json') {
- schema = require('./schemas/dataset_description.json')
- } else if (file.name.endsWith('meg.json')) {
- schema = require('./schemas/meg.json')
- } else if (file.name.endsWith('ieeg.json')) {
- schema = require('./schemas/ieeg.json')
- } else if (file.name.endsWith('eeg.json')) {
- schema = require('./schemas/eeg.json')
- } else if (
- file.name.endsWith('TEM.json') ||
- file.name.endsWith('SEM.json') ||
- file.name.endsWith('uCT.json') ||
- file.name.endsWith('BF.json') ||
- file.name.endsWith('DF.json') ||
- file.name.endsWith('PC.json') ||
- file.name.endsWith('DIC.json') ||
- file.name.endsWith('FLUO.json') ||
- file.name.endsWith('CONF.json') ||
- file.name.endsWith('PLI.json') ||
- file.name.endsWith('CARS.json') ||
- file.name.endsWith('2PE.json') ||
- file.name.endsWith('MPE.json') ||
- file.name.endsWith('SR.json') ||
- file.name.endsWith('NLO.json') ||
- file.name.endsWith('OCT.json') ||
- file.name.endsWith('SPIM.json')
- ) {
- schema = require('./schemas/microscopy.json')
- } else if (
- file.relativePath.includes('/micr') &&
- file.name.endsWith('photo.json')
- ) {
- schema = require('./schemas/microscopy_photo.json')
- } else if (
- file.relativePath.includes('/meg/') &&
- file.name.endsWith('coordsystem.json')
- ) {
- schema = require('./schemas/coordsystem_meg.json')
- } else if (
- file.relativePath.includes('/ieeg/') &&
- file.name.endsWith('coordsystem.json')
- ) {
- schema = require('./schemas/coordsystem_ieeg.json')
- } else if (
- file.relativePath.includes('/eeg/') &&
- file.name.endsWith('coordsystem.json')
- ) {
- schema = require('./schemas/coordsystem_eeg.json')
- } else if (
- file.relativePath.includes('/nirs/') &&
- file.name.endsWith('coordsystem.json')
- ) {
- schema = require('./schemas/coordsystem_nirs.json')
- } else if (file.name.endsWith('genetic_info.json')) {
- schema = require('./schemas/genetic_info.json')
- } else if (
- file.relativePath.includes('/pet/') &&
- file.name.endsWith('blood.json')
- ) {
- schema = require('./schemas/pet_blood.json')
- } else if (
- file.name.endsWith('physio.json') ||
- file.name.endsWith('stim.json')
- ) {
- schema = require('./schemas/physio.json')
- } else if (file.name.endsWith('events.json')) {
- schema = require('./schemas/events.json')
- } else if (file.name.endsWith('beh.json')) {
- schema = require('./schemas/beh.json')
- } else if (file.name.endsWith('_motion.json')) {
- schema = require('./schemas/motion.json')
- } else if (file.name.endsWith('_channels.json')) {
- schema = require('./schemas/channels.json')
- }
- }
- return schema
-}
-
-const validateSchema = (file, sidecar, schema) => {
- const issues = []
- if (schema) {
- const validate = ajv.compile(schema)
- const valid = validate(sidecar)
- if (!valid) {
- validate.errors.map((error) =>
- issues.push(
- new Issue({
- file: file,
- code: 55,
- evidence: error.dataPath + ' ' + error.message,
- }),
- ),
- )
- }
- }
- return issues
-}
-
-const checkSidecarUnits = (file, sidecar, fieldObj, errCode) => {
- const issues = []
- const field = fieldObj.field
- const min = fieldObj.min
- if (sidecar.hasOwnProperty(field) && sidecar[field] > min) {
- issues.push(
- new Issue({
- code: errCode,
- file: file,
- }),
- )
- }
- return issues
-}
diff --git a/bids-validator/validators/json/load.js b/bids-validator/validators/json/load.js
deleted file mode 100644
index 9c0c0e72..00000000
--- a/bids-validator/validators/json/load.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import utils from '../../utils'
-
-class JSONParseError extends Error {
- constructor(message) {
- super(message)
- this.name = 'JSONParseError'
- }
-}
-
-const load = (files, jsonFiles, jsonContentsDict, annexed, dir) => {
- let issues = []
-
- // Read JSON file contents and parse for issues
- const readJsonFile = (file, annexed, dir) =>
- utils.files
- .readFile(file, annexed, dir)
- .then((contents) => utils.json.parse(file, contents))
- .then(({ issues: parseIssues, parsed }) => {
- // Append any parse issues to returned issues
- Array.prototype.push.apply(issues, parseIssues)
-
- // Abort further tests if an error is found
- if (
- parseIssues &&
- parseIssues.some((issue) => issue.severity === 'error')
- ) {
- throw new JSONParseError('Aborted due to parse error')
- }
-
- jsonContentsDict[file.relativePath] = parsed
- jsonFiles.push(file)
- })
-
- // Start concurrent read/parses
- const fileReads = files.map((file) =>
- utils.limit(() => readJsonFile(file, annexed, dir)),
- )
-
- // After all reads/parses complete, return any found issues
- return Promise.all(fileReads)
- .then(() => issues)
- .catch((err) => {
- // Handle early exit
- if (err instanceof JSONParseError) {
- return issues
- } else {
- throw err
- }
- })
-}
-
-export default load
diff --git a/bids-validator/validators/json/schemas/M0Scan.json b/bids-validator/validators/json/schemas/M0Scan.json
deleted file mode 100644
index a14a5f20..00000000
--- a/bids-validator/validators/json/schemas/M0Scan.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "type": "object",
- "properties": {
- "EchoTime": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "EffectiveEchoSpacing": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "PhaseEncodingDirection": {
- "type": "string",
- "enum": ["i", "j", "k", "i-", "j-", "k-"]
- },
- "RepetitionTimePreparation": {
- "anyOf": [
- { "type": "number", "minimum": 0 },
- {
- "type": "array",
- "items": { "type": "number" },
- "minimum": 0
- }
- ]
- },
- "SliceEncodingDirection": {
- "type": "string",
- "enum": ["i", "j", "k", "i-", "j-", "k-"]
- },
- "SliceTiming": {
- "type": "array",
- "items": {
- "type": "number",
- "minimum": 0
- }
- },
- "AcquisitionVoxelSize": {
- "type": "array",
- "items": {
- "type": "number",
- "exclusiveMinimum": 0
- }
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/asl.json b/bids-validator/validators/json/schemas/asl.json
deleted file mode 100644
index 55fd883d..00000000
--- a/bids-validator/validators/json/schemas/asl.json
+++ /dev/null
@@ -1,204 +0,0 @@
-{
- "type": "object",
- "properties": {
- "EchoTime": {
- "anyOf": [
- { "type": "number", "exclusiveMinimum": 0 },
- {
- "type": "array",
- "items": { "type": "number", "exclusiveMinimum": 0 }
- }
- ]
- },
- "EffectiveEchoSpacing": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "PhaseEncodingDirection": {
- "type": "string",
- "enum": ["i", "j", "k", "i-", "j-", "k-"]
- },
- "RepetitionTimePreparation": {
- "anyOf": [
- { "type": "number", "minimum": 0 },
- {
- "type": "array",
- "items": { "type": "number" },
- "minimum": 0
- }
- ]
- },
- "SliceEncodingDirection": {
- "type": "string",
- "enum": ["i", "j", "k", "i-", "j-", "k-"]
- },
- "SliceTiming": {
- "type": "array",
- "items": {
- "type": "number",
- "minimum": 0
- }
- },
- "FlipAngle": {
- "anyOf": [
- { "type": "number" },
- {
- "type": "array",
- "items": { "type": "number" }
- }
- ]
- },
- "ArterialSpinLabelingType": {
- "type": "string",
- "enum": ["PASL", "CASL", "PCASL"]
- },
- "LabelingDuration": {
- "anyOf": [
- { "type": "number", "minimum": 0 },
- {
- "type": "array",
- "items": { "type": "number" },
- "minimum": 0
- }
- ]
- },
- "PostLabelingDelay": {
- "anyOf": [
- { "type": "number", "minimum": 0 },
- {
- "type": "array",
- "items": { "type": "number" },
- "minimum": 0
- }
- ]
- },
- "BackgroundSuppression": {
- "type": "boolean"
- },
- "VascularCrushing": {
- "type": "boolean"
- },
- "LabelingLocationDescription": {
- "type": "string"
- },
- "LabelingOrientation": {
- "type": "array",
- "items": { "type": "number" }
- },
- "LabelingDistance": {
- "type": "number"
- },
- "LabelingPulseMaximumGradient": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "LabelingPulseFlipAngle": {
- "type": "number",
- "exclusiveMinimum": 0,
- "maximum": 360
- },
- "LabelingSlabThickness": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "AcquisitionVoxelSize": {
- "type": "array",
- "items": {
- "type": "number",
- "exclusiveMinimum": 0
- }
- },
- "BackgroundSuppressionNumberPulses": {
- "type": "number",
- "minimum": 0
- },
- "BackgroundSuppressionPulseTime": {
- "type": "array",
- "items": {
- "type": "number",
- "minimum": 0
- }
- },
- "VascularCrushingVENC": {
- "anyOf": [
- { "type": "number" },
- {
- "type": "array",
- "items": { "type": "number" }
- }
- ]
- },
- "PCASLType": {
- "type": "string",
- "enum": ["balanced", "unbalanced"]
- },
- "CASLType": {
- "type": "string",
- "enum": ["single-coil", "double-coil"]
- },
- "PASLType": {
- "type": "string"
- },
- "LookLocker": {
- "type": "boolean"
- },
- "LabelingPulseDuration": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "LabelingPulseInterval": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "LabelingPulseAverageB1": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "LabelingPulseAverageGradient": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "LabelingEfficiency": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "BolusCutOffFlag": {
- "type": "boolean"
- },
- "BolusCutOffDelayTime": {
- "anyOf": [
- { "type": "number", "minimum": 0 },
- {
- "type": "array",
- "items": { "type": "number" },
- "minimum": 0
- }
- ]
- },
- "BolusCutOffTechnique": {
- "type": "string"
- },
- "M0Type": {
- "type": "string",
- "enum": ["Separate", "Included", "Estimate", "Absent"]
- },
- "M0Estimate": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "TotalAcquiredPairs": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "PulseSequenceDetails": {
- "type": "string"
- },
- "Manufacturer": {
- "type": "string"
- },
- "MRAcquisitionType": {
- "type": "string",
- "enum": ["2D", "3D"]
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/beh.json b/bids-validator/validators/json/schemas/beh.json
deleted file mode 100644
index 394ea41f..00000000
--- a/bids-validator/validators/json/schemas/beh.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "type": "object",
- "properties": {
- "TaskName": { "$ref": "common_definitions.json#/definitions/TaskName" },
- "TaskDescription": {
- "$ref": "common_definitions.json#/definitions/TaskDescription"
- },
- "Instructions": {
- "$ref": "common_definitions.json#/definitions/Instructions"
- },
- "CogAtlasID": { "$ref": "common_definitions.json#/definitions/CogAtlasID" },
- "CogPOID": { "$ref": "common_definitions.json#/definitions/CogPOID" },
- "InstitutionName": {
- "$ref": "common_definitions.json#/definitions/InstitutionName"
- },
- "InstitutionAddress": {
- "$ref": "common_definitions.json#/definitions/InstitutionAddress"
- },
- "InstitutionalDepartmentName": {
- "$ref": "common_definitions.json#/definitions/InstitutionalDepartmentName"
- }
- },
- "additionalProperties": true
-}
diff --git a/bids-validator/validators/json/schemas/bold.json b/bids-validator/validators/json/schemas/bold.json
deleted file mode 100644
index 13f395fb..00000000
--- a/bids-validator/validators/json/schemas/bold.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "properties": {
- "CogAtlasID": { "$ref": "common_definitions.json#/definitions/CogAtlasID" },
- "CogPOID": { "$ref": "common_definitions.json#/definitions/CogPOID" },
- "AcquisitionDuration": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "EchoTime": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "EffectiveEchoSpacing": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "PhaseEncodingDirection": {
- "type": "string",
- "enum": ["i", "j", "k", "i-", "j-", "k-"]
- },
- "RepetitionTime": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "SliceEncodingDirection": {
- "type": "string",
- "enum": ["i", "j", "k", "i-", "j-", "k-"]
- },
- "SliceTiming": {
- "type": "array",
- "items": {
- "type": "number",
- "minimum": 0
- }
- },
- "TaskName": {
- "type": "string"
- },
- "VolumeTiming": {
- "type": "array",
- "items": {
- "type": "number",
- "minimum": 0
- }
- },
- "PartialFourier": {
- "type": "number"
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/channels.json b/bids-validator/validators/json/schemas/channels.json
deleted file mode 100644
index e4be45d8..00000000
--- a/bids-validator/validators/json/schemas/channels.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-06/schema#",
- "allOf": [
- {
- "type": "object",
- "properties": {
- "reference_frame": {
- "title": "Reference Frame",
- "type": "object",
- "properties": {
- "Levels": {
- "type": "object",
- "patternProperties": {
- "^.+$": {
- "type": "object",
- "properties": {
- "RotationOrder": {
- "description": "The sequence in which the extrinsic rotations are applied around the three axes.",
- "type": "string",
- "enum": ["XYZ", "XZY", "YXZ", "YZX", "ZXY", "ZYX"]
- },
- "RotationRule": {
- "description": "The direction of rotation around each axis.",
- "type": "string",
- "enum": ["left-hand", "right-hand"]
- },
- "SpatialAxes": {
- "description": "The coordinate system in which the motion data are to be interpreted. A sequence of characters from the set `{'A', 'P', 'L', 'R', 'S', 'I', '_'}` indicating the direction of each axis. For example `\"ARS\"` indicates positive values in the X, Y, Z axes are respectively anterior, right, and superior of the origin, while `\"PLI\"` indicates positive values are posterior, left, and inferior of the origin. The `\"_\"` character may be used for unused axes.",
- "type": "string",
- "pattern": "^[APLRSI_]{3}$"
- }
- }
- }
- }
- }
- }
- }
- }
- },
- {
- "type": "object",
- "patternProperties": {
- "^.+$": { "$ref": "common_definitions.json#/definitions/ColumnDescription" }
- }
- }
- ]
-}
diff --git a/bids-validator/validators/json/schemas/common_definitions.json b/bids-validator/validators/json/schemas/common_definitions.json
deleted file mode 100644
index 5980ca3c..00000000
--- a/bids-validator/validators/json/schemas/common_definitions.json
+++ /dev/null
@@ -1,194 +0,0 @@
-{
- "$id": "common_definitions.json",
- "definitions": {
- "CogAtlasID": { "type": "string", "format": "uri" },
- "CogPOID": { "type": "string", "format": "uri" },
- "CoordUnits": { "type": "string", "enum": ["m", "mm", "cm", "n/a"] },
- "MEGCoordSys": {
- "type": "string",
- "enum": [
- "CTF",
- "ElektaNeuromag",
- "4DBti",
- "KitYokogawa",
- "ChietiItab",
- "Other"
- ]
- },
- "EEGCoordSys": {
- "type": "string",
- "enum": ["CapTrak", "EEGLAB", "EEGLAB-HJ", "Other"]
- },
- "iEEGCoordSys": {
- "type": "string",
- "enum": ["Pixels", "ACPC", "ScanRAS", "Other"]
- },
- "StandardTemplateCoordSys": {
- "type": "string",
- "enum": [
- "ICBM452AirSpace",
- "ICBM452Warp5Space",
- "IXI549Space",
- "fsaverage",
- "fsaverageSym",
- "fsLR",
- "MNIColin27",
- "MNI152Lin",
- "MNI152NLin2009aSym",
- "MNI152NLin2009bSym",
- "MNI152NLin2009cSym",
- "MNI152NLin2009aAsym",
- "MNI152NLin2009bAsym",
- "MNI152NLin2009cAsym",
- "MNI152NLin6Sym",
- "MNI152NLin6ASym",
- "MNI305",
- "NIHPD",
- "OASIS30AntsOASISAnts",
- "OASIS30Atropos",
- "Talairach",
- "UNCInfant"
- ]
- },
- "StandardTemplateDeprecatedCoordSys": {
- "type": "string",
- "enum": [
- "fsaverage3",
- "fsaverage4",
- "fsaverage5",
- "fsaverage6",
- "fsaveragesym",
- "UNCInfant0V21",
- "UNCInfant1V21",
- "UNCInfant2V21",
- "UNCInfant0V22",
- "UNCInfant1V22",
- "UNCInfant2V22",
- "UNCInfant0V23",
- "UNCInfant1V23",
- "UNCInfant2V23"
- ]
- },
- "DeviceSerialNumber": { "type": "string" },
- "ECGChannelCount": { "type": "integer", "minimum": 0 },
- "EEGChannelCount": { "type": "integer", "minimum": 0 },
- "NIRSChannelCount": { "type": "integer", "minimum": 0 },
- "NIRSSourceOptodeCount": { "type": "integer", "minimum": 0 },
- "NIRSDetectorOptodeCount": { "type": "integer", "minimum": 0 },
- "EMGChannelCount": { "type": "integer", "minimum": 0 },
- "EOGChannelCount": { "type": "integer", "minimum": 0 },
- "EpochLength": { "type": "number", "minimum": 0 },
- "HardwareFilters": {
- "anyOf": [
- { "type": "object", "additionalProperties": { "type": "object" } },
- { "type": "string", "pattern": "^n/a$" }
- ]
- },
- "InstitutionAddress": { "type": "string" },
- "InstitutionName": { "type": "string" },
- "Instructions": { "type": "string" },
- "InstitutionalDepartmentName": { "type": "string", "minLength": 1 },
- "LandmarkCoordinates": {
- "type": "object",
- "additionalProperties": {
- "type": "array",
- "items": {
- "type": "number"
- },
- "minItems": 3,
- "maxItems": 3
- }
- },
- "Manufacturer": { "type": "string", "minLength": 1 },
- "MiscChannelCount": { "type": "integer", "minimum": 0 },
- "PowerLineFrequency": {
- "anyOf": [
- { "type": "number", "exclusiveMinimum": 0 },
- { "type": "string", "pattern": "^n/a$" }
- ]
- },
- "RecordingDuration": { "type": "number" },
- "RecordingType": {
- "type": "string",
- "enum": ["continuous", "epoched", "discontinuous"]
- },
- "SamplingFrequency": { "type": "number" },
- "SoftwareFilters": {
- "anyOf": [
- { "type": "object", "additionalProperties": { "type": "object" } },
- { "type": "string", "pattern": "^n/a$" }
- ]
- },
- "SoftwareVersions": { "type": "string" },
- "TaskDescription": { "type": "string" },
- "TaskName": { "type": "string", "minLength": 1 },
- "TermURL": {
- "title": "TermURL",
- "description": "URL pointing to a formal definition in an ontology available on the web.",
- "type": "string",
- "format": "uri"
- },
- "TriggerChannelCount": { "type": "integer", "minimum": 0 },
- "ColumnDescription": {
- "type": "object",
- "title": "Column",
- "description": "Column of a corresponding tabular file.",
- "properties": {
- "LongName": {
- "title": "LongName",
- "description": " Long (unabbreviated) name of column.",
- "type": "string"
- },
- "Description": {
- "title": "Description",
- "description": "Description of the column.",
- "type": "string"
- },
- "Units": {
- "title": "Units",
- "description": "Measurement units.",
- "type": "string"
- },
- "Levels": {
- "type": "object",
- "title": "Levels",
- "description": "For categorical variables: a dictionary of possible values (keys) and their descriptions (values).",
- "patternProperties": {
- "^.+$": {
- "anyOf": [
- { "type": "string" },
- {
- "type": "object",
- "properties": {
- "Description": { "type": "string" },
- "TermURL": { "$ref": "#/definitions/TermURL" }
- }
- }
- ]
- }
- }
- },
- "TermURL": { "$ref": "#/definitions/TermURL" },
- "HED": {
- "anyOf": [
- {
- "type": "object",
- "title": "HED",
- "description": "For categorical variables: a dictionary of possible values (keys) and their HED strings (values).",
- "patternProperties": {
- "^.+$": {
- "type": "string"
- }
- }
- },
- {
- "type": "string",
- "title": "HED",
- "description": "For value variables: a string with a single '#' character where the cell value is to be interpolated."
- }
- ]
- }
- }
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/coordsystem_eeg.json b/bids-validator/validators/json/schemas/coordsystem_eeg.json
deleted file mode 100644
index 3b0e375b..00000000
--- a/bids-validator/validators/json/schemas/coordsystem_eeg.json
+++ /dev/null
@@ -1,112 +0,0 @@
-{
- "type": "object",
- "properties": {
- "IntendedFor": { "type": "string", "minLength": 1 },
- "FiducialsDescription": { "type": "string", "minLength": 1 },
- "FiducialsCoordinates": {
- "$ref": "common_definitions.json#/definitions/LandmarkCoordinates"
- },
- "FiducialsCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "FiducialsCoordinateSystemDescription": {
- "type": "string",
- "minLength": 1
- },
- "FiducialsCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "EEGCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "EEGCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "EEGCoordinateSystemDescription": { "type": "string", "minLength": 1 },
- "AnatomicalLandmarkCoordinates": {
- "$ref": "common_definitions.json#/definitions/LandmarkCoordinates"
- },
- "AnatomicalLandmarkCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "AnatomicalLandmarkCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "AnatomicalLandmarkCoordinateSystemDescription": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["EEGCoordinateSystem", "EEGCoordinateUnits"],
- "additionalProperties": false,
- "allOf": [
- {
- "$ref": "#/dependency-definitions/if-EEGCoordinateSystem-is-Other-then-Description-is-required"
- },
- {
- "$ref": "#/dependency-definitions/if-FiducialsCoordinateSystem-is-Other-then-Description-is-required"
- },
- {
- "$ref": "#/dependency-definitions/if-AnatomicalLandmarkCoordinateSystem-is-Other-then-Description-is-required"
- }
- ],
- "dependency-definitions": {
- "if-EEGCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "EEGCoordinateSystem": { "const": "Other" }
- },
- "required": ["EEGCoordinateSystem"]
- },
- "then": { "required": ["EEGCoordinateSystemDescription"] }
- },
- "if-FiducialsCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "FiducialsCoordinateSystem": { "const": "Other" }
- },
- "required": ["FiducialsCoordinateSystem"]
- },
- "then": { "required": ["FiducialsCoordinateSystemDescription"] }
- },
- "if-AnatomicalLandmarkCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "AnatomicalLandmarkCoordinateSystem": { "const": "Other" }
- },
- "required": ["AnatomicalLandmarkCoordinateSystem"]
- },
- "then": { "required": ["AnatomicalLandmarkCoordinateSystemDescription"] }
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/coordsystem_ieeg.json b/bids-validator/validators/json/schemas/coordsystem_ieeg.json
deleted file mode 100644
index 9d3a5cb2..00000000
--- a/bids-validator/validators/json/schemas/coordsystem_ieeg.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "type": "object",
- "properties": {
- "IntendedFor": { "type": "string", "minLength": 1 },
- "iEEGCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/iEEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "iEEGCoordinateUnits": {
- "type": "string",
- "enum": ["m", "mm", "cm", "pixels", "n/a"]
- },
- "iEEGCoordinateSystemDescription": { "type": "string", "minLength": 1 },
- "iEEGCoordinateProcessingDescription": { "type": "string", "minLength": 1 },
- "iEEGCoordinateProcessingReference": { "type": "string", "minLength": 1 }
- },
- "required": ["iEEGCoordinateSystem", "iEEGCoordinateUnits"],
- "additionalProperties": false,
- "allOf": [
- {
- "$ref": "#/dependency-definitions/if-iEEGCoordinateSystem-is-Other-then-Description-is-required"
- },
- {
- "$ref": "#/dependency-definitions/if-iEEGCoordinateSystem-is-Pixels-then-iEEGCoordinateUnits-must-be-pixels"
- }
- ],
- "dependency-definitions": {
- "if-iEEGCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "iEEGCoordinateSystem": { "const": "Other" }
- },
- "required": ["iEEGCoordinateSystem"]
- },
- "then": { "required": ["iEEGCoordinateSystemDescription"] }
- },
- "if-iEEGCoordinateSystem-is-Pixels-then-iEEGCoordinateUnits-must-be-pixels": {
- "if": {
- "type": "object",
- "properties": {
- "iEEGCoordinateSystem": { "const": "Pixels" }
- },
- "required": ["iEEGCoordinateSystem"]
- },
- "then": {
- "type": "object",
- "properties": {
- "iEEGCoordinateUnits": { "type": "string", "enum": ["pixels"] }
- },
- "required": ["iEEGCoordinateUnits"]
- }
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/coordsystem_meg.json b/bids-validator/validators/json/schemas/coordsystem_meg.json
deleted file mode 100644
index f7959405..00000000
--- a/bids-validator/validators/json/schemas/coordsystem_meg.json
+++ /dev/null
@@ -1,182 +0,0 @@
-{
- "type": "object",
- "properties": {
- "MEGCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "MEGCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "MEGCoordinateSystemDescription": { "type": "string", "minLength": 1 },
- "EEGCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "EEGCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "EEGCoordinateSystemDescription": { "type": "string", "minLength": 1 },
- "IntendedFor": {
- "anyOf": [
- {
- "type": "array",
- "items": {
- "type": "string",
- "minLength": 1
- }
- },
- { "type": "string", "minLength": 1 }
- ]
- },
- "FiducialsDescription": { "type": "string", "minLength": 1 },
- "HeadCoilCoordinates": {
- "$ref": "common_definitions.json#/definitions/LandmarkCoordinates"
- },
- "HeadCoilCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "HeadCoilCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "HeadCoilCoordinateSystemDescription": { "type": "string", "minLength": 1 },
- "AnatomicalLandmarkCoordinates": {
- "$ref": "common_definitions.json#/definitions/LandmarkCoordinates"
- },
- "AnatomicalLandmarkCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "AnatomicalLandmarkCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "AnatomicalLandmarkCoordinateSystemDescription": {
- "type": "string",
- "minLength": 1
- },
- "DigitizedHeadPoints": { "type": "string" },
- "DigitizedHeadPointsCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "DigitizedHeadPointsCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "DigitizedHeadPointsCoordinateSystemDescription": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["MEGCoordinateSystem", "MEGCoordinateUnits"],
- "additionalProperties": false,
- "allOf": [
- {
- "$ref": "#/dependency-definitions/if-MEGCoordinateSystem-is-Other-then-Description-is-required"
- },
- {
- "$ref": "#/dependency-definitions/if-EEGCoordinateSystem-is-Other-then-Description-is-required"
- },
- {
- "$ref": "#/dependency-definitions/if-HeadCoilCoordinateSystem-is-Other-then-Description-is-required"
- },
- {
- "$ref": "#/dependency-definitions/if-AnatomicalLandmarkCoordinateSystem-is-Other-then-Description-is-required"
- },
- {
- "$ref": "#/dependency-definitions/if-DigitizedHeadPointsCoordinateSystem-is-Other-then-Description-is-required"
- }
- ],
- "dependency-definitions": {
- "if-MEGCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "MEGCoordinateSystem": { "const": "Other" }
- },
- "required": ["MEGCoordinateSystem"]
- },
- "then": { "required": ["MEGCoordinateSystemDescription"] }
- },
- "if-EEGCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "EEGCoordinateSystem": { "const": "Other" }
- },
- "required": ["EEGCoordinateSystem"]
- },
- "then": { "required": ["EEGCoordinateSystemDescription"] }
- },
- "if-HeadCoilCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "HeadCoilCoordinateSystem": { "const": "Other" }
- },
- "required": ["HeadCoilCoordinateSystem"]
- },
- "then": { "required": ["HeadCoilCoordinateSystemDescription"] }
- },
- "if-AnatomicalLandmarkCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "AnatomicalLandmarkCoordinateSystem": { "const": "Other" }
- },
- "required": ["AnatomicalLandmarkCoordinateSystem"]
- },
- "then": { "required": ["AnatomicalLandmarkCoordinateSystemDescription"] }
- },
- "if-DigitizedHeadPointsCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "DigitizedHeadPointsCoordinateSystem": { "const": "Other" }
- },
- "required": ["DigitizedHeadPointsCoordinateSystem"]
- },
- "then": { "required": ["DigitizedHeadPointsCoordinateSystemDescription"] }
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/coordsystem_nirs.json b/bids-validator/validators/json/schemas/coordsystem_nirs.json
deleted file mode 100644
index ee522e2e..00000000
--- a/bids-validator/validators/json/schemas/coordsystem_nirs.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "type": "object",
- "properties": {
- "IntendedFor": { "type": "string", "minLength": 1 },
- "FiducialsDescription": { "type": "string", "minLength": 1 },
- "FiducialsCoordinates": {
- "$ref": "common_definitions.json#/definitions/LandmarkCoordinates"
- },
- "FiducialsCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "FiducialsCoordinateSystemDescription": {
- "type": "string",
- "minLength": 1
- },
- "FiducialsCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "NIRSCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "NIRSCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "NIRSCoordinateSystemDescription": { "type": "string", "minLength": 1 },
- "AnatomicalLandmarkCoordinates": {
- "$ref": "common_definitions.json#/definitions/LandmarkCoordinates"
- },
- "AnatomicalLandmarkCoordinateSystem": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/MEGCoordSys" },
- { "$ref": "common_definitions.json#/definitions/EEGCoordSys" },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateCoordSys"
- },
- {
- "$ref": "common_definitions.json#/definitions/StandardTemplateDeprecatedCoordSys"
- }
- ]
- },
- "AnatomicalLandmarkCoordinateUnits": {
- "$ref": "common_definitions.json#/definitions/CoordUnits"
- },
- "AnatomicalLandmarkCoordinateSystemDescription": {
- "type": "string",
- "minLength": 1
- },
- "NIRSCoordinateProcessingDescription": { "type": "string", "minLength": 1 }
- },
- "required": ["NIRSCoordinateSystem", "NIRSCoordinateUnits"],
- "additionalProperties": false,
- "allOf": [
- {
- "$ref": "#/dependency-definitions/if-NIRSCoordinateSystem-is-Other-then-Description-is-required"
- },
- {
- "$ref": "#/dependency-definitions/if-FiducialsCoordinateSystem-is-Other-then-Description-is-required"
- },
- {
- "$ref": "#/dependency-definitions/if-AnatomicalLandmarkCoordinateSystem-is-Other-then-Description-is-required"
- }
- ],
- "dependency-definitions": {
- "if-NIRSCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "NIRSCoordinateSystem": { "const": "Other" }
- },
- "required": ["NIRSCoordinateSystem"]
- },
- "then": { "required": ["NIRSCoordinateSystemDescription"] }
- },
- "if-FiducialsCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "FiducialsCoordinateSystem": { "const": "Other" }
- },
- "required": ["FiducialsCoordinateSystem"]
- },
- "then": { "required": ["FiducialsCoordinateSystemDescription"] }
- },
- "if-AnatomicalLandmarkCoordinateSystem-is-Other-then-Description-is-required": {
- "if": {
- "type": "object",
- "properties": {
- "AnatomicalLandmarkCoordinateSystem": { "const": "Other" }
- },
- "required": ["AnatomicalLandmarkCoordinateSystem"]
- },
- "then": { "required": ["AnatomicalLandmarkCoordinateSystemDescription"] }
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/data_dictionary.json b/bids-validator/validators/json/schemas/data_dictionary.json
deleted file mode 100644
index f3bfc192..00000000
--- a/bids-validator/validators/json/schemas/data_dictionary.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "type": "object",
- "patternProperties": {
- "^.+$": { "$ref": "common_definitions.json#/definitions/ColumnDescription" }
- }
-}
diff --git a/bids-validator/validators/json/schemas/dataset_description.json b/bids-validator/validators/json/schemas/dataset_description.json
deleted file mode 100644
index cf61644b..00000000
--- a/bids-validator/validators/json/schemas/dataset_description.json
+++ /dev/null
@@ -1,147 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-06/schema#",
- "$id": "http://example.com/example.json",
- "type": "object",
- "properties": {
- "Name": {
- "type": "string"
- },
- "BIDSVersion": {
- "type": "string"
- },
- "HEDVersion": {
- "anyOf": [
- { "type": "string" },
- {
- "type": "array",
- "items": {
- "type": "string",
- "pattern": "^(?:[a-zA-Z]+:)?(?:[a-zA-Z]+_)?(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-(?:(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?:[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"
- }
- }
- ]
- },
- "DatasetType": {
- "type": "string",
- "enum": ["raw", "derivative"]
- },
- "License": {
- "type": "string"
- },
- "Authors": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "Acknowledgements": {
- "type": "string"
- },
- "HowToAcknowledge": {
- "type": "string"
- },
- "Funding": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "EthicsApprovals": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "ReferencesAndLinks": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "DatasetDOI": {
- "type": "string"
- },
- "DatasetLinks": {
- "type": "object",
- "properties": {},
- "propertyNames": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9]*$"
- },
- "additionalProperties": {
- "type": "string",
- "format": "uri-reference"
- }
- },
- "GeneratedBy": {
- "type": "array",
- "minItems": 1,
- "items": {
- "type": "object",
- "properties": {
- "Name": { "type": "string" },
- "Version": { "type": "string" },
- "Description": { "type": "string" },
- "CodeURL": { "type": "string", "format": "uri" },
- "Container": {
- "type": "object",
- "properties": {
- "Type": { "type": "string" },
- "Tag": { "type": "string" },
- "URI": { "type": "string", "format": "uri" }
- }
- }
- }
- }
- },
- "SourceDatasets": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "URL": { "type": "string", "format": "uri" },
- "DOI": { "type": "string" },
- "Version": { "type": "string" }
- }
- }
- },
- "Genetics": {
- "type": "object",
- "properties": {
- "Database": {
- "type": "string",
- "format": "uri"
- },
- "Dataset": {
- "type": "string",
- "format": "uri"
- },
- "Descriptors": {
- "items": {
- "type": "string"
- },
- "type": ["array", "string"]
- }
- }
- }
- },
- "required": ["Name", "BIDSVersion"],
- "allOf": [
- {
- "$ref": "#/dependency-definitions/if-DatasetType-is-derivative-then-GeneratedBy-is-required"
- }
- ],
- "dependency-definitions": {
- "if-DatasetType-is-derivative-then-GeneratedBy-is-required": {
- "if": {
- "type": "object",
- "properties": { "DatasetType": { "const": "derivative" } },
- "required": ["DatasetType"]
- },
- "then": {
- "required": ["GeneratedBy"]
- }
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/eeg.json b/bids-validator/validators/json/schemas/eeg.json
deleted file mode 100644
index 14ed0374..00000000
--- a/bids-validator/validators/json/schemas/eeg.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "type": "object",
- "properties": {
- "TaskName": { "$ref": "common_definitions.json#/definitions/TaskName" },
- "TaskDescription": {
- "$ref": "common_definitions.json#/definitions/TaskDescription"
- },
- "Instructions": {
- "$ref": "common_definitions.json#/definitions/Instructions"
- },
- "CogAtlasID": { "$ref": "common_definitions.json#/definitions/CogAtlasID" },
- "CogPOID": { "$ref": "common_definitions.json#/definitions/CogPOID" },
- "InstitutionName": {
- "$ref": "common_definitions.json#/definitions/InstitutionName"
- },
- "InstitutionAddress": {
- "$ref": "common_definitions.json#/definitions/InstitutionAddress"
- },
- "InstitutionalDepartmentName": {
- "$ref": "common_definitions.json#/definitions/InstitutionalDepartmentName"
- },
- "Manufacturer": {
- "$ref": "common_definitions.json#/definitions/Manufacturer"
- },
- "ManufacturersModelName": { "type": "string", "minLength": 1 },
- "DeviceSerialNumber": {
- "$ref": "common_definitions.json#/definitions/DeviceSerialNumber"
- },
- "SoftwareVersions": {
- "$ref": "common_definitions.json#/definitions/SoftwareVersions"
- },
- "PowerLineFrequency": {
- "$ref": "common_definitions.json#/definitions/PowerLineFrequency"
- },
- "SamplingFrequency": {
- "$ref": "common_definitions.json#/definitions/SamplingFrequency"
- },
- "EEGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EEGChannelCount"
- },
- "EOGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EOGChannelCount"
- },
- "ECGChannelCount": {
- "$ref": "common_definitions.json#/definitions/ECGChannelCount"
- },
- "EMGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EMGChannelCount"
- },
- "MiscChannelCount": {
- "$ref": "common_definitions.json#/definitions/MiscChannelCount"
- },
- "TriggerChannelCount": {
- "$ref": "common_definitions.json#/definitions/TriggerChannelCount"
- },
- "EEGPlacementScheme": { "type": "string" },
- "EEGReference": { "type": "string" },
- "EEGGround": { "type": "string" },
- "CapManufacturer": { "type": "string" },
- "CapManufacturersModelName": { "type": "string" },
- "HeadCircumference": { "type": "number", "exclusiveMinimum": 0 },
- "HardwareFilters": {
- "$ref": "common_definitions.json#/definitions/HardwareFilters"
- },
- "SoftwareFilters": {
- "$ref": "common_definitions.json#/definitions/SoftwareFilters"
- },
- "RecordingDuration": {
- "$ref": "common_definitions.json#/definitions/RecordingDuration"
- },
- "RecordingType": {
- "$ref": "common_definitions.json#/definitions/RecordingType"
- },
- "EpochLength": {
- "$ref": "common_definitions.json#/definitions/EpochLength"
- },
- "SubjectArtefactDescription": { "type": "string" },
- "ElectricalStimulation": { "type": "boolean" },
- "ElectricalStimulationParameters": { "type": "string" }
- },
- "required": [
- "TaskName",
- "SamplingFrequency",
- "SoftwareFilters",
- "EEGReference",
- "PowerLineFrequency"
- ],
- "additionalProperties": false
-}
diff --git a/bids-validator/validators/json/schemas/events.json b/bids-validator/validators/json/schemas/events.json
deleted file mode 100644
index bace2aa3..00000000
--- a/bids-validator/validators/json/schemas/events.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "type": "object",
- "patternProperties": {
- "^.+$": { "$ref": "common_definitions.json#/definitions/ColumnDescription" }
- },
- "properties": {
- "StimulusPresentation": {
- "type": "object",
- "properties": {
- "OperatingSystem": {
- "type": "string"
- },
- "SoftwareName": {
- "type": "string"
- },
- "SoftwareRRID": {
- "type": "string",
- "pattern": ".+_.+"
- },
- "SoftwareVersion": {
- "type": "string"
- },
- "Code": {
- "type": "string",
- "format": "uri"
- }
- }
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/genetic_info.json b/bids-validator/validators/json/schemas/genetic_info.json
deleted file mode 100644
index 95f42621..00000000
--- a/bids-validator/validators/json/schemas/genetic_info.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "type": "object",
- "definitions": {
- "GeneticLevelEnum": {
- "type": "string",
- "enum": [
- "Genetic",
- "Genomic",
- "Epigenomic",
- "Transcriptomic",
- "Metabolomic",
- "Proteomic"
- ]
- }
- },
- "properties": {
- "GeneticLevel": {
- "anyof": [
- {
- "type": "array",
- "items": { "$ref": "#/definitions/GeneticLevelEnum" }
- },
- { "$ref": "#/definitions/GeneticLevelEnum" }
- ]
- },
- "AnalyticalApproach": {
- "items": {
- "type": "string"
- },
- "type": ["array", "string"]
- },
- "SampleOrigin": {
- "type": "string",
- "enum": [
- "blood",
- "saliva",
- "brain",
- "csf",
- "breast milk",
- "bile",
- "amniotic fluid",
- "other biospecimen"
- ]
- },
- "TissueOrigin": {
- "type": "string",
- "enum": [
- "gray matter",
- "white matter",
- "csf",
- "meninges",
- "macrovascular",
- "microvascular"
- ]
- },
- "BrainLocation": { "type": "string" },
- "CellType": { "type": "string" }
- },
- "required": ["GeneticLevel", "SampleOrigin"],
- "additionalProperties": false
-}
diff --git a/bids-validator/validators/json/schemas/ieeg.json b/bids-validator/validators/json/schemas/ieeg.json
deleted file mode 100644
index 21b7efb6..00000000
--- a/bids-validator/validators/json/schemas/ieeg.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "type": "object",
- "properties": {
- "TaskName": { "$ref": "common_definitions.json#/definitions/TaskName" },
- "SamplingFrequency": {
- "$ref": "common_definitions.json#/definitions/SamplingFrequency"
- },
- "PowerLineFrequency": {
- "$ref": "common_definitions.json#/definitions/PowerLineFrequency"
- },
- "DCOffsetCorrection": { "type": "string", "minLength": 1 },
- "SoftwareFilters": {
- "$ref": "common_definitions.json#/definitions/SoftwareFilters"
- },
- "HardwareFilters": {
- "$ref": "common_definitions.json#/definitions/HardwareFilters"
- },
- "Manufacturer": {
- "$ref": "common_definitions.json#/definitions/Manufacturer"
- },
- "ManufacturersModelName": { "type": "string" },
- "TaskDescription": {
- "$ref": "common_definitions.json#/definitions/TaskDescription"
- },
- "Instructions": {
- "$ref": "common_definitions.json#/definitions/Instructions"
- },
- "CogAtlasID": { "$ref": "common_definitions.json#/definitions/CogAtlasID" },
- "CogPOID": { "$ref": "common_definitions.json#/definitions/CogPOID" },
- "InstitutionName": {
- "$ref": "common_definitions.json#/definitions/InstitutionName"
- },
- "InstitutionAddress": {
- "$ref": "common_definitions.json#/definitions/InstitutionAddress"
- },
- "InstitutionalDepartmentName": {
- "$ref": "common_definitions.json#/definitions/InstitutionalDepartmentName"
- },
- "DeviceSerialNumber": {
- "$ref": "common_definitions.json#/definitions/DeviceSerialNumber"
- },
- "ECOGChannelCount": { "type": "integer", "minimum": 0 },
- "SEEGChannelCount": { "type": "integer", "minimum": 0 },
- "EEGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EEGChannelCount"
- },
- "EOGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EOGChannelCount"
- },
- "ECGChannelCount": {
- "$ref": "common_definitions.json#/definitions/ECGChannelCount"
- },
- "EMGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EMGChannelCount"
- },
- "MiscChannelCount": {
- "$ref": "common_definitions.json#/definitions/MiscChannelCount"
- },
- "TriggerChannelCount": {
- "$ref": "common_definitions.json#/definitions/TriggerChannelCount"
- },
- "RecordingDuration": {
- "$ref": "common_definitions.json#/definitions/RecordingDuration"
- },
- "RecordingType": {
- "$ref": "common_definitions.json#/definitions/RecordingType"
- },
- "EpochLength": {
- "$ref": "common_definitions.json#/definitions/EpochLength"
- },
- "SubjectArtefactDescription": { "type": "string" },
- "SoftwareVersions": {
- "$ref": "common_definitions.json#/definitions/SoftwareVersions"
- },
- "iEEGReference": { "type": "string" },
- "ElectrodeManufacturer": { "type": "string" },
- "ElectrodeManufacturersModelName": { "type": "string" },
- "iEEGGround": { "type": "string" },
- "iEEGPlacementScheme": { "type": "string" },
- "iEEGElectrodeGroups": { "type": "string" },
- "ElectricalStimulation": { "type": "boolean" },
- "ElectricalStimulationParameters": { "type": "string" }
- },
- "required": [
- "TaskName",
- "SamplingFrequency",
- "PowerLineFrequency",
- "SoftwareFilters",
- "iEEGReference"
- ],
- "additionalProperties": false
-}
diff --git a/bids-validator/validators/json/schemas/meg.json b/bids-validator/validators/json/schemas/meg.json
deleted file mode 100644
index b2da2d3f..00000000
--- a/bids-validator/validators/json/schemas/meg.json
+++ /dev/null
@@ -1,119 +0,0 @@
-{
- "type": "object",
- "properties": {
- "TaskName": { "$ref": "common_definitions.json#/definitions/TaskName" },
- "TaskDescription": {
- "$ref": "common_definitions.json#/definitions/TaskDescription"
- },
- "Instructions": {
- "$ref": "common_definitions.json#/definitions/Instructions"
- },
- "CogAtlasID": { "$ref": "common_definitions.json#/definitions/CogAtlasID" },
- "CogPOID": { "$ref": "common_definitions.json#/definitions/CogPOID" },
- "InstitutionName": {
- "$ref": "common_definitions.json#/definitions/InstitutionName"
- },
- "InstitutionAddress": {
- "$ref": "common_definitions.json#/definitions/InstitutionAddress"
- },
- "InstitutionalDepartmentName": {
- "$ref": "common_definitions.json#/definitions/InstitutionalDepartmentName"
- },
- "Manufacturer": {
- "$ref": "common_definitions.json#/definitions/Manufacturer"
- },
- "ManufacturersModelName": { "type": "string", "minLength": 1 },
- "DeviceSerialNumber": {
- "$ref": "common_definitions.json#/definitions/DeviceSerialNumber"
- },
- "SoftwareVersions": {
- "$ref": "common_definitions.json#/definitions/SoftwareVersions"
- },
- "PowerLineFrequency": {
- "$ref": "common_definitions.json#/definitions/PowerLineFrequency"
- },
- "SamplingFrequency": {
- "$ref": "common_definitions.json#/definitions/SamplingFrequency"
- },
- "MEGChannelCount": { "type": "integer", "minimum": 0 },
- "MEGREFChannelCount": { "type": "integer", "minimum": 0 },
- "EEGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EEGChannelCount"
- },
- "ECOGChannelCount": { "type": "integer", "minimum": 0 },
- "SEEGChannelCount": { "type": "integer", "minimum": 0 },
- "EOGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EOGChannelCount"
- },
- "ECGChannelCount": {
- "$ref": "common_definitions.json#/definitions/ECGChannelCount"
- },
- "EMGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EMGChannelCount"
- },
- "MiscChannelCount": {
- "$ref": "common_definitions.json#/definitions/MiscChannelCount"
- },
- "TriggerChannelCount": {
- "$ref": "common_definitions.json#/definitions/TriggerChannelCount"
- },
- "EEGPlacementScheme": { "type": "string" },
- "EEGReference": { "type": "string" },
- "CapManufacturer": { "type": "string" },
- "CapManufacturersModelName": { "type": "string" },
- "DewarPosition": { "type": "string" },
- "HardwareFilters": {
- "$ref": "common_definitions.json#/definitions/HardwareFilters"
- },
- "SoftwareFilters": {
- "$ref": "common_definitions.json#/definitions/SoftwareFilters"
- },
- "RecordingDuration": {
- "$ref": "common_definitions.json#/definitions/RecordingDuration"
- },
- "RecordingType": {
- "$ref": "common_definitions.json#/definitions/RecordingType"
- },
- "EpochLength": {
- "$ref": "common_definitions.json#/definitions/EpochLength"
- },
- "ContinuousHeadLocalization": { "type": "boolean" },
- "HeadCoilFrequency": {
- "anyOf": [
- { "type": "number" },
- {
- "type": "array",
- "items": { "type": "number" }
- }
- ]
- },
- "AssociatedEmptyRoom": {
- "anyOf": [
- {
- "type": "array",
- "items": {
- "type": "string",
- "minLength": 1
- }
- },
- { "type": "string", "minLength": 1 }
- ]
- },
- "MaxMovement": { "type": "number" },
- "SubjectArtefactDescription": { "type": "string" },
- "DigitizedLandmarks": { "type": "boolean" },
- "DigitizedHeadPoints": { "type": "boolean" },
- "ElectricalStimulation": { "type": "boolean" },
- "ElectricalStimulationParameters": { "type": "string" }
- },
- "required": [
- "TaskName",
- "SamplingFrequency",
- "PowerLineFrequency",
- "DewarPosition",
- "SoftwareFilters",
- "DigitizedLandmarks",
- "DigitizedHeadPoints"
- ],
- "additionalProperties": false
-}
diff --git a/bids-validator/validators/json/schemas/microscopy.json b/bids-validator/validators/json/schemas/microscopy.json
deleted file mode 100644
index 2c9cae30..00000000
--- a/bids-validator/validators/json/schemas/microscopy.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
- "type": "object",
- "properties": {
- "Manufacturer": { "type": "string", "minLength": 1 },
- "ManufacturersModelName": { "type": "string", "minLength": 1 },
- "DeviceSerialNumber": { "type": "string", "minLength": 1 },
- "StationName": { "type": "string", "minLength": 1 },
- "SoftwareVersions": { "type": "string", "minLength": 1 },
- "InstitutionName": { "type": "string", "minLength": 1 },
- "InstitutionAddress": { "type": "string", "minLength": 1 },
- "InstitutionalDepartmentName": { "type": "string", "minLength": 1 },
- "BodyPart": { "type": "string", "minLength": 1 },
- "BodyPartDetails": { "type": "string", "minLength": 1 },
- "BodyPartDetailsOntology": {
- "type": "string",
- "minLength": 1,
- "format": "uri"
- },
- "SampleEnvironment": {
- "type": "string",
- "minLength": 1,
- "enum": ["in vivo", "ex vivo", "in vitro"]
- },
- "SampleEmbedding": { "type": "string", "minLength": 1 },
- "SampleFixation": { "type": "string", "minLength": 1 },
- "SampleStaining": {
- "anyOf": [
- { "type": "string", "minLength": 1 },
- { "type": "array", "items": { "type": "string" } }
- ]
- },
- "SamplePrimaryAntibody": {
- "anyOf": [
- { "type": "string", "minLength": 1 },
- { "type": "array", "items": { "type": "string" } }
- ]
- },
- "SampleSecondaryAntibody": {
- "anyOf": [
- { "type": "string", "minLength": 1 },
- { "type": "array", "items": { "type": "string" } }
- ]
- },
- "SliceThickness": { "type": "number", "exclusiveMinimum": 0 },
- "SampleExtractionProtocol": { "type": "string", "minLength": 1 },
- "SampleExtractionInstitution": { "type": "string", "minLength": 1 },
- "TissueDeformationScaling": { "type": "number" },
- "PixelSize": {
- "type": "array",
- "minItems": 2,
- "maxItems": 3,
- "items": { "type": "number", "minimum": 0 }
- },
- "PixelSizeUnits": { "type": "string", "enum": ["mm", "um", "nm"] },
- "Immersion": { "type": "string", "minLength": 1 },
- "NumericalAperture": { "type": "number", "exclusiveMinimum": 0 },
- "Magnification": { "type": "number", "exclusiveMinimum": 0 },
- "ImageAcquisitionProtocol": { "type": "string", "minLength": 1 },
- "OtherAcquisitionParameters": { "type": "string", "minLength": 1 },
- "ChunkTransformationMatrix": {
- "anyOf": [
- {
- "type": "array",
- "minItems": 3,
- "maxItems": 3,
- "items": {
- "type": "array",
- "minItems": 3,
- "maxItems": 3,
- "items": { "type": "number" }
- }
- },
- {
- "type": "array",
- "minItems": 4,
- "maxItems": 4,
- "items": {
- "type": "array",
- "minItems": 4,
- "maxItems": 4,
- "items": { "type": "number" }
- }
- }
- ]
- },
- "ChunkTransformationMatrixAxis": {
- "type": "array",
- "minItems": 2,
- "maxItems": 3,
- "items": { "type": "string" }
- }
- },
- "required": ["PixelSize", "PixelSizeUnits"],
- "recommended": [
- "Manufacturer",
- "ManufacturersModelName",
- "DeviceSerialNumber",
- "StationName",
- "SoftwareVersions",
- "InstitutionName",
- "InstitutionAddress",
- "InstitutionalDepartmentName",
- "BodyPart",
- "BodyPartDetails",
- "SampleEnvironment",
- "SampleStaining",
- "SamplePrimaryAntibody",
- "SampleSecondaryAntibody"
- ],
-
- "dependencies": {
- "PixelSize": ["PixelSizeUnits"],
- "ChunkTransformationMatrix": ["ChunkTransformationMatrixAxis"]
- }
-}
diff --git a/bids-validator/validators/json/schemas/microscopy_photo.json b/bids-validator/validators/json/schemas/microscopy_photo.json
deleted file mode 100644
index 94cd7220..00000000
--- a/bids-validator/validators/json/schemas/microscopy_photo.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "type": "object",
- "properties": {
- "PhotoDescription": { "type": "string", "minLength": 1 },
- "IntendedFor": {
- "anyOf": [
- { "type": "string", "minLength": 1 },
- {
- "type": "array",
- "items": { "type": "string", "minLength": 1 },
- "minItems": 1
- }
- ]
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/motion.json b/bids-validator/validators/json/schemas/motion.json
deleted file mode 100644
index 3db7717a..00000000
--- a/bids-validator/validators/json/schemas/motion.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "type": "object",
- "properties": {
- "TaskName": { "$ref": "common_definitions.json#/definitions/TaskName" },
- "TaskDescription": {
- "$ref": "common_definitions.json#/definitions/TaskDescription"
- },
- "Instructions": {
- "$ref": "common_definitions.json#/definitions/Instructions"
- },
- "CogAtlasID": { "$ref": "common_definitions.json#/definitions/CogAtlasID" },
- "CogPOID": { "$ref": "common_definitions.json#/definitions/CogPOID" },
- "InstitutionName": {
- "$ref": "common_definitions.json#/definitions/InstitutionName"
- },
- "InstitutionAddress": {
- "$ref": "common_definitions.json#/definitions/InstitutionAddress"
- },
- "InstitutionalDepartmentName": {
- "$ref": "common_definitions.json#/definitions/InstitutionalDepartmentName"
- },
- "EpochLength": {
- "$ref": "common_definitions.json#/definitions/EpochLength"
- },
- "RecordingType": {
- "$ref": "common_definitions.json#/definitions/RecordingType"
- },
- "SubjectArtefactDescription": { "type": "string" },
- "MotionChannelCount": { "type": "number" },
- "TrackingSystemName": { "type": "string" },
- "DeviceSerialNumber": {
- "$ref": "common_definitions.json#/definitions/DeviceSerialNumber"
- },
- "SoftwareVersions": {
- "$ref": "common_definitions.json#/definitions/SoftwareVersions"
- },
- "Manufacturer": {
- "$ref": "common_definitions.json#/definitions/Manufacturer"
- },
- "ManufacturersModelName": { "type": "string", "minLength": 1 },
- "TrackedPointsCount": { "type": "number" },
- "RecordingDuration": {
- "$ref": "common_definitions.json#/definitions/RecordingDuration"
- },
- "SamplingFrequency": {
- "$ref": "common_definitions.json#/definitions/SamplingFrequency"
- },
- "SamplingFrequencyEffective": { "type": "number" },
- "SoftwareFilters": {
- "$ref": "common_definitions.json#/definitions/SoftwareFilters"
- },
-
- "ACCELChannelCount": { "type": "number" },
- "ANGACCELChannelCount": { "type": "number" },
- "GYROChannelCount": { "type": "number" },
- "JNTANGChannelCount": { "type": "number" },
- "MAGNChannelCount": { "type": "number" },
- "MISCChannelCount": { "type": "number" },
- "ORNTChannelCount": { "type": "number" },
- "POSChannelCount": { "type": "number" },
- "VELChannelCount": { "type": "number" },
- "LATENCYChannelCount": { "type": "number" },
- "MissingValues": { "type": "string" }
- },
- "required": ["TaskName", "SamplingFrequency"],
- "additionalProperties": false
-}
diff --git a/bids-validator/validators/json/schemas/nirs.json b/bids-validator/validators/json/schemas/nirs.json
deleted file mode 100644
index b71d2e0f..00000000
--- a/bids-validator/validators/json/schemas/nirs.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
- "type": "object",
- "properties": {
- "TaskName": { "$ref": "common_definitions.json#/definitions/TaskName" },
- "TaskDescription": {
- "$ref": "common_definitions.json#/definitions/TaskDescription"
- },
- "Instructions": {
- "$ref": "common_definitions.json#/definitions/Instructions"
- },
- "CogAtlasID": { "$ref": "common_definitions.json#/definitions/CogAtlasID" },
- "CogPOID": { "$ref": "common_definitions.json#/definitions/CogPOID" },
- "InstitutionName": {
- "$ref": "common_definitions.json#/definitions/InstitutionName"
- },
- "InstitutionalDepartmentName": { "type": "string" },
- "InstitutionAddress": {
- "$ref": "common_definitions.json#/definitions/InstitutionAddress"
- },
- "Manufacturer": {
- "$ref": "common_definitions.json#/definitions/Manufacturer"
- },
- "ManufacturersModelName": { "type": "string", "minLength": 1 },
- "DeviceSerialNumber": {
- "$ref": "common_definitions.json#/definitions/DeviceSerialNumber"
- },
- "SoftwareVersions": {
- "$ref": "common_definitions.json#/definitions/SoftwareVersions"
- },
- "PowerLineFrequency": {
- "$ref": "common_definitions.json#/definitions/PowerLineFrequency"
- },
- "SamplingFrequency": {
- "anyOf": [
- { "$ref": "common_definitions.json#/definitions/SamplingFrequency" },
- { "enum": ["n/a"] }
- ]
- },
- "NIRSChannelCount": {
- "$ref": "common_definitions.json#/definitions/NIRSChannelCount"
- },
- "NIRSSourceOptodeCount": {
- "$ref": "common_definitions.json#/definitions/NIRSSourceOptodeCount"
- },
- "NIRSDetectorOptodeCount": {
- "$ref": "common_definitions.json#/definitions/NIRSDetectorOptodeCount"
- },
- "EEGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EEGChannelCount"
- },
- "EOGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EOGChannelCount"
- },
- "ECGChannelCount": {
- "$ref": "common_definitions.json#/definitions/ECGChannelCount"
- },
- "EMGChannelCount": {
- "$ref": "common_definitions.json#/definitions/EMGChannelCount"
- },
- "MiscChannelCount": {
- "$ref": "common_definitions.json#/definitions/MiscChannelCount"
- },
- "TriggerChannelCount": {
- "$ref": "common_definitions.json#/definitions/TriggerChannelCount"
- },
- "NIRSPlacementScheme": { "type": "string" },
- "CapManufacturer": { "type": "string" },
- "CapManufacturersModelName": { "type": "string" },
- "HeadCircumference": { "type": "number", "exclusiveMinimum": 0 },
- "SourceType": { "type": "string" },
- "ShortChannelCount": {
- "type": "number",
- "exclusiveMinimum": 0,
- "recommends_tsv_non_custom_columns": ["short_channel"]
- },
- "HardwareFilters": {
- "$ref": "common_definitions.json#/definitions/HardwareFilters"
- },
- "SoftwareFilters": {
- "$ref": "common_definitions.json#/definitions/SoftwareFilters"
- },
- "RecordingDuration": {
- "$ref": "common_definitions.json#/definitions/RecordingDuration"
- },
- "RecordingType": {
- "$ref": "common_definitions.json#/definitions/RecordingType"
- },
- "SubjectArtefactDescription": { "type": "string" },
- "ACCELChannelCount": { "type": "number" },
- "GYROChannelCount": { "type": "number" },
- "MAGNChannelCount": { "type": "number" }
- },
- "required": [
- "TaskName",
- "SamplingFrequency",
- "NIRSChannelCount",
- "NIRSSourceOptodeCount",
- "NIRSDetectorOptodeCount"
- ],
- "required_if_tsv_value_present": {
- "ACCELChannelCount": { "header": "type", "value": "ACC" },
- "MAGNChannelCount": { "header": "type", "value": "MAGN" },
- "GYROChannelCount": { "header": "type", "value": "GYRO" }
- },
- "additionalProperties": false
-}
diff --git a/bids-validator/validators/json/schemas/pet.json b/bids-validator/validators/json/schemas/pet.json
deleted file mode 100644
index 495d9044..00000000
--- a/bids-validator/validators/json/schemas/pet.json
+++ /dev/null
@@ -1,253 +0,0 @@
-{
- "type": "object",
- "properties": {
- "Manufacturer": { "type": "string", "minLength": 1 },
- "ManufacturersModelName": { "type": "string", "minLength": 1 },
- "Units": {
- "type": "string",
- "minLength": 1
- },
- "TracerName": { "type": "string", "minLength": 1 },
- "TracerRadionuclide": { "type": "string", "minLength": 1 },
- "InstitutionName": { "type": "string", "minLength": 1 },
- "InstitutionAddress": { "type": "string", "minLength": 1 },
- "InstitutionalDepartmentName": {
- "$ref": "common_definitions.json#/definitions/InstitutionalDepartmentName"
- },
- "BodyPart": { "type": "string", "minLength": 1 },
- "TracerRadLex": { "type": "string", "minLength": 1 },
- "TracerSNOMED": { "type": "string", "minLength": 1 },
- "TracerMolecularWeight": { "type": "number" },
- "TracerMolecularWeightUnits": { "type": "string", "minLength": 1 },
- "PharmaceuticalName": { "type": "string", "minLength": 1 },
- "PharmaceuticalDoseAmount": {
- "anyOf": [
- { "type": "number", "minimum": 0 },
- { "type": "array", "items": { "type": "number" } }
- ]
- },
- "PharmaceuticalDoseUnits": { "type": "string", "minLength": 1 },
- "PharmaceuticalDoseRegimen": { "type": "string", "minLength": 1 },
- "PharmaceuticalDoseTime": {
- "anyOf": [
- { "type": "number" },
- { "type": "array", "items": { "type": "number" } }
- ]
- },
- "Anaesthesia": { "type": "string", "minLength": 1 },
-
- "ModeOfAdministration": { "type": "string", "minLength": 1 },
- "InjectedRadioactivity": { "type": "number" },
- "InjectedRadioactivityUnits": { "type": "string", "minLength": 1 },
- "InjectedMass": {
- "anyOf": [{ "type": "number" }, { "type": "string", "pattern": "^n/a$" }]
- },
- "InjectedMassUnits": { "type": "string", "minLength": 1 },
- "SpecificRadioactivity": {
- "anyOf": [{ "type": "number" }, { "type": "string", "pattern": "^n/a$" }]
- },
- "SpecificRadioactivityUnits": { "type": "string", "minLength": 1 },
- "InjectedMassPerWeight": { "type": "number" },
- "InjectedMassPerWeightUnits": { "type": "string", "minLength": 1 },
- "SpecificRadioactivityMeasTime": {
- "type": "string",
- "pattern": "^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$"
- },
- "MolarActivity": { "type": "number" },
- "MolarActivityUnits": { "type": "string", "minLength": 1 },
- "MolarActivityMeasTime": {
- "type": "string",
- "pattern": "^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$"
- },
- "InfusionRadioactivity": { "type": "number" },
- "InfusionStart": { "type": "number" },
- "InfusionSpeed": { "type": "number" },
- "InfusionSpeedUnits": { "type": "string", "minLength": 1 },
- "InjectedVolume": { "type": "number" },
- "Purity": { "type": "number" },
-
- "TimeZero": {
- "type": "string",
- "pattern": "^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$"
- },
- "ScanStart": { "type": "number" },
- "InjectionStart": { "type": "number" },
- "FrameTimesStart": { "type": "array", "items": { "type": "number" } },
- "FrameDuration": { "type": "array", "items": { "type": "number" } },
- "ScanDate": {
- "type": "string",
- "pattern": "date"
- },
- "InjectionEnd": { "type": "number" },
-
- "AcquisitionMode": { "type": "string", "minLength": 1 },
- "ImageDecayCorrected": { "type": "boolean" },
- "ImageDecayCorrectionTime": { "type": "number" },
- "ReconMethodName": { "type": "string", "minLength": 1 },
- "ReconMethodParameterLabels": {
- "type": "array",
- "items": { "type": "string" }
- },
- "ReconMethodParameterUnits": {
- "type": "array",
- "items": { "type": "string" }
- },
- "ReconMethodParameterValues": {
- "type": "array",
- "items": { "type": "number" }
- },
- "ReconFilterType": {
- "anyOf": [
- { "type": "string" },
- { "type": "array", "items": { "type": "string" } }
- ]
- },
- "ReconFilterSize": {
- "anyOf": [
- { "type": "number", "minimum": 0 },
- { "type": "array", "items": { "type": "number" } }
- ]
- },
- "ReconMethodImplementationVersion": { "type": "string", "minLength": 1 },
- "AttenuationCorrection": { "type": "string", "minLength": 1 },
- "AttenuationCorrectionMethodReference": {
- "type": "string",
- "minLength": 1
- },
- "ScaleFactor": {
- "type": "array",
- "items": { "type": "number" }
- },
- "ScatterFraction": {
- "type": "array",
- "items": { "type": "number" }
- },
- "DecayCorrectionFactor": {
- "type": "array",
- "items": { "type": "number" }
- },
- "DoseCalibrationFactor": {
- "type": "number",
- "items": { "type": "number" }
- },
- "PromptRate": {
- "type": "array",
- "items": { "type": "number" }
- },
- "RandomRate": {
- "type": "array",
- "items": { "type": "number" }
- },
- "SinglesRate": {
- "type": "array",
- "items": { "type": "number" }
- },
- "CogAtlasID": { "$ref": "common_definitions.json#/definitions/CogAtlasID" },
- "CogPOID": { "$ref": "common_definitions.json#/definitions/CogPOID" },
- "TaskName": {
- "type": "string"
- },
- "TaskDescription": {
- "$ref": "common_definitions.json#/definitions/TaskDescription"
- },
- "Instructions": {
- "$ref": "common_definitions.json#/definitions/Instructions"
- }
- },
-
- "required": [
- "Manufacturer",
- "ManufacturersModelName",
- "Units",
- "TracerName",
- "TracerRadionuclide",
-
- "ModeOfAdministration",
- "InjectedRadioactivity",
- "InjectedRadioactivityUnits",
- "InjectedMass",
- "InjectedMassUnits",
- "SpecificRadioactivity",
- "SpecificRadioactivityUnits",
-
- "TimeZero",
- "ScanStart",
- "InjectionStart",
- "FrameTimesStart",
- "FrameDuration",
-
- "AcquisitionMode",
- "ImageDecayCorrected",
- "ImageDecayCorrectionTime",
- "ReconMethodName",
- "ReconMethodParameterLabels",
- "ReconFilterType",
- "AttenuationCorrection"
- ],
- "allOf": [
- {
- "$ref": "#/dependency-definitions/if-ReconMethodParameterLabels-then-Units-and-Values"
- },
- {
- "$ref": "#/dependency-definitions/if-bolus-infusion-then-infusion-details"
- },
- {
- "$ref": "#/dependency-definitions/if-ReconFilterType-then-ReconFilterSize"
- }
- ],
- "dependencies": {
- "TracerMolecularWeight": ["TracerMolecularWeightUnits"],
- "InjectedRadioactivity": ["InjectedRadioactivityUnits"],
- "InjectedMassPerWeight": ["InjectedMassPerWeightUnits"],
- "MolarActivity": ["MolarActivityUnits"],
- "InfusionSpeed": ["InfusionSpeedUnits"],
- "ReconMethodParameterLabels": [
- "ReconMethodParameterUnits",
- "ReconMethodParameterValues"
- ]
- },
- "dependency-definitions": {
- "if-ReconMethodParameterLabels-then-Units-and-Values": {
- "if": {
- "type": "object",
- "properties": {
- "ReconMethodParameterLabels": { "const": "none" }
- },
- "required": ["ReconMethodParameterLabels"]
- },
- "then": {},
- "else": {
- "required": ["ReconMethodParameterUnits", "ReconMethodParameterValues"]
- }
- },
- "if-bolus-infusion-then-infusion-details": {
- "if": {
- "type": "object",
- "properties": {
- "ModeOfAdministration": { "const": "bolus-infusion" }
- },
- "required": ["ModeOfAdministration"]
- },
- "then": {
- "required": [
- "InfusionRadioactivity",
- "InfusionStart",
- "InfusionSpeed",
- "InfusionSpeedUnits",
- "InjectedVolume"
- ]
- }
- },
- "if-ReconFilterType-then-ReconFilterSize": {
- "if": {
- "type": "object",
- "properties": {
- "ReconFilterType": { "const": "none" }
- },
- "required": ["ReconFilterType"]
- },
- "then": {},
- "else": { "required": ["ReconFilterSize"] }
- }
- }
-}
diff --git a/bids-validator/validators/json/schemas/pet_blood.json b/bids-validator/validators/json/schemas/pet_blood.json
deleted file mode 100644
index a3a4deb5..00000000
--- a/bids-validator/validators/json/schemas/pet_blood.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "type": "object",
- "properties": {
- "PlasmaAvail": {
- "default": false,
- "type": "boolean",
- "requires_tsv_non_custom_columns": ["plasma_radioactivity"]
- },
- "PlasmaFreeFraction": {
- "type": "number",
- "min": 0,
- "max": 1
- },
- "PlasmaFreeFractionMethod": { "type": "string", "minLength": 1 },
-
- "MetaboliteAvail": {
- "default": false,
- "type": "boolean",
- "requires_tsv_non_custom_columns": ["metabolite_parent_fraction"]
- },
- "MetaboliteMethod": { "type": "string", "minLength": 1 },
- "MetaboliteRecoveryCorrectionApplied": {
- "type": "boolean",
- "requires_tsv_non_custom_columns": ["hplc_recovery_fractions"]
- },
-
- "WithdrawalRate": { "type": "number" },
-
- "TubingType": { "type": "string" },
- "TubingLength": { "type": "number" },
- "TubingLengthUnits": { "type": "string" },
- "DispersionConstant": { "type": "number" },
- "DispersionCorrected": { "type": "boolean" },
-
- "WholeBloodAvail": {
- "default": false,
- "type": "boolean",
- "requires_tsv_non_custom_columns": ["whole_blood_radioactivity"]
- },
- "Haematocrit": { "type": "number" },
-
- "BloodDensity": { "type": "number" }
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "MetaboliteAvail": {
- "enum": [true]
- }
- }
- },
- "then": {
- "required": ["MetaboliteMethod", "MetaboliteRecoveryCorrectionApplied"]
- }
- }
- ],
- "required": [
- "MetaboliteAvail",
- "PlasmaAvail",
- "WholeBloodAvail",
- "DispersionCorrected"
- ]
-}
diff --git a/bids-validator/validators/json/schemas/physio.json b/bids-validator/validators/json/schemas/physio.json
deleted file mode 100644
index c9c6ccd7..00000000
--- a/bids-validator/validators/json/schemas/physio.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "type": "object",
- "properties": {
- "SamplingFrequency": { "type": "number", "exclusiveMinimum": 0 },
- "StartTime": { "type": "number" },
- "Columns": {
- "type": "array",
- "items": {
- "type": "string",
- "minLength": 1
- }
- },
- "Manufacturer": { "type": "string" },
- "ManufacturersModelName": { "type": "string" },
- "SoftwareVersions": { "type": "string" },
- "DeviceSerialNumber": { "type": "string" }
- },
- "required": ["SamplingFrequency", "StartTime", "Columns"]
-}
diff --git a/bids-validator/validators/json/validate.js b/bids-validator/validators/json/validate.js
deleted file mode 100644
index 7cbddf4a..00000000
--- a/bids-validator/validators/json/validate.js
+++ /dev/null
@@ -1,59 +0,0 @@
-import json from './json'
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-
-const validate = (jsonFiles, fileList, jsonContentsDict, summary) => {
- let issues = []
- const jsonValidationPromises = jsonFiles.map(function (file) {
- return utils.limit(
- () =>
- new Promise((resolve) => {
- checkForAccompanyingDataFile(file, fileList, issues)
- json(file, jsonContentsDict, (jsonIssues, jsObj) => {
- issues = issues.concat(jsonIssues)
- collectTaskSummary(file, jsObj, summary)
- return resolve()
- })
- }),
- )
- })
-
- return new Promise((resolve) =>
- Promise.all(jsonValidationPromises).then(() => resolve(issues)),
- )
-}
-
-const collectTaskSummary = (file, jsObj, summary) => {
- // collect task summary
- if (file.name.indexOf('task') > -1) {
- if (
- jsObj &&
- jsObj.TaskName &&
- summary.tasks.indexOf(jsObj.TaskName) === -1
- ) {
- summary.tasks.push(jsObj.TaskName)
- }
- }
-}
-
-const checkForAccompanyingDataFile = (file, fileList, issues) => {
- // Verify that the json file has an accompanying data file
- // Need to limit checks to files in sub-*/**/ - Not all data dictionaries are sidecars
- const pathArgs = file.relativePath.split('/')
- const isSidecar =
- pathArgs[1].includes('sub-') && pathArgs.length > 3 ? true : false
- if (isSidecar) {
- // Check for suitable datafile accompanying this sidecar
- const dataFile = utils.bids_files.checkSidecarForDatafiles(file, fileList)
- if (!dataFile) {
- issues.push(
- new Issue({
- code: 90,
- file: file,
- }),
- )
- }
- }
-}
-
-export default validate
diff --git a/bids-validator/validators/microscopy/__tests__/checkJSONAndField.spec.js b/bids-validator/validators/microscopy/__tests__/checkJSONAndField.spec.js
deleted file mode 100644
index 60d211fc..00000000
--- a/bids-validator/validators/microscopy/__tests__/checkJSONAndField.spec.js
+++ /dev/null
@@ -1,95 +0,0 @@
-import checkJSONAndField from '../checkJSONAndField'
-
-describe('checkJSONAndField()', () => {
- const emptyJsonContentsDict = {
- 'test.json': {},
- }
- it('returns no issues with empty arguments', () => {
- const issues = checkJSONAndField({}, {})
- expect(issues.length).toBe(0)
- })
-
- it('returns issue 225 with no json for ome files', () => {
- const files = {
- ome: [{ relativePath: 'test.ome.tif' }],
- }
- const issues = checkJSONAndField(files, emptyJsonContentsDict)
- expect(issues.length).toBe(1)
- expect(issues[0].code).toBe(225)
- })
-
- it('returns issue 225 with no json for tif files', () => {
- const files = {
- tif: [{ relativePath: 'test.tif' }],
- }
- const issues = checkJSONAndField(files, emptyJsonContentsDict)
- expect(issues.length).toBe(1)
- expect(issues[0].code).toBe(225)
- })
-
- it('returns issue 225 with no json for png files', () => {
- const files = {
- png: [{ relativePath: '/test.png' }],
- }
- const issues = checkJSONAndField(files, emptyJsonContentsDict)
- expect(issues.length).toBe(1)
- expect(issues[0].code).toBe(225)
- })
-
- it('returns warning 223 if chunk entity present but missing metadata', () => {
- const files = {
- ome: [{ relativePath: '/test_chunk-01.ome.tif' }],
- }
- const jsonContentsDict = {
- '/test_chunk-01.json': { testKey: 'testValue' },
- }
- const issues = checkJSONAndField(files, jsonContentsDict)
- expect(issues.length).toBe(1)
- expect(issues[0].code).toBe(223)
- })
-
- it('IntendedFor check detects non-existent file', () => {
- const files = {
- png: [
- {
- relativePath: '/sub-01/ses-01/micr/sub-01_ses-01_sample-A_photo.png',
- },
- ],
- }
-
- const jsonContentsDict = {
- '/sub-01/ses-01/micr/sub-01_ses-01_sample-A_photo.json': {
- IntendedFor: 'ses-01/micr/sub-01_ses-01_sample-A_SEM.png',
- },
- }
-
- const fileList = [
- { relativePath: '/sub-01/ses-01/micr/sub-01_ses-01_sample-B_SEM.png' },
- ]
-
- const issues = checkJSONAndField(files, jsonContentsDict, fileList)
- expect(issues.length).toBe(1)
- expect(issues[0].code).toBe(37)
- })
-
- it('intededfor check detects existing file', () => {
- const files = {
- png: [
- { relativePath: '/sub-01/ses-01/micr/sub-01_ses-01_sample-A_SEM.png' },
- ],
- }
-
- const jsonContentsDict = {
- '/sub-01/ses-01/micr/sub-01_ses-01_sample-A_SEM.json': {
- IntendedFor: 'ses-01/micr/sub-01_ses-01_sample-A_SEM.png',
- },
- }
-
- const fileList = [
- { relativePath: '/sub-01/ses-01/micr/sub-01_ses-01_sample-A_SEM.png' },
- ]
-
- const issues = checkJSONAndField(files, jsonContentsDict, fileList)
- expect(issues.length).toBe(0)
- })
-})
diff --git a/bids-validator/validators/microscopy/__tests__/checkSample.spec.js b/bids-validator/validators/microscopy/__tests__/checkSample.spec.js
deleted file mode 100644
index 3194d44c..00000000
--- a/bids-validator/validators/microscopy/__tests__/checkSample.spec.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import checkSamples from '../checkSamples'
-describe('checkSamples()', () => {
- it('returns issue 214 when no samples.tsv is present', () => {
- const fileList = {
- 0: { relativePath: '/test.tsv' },
- }
- const issues = checkSamples(fileList)
- expect(issues.length).toBe(1)
- expect(issues[0].code).toBe(214)
- })
-
- it('doesnt return issue 214 when samples.tsv is present', () => {
- const fileList = {
- 0: { relativePath: '/samples.tsv' },
- }
- const issues = checkSamples(fileList)
- expect(issues.length).toBe(0)
- })
-})
diff --git a/bids-validator/validators/microscopy/__tests__/data/btif_id.ome.tif b/bids-validator/validators/microscopy/__tests__/data/btif_id.ome.tif
deleted file mode 100644
index f6294616..00000000
Binary files a/bids-validator/validators/microscopy/__tests__/data/btif_id.ome.tif and /dev/null differ
diff --git a/bids-validator/validators/microscopy/__tests__/data/invalid_id.ome.tif b/bids-validator/validators/microscopy/__tests__/data/invalid_id.ome.tif
deleted file mode 100644
index 96973db5..00000000
Binary files a/bids-validator/validators/microscopy/__tests__/data/invalid_id.ome.tif and /dev/null differ
diff --git a/bids-validator/validators/microscopy/__tests__/data/tif_id.ome.btf b/bids-validator/validators/microscopy/__tests__/data/tif_id.ome.btf
deleted file mode 100644
index 416a1d8e..00000000
Binary files a/bids-validator/validators/microscopy/__tests__/data/tif_id.ome.btf and /dev/null differ
diff --git a/bids-validator/validators/microscopy/__tests__/data/tif_id.ome.tif b/bids-validator/validators/microscopy/__tests__/data/tif_id.ome.tif
deleted file mode 100644
index 416a1d8e..00000000
Binary files a/bids-validator/validators/microscopy/__tests__/data/tif_id.ome.tif and /dev/null differ
diff --git a/bids-validator/validators/microscopy/__tests__/data/valid.ome.tif b/bids-validator/validators/microscopy/__tests__/data/valid.ome.tif
deleted file mode 100644
index 416a1d8e..00000000
Binary files a/bids-validator/validators/microscopy/__tests__/data/valid.ome.tif and /dev/null differ
diff --git a/bids-validator/validators/microscopy/__tests__/validate.spec.js b/bids-validator/validators/microscopy/__tests__/validate.spec.js
deleted file mode 100644
index e203454c..00000000
--- a/bids-validator/validators/microscopy/__tests__/validate.spec.js
+++ /dev/null
@@ -1,98 +0,0 @@
-import path from 'path'
-
-import validate from '../validate'
-
-const dataDir = path.join(__dirname, '/data')
-
-const jsonContent = {
- Manufacturer: 'Miltenyi Biotec',
- ManufacturersModelName: 'UltraMicroscope II',
- BodyPart: 'CSPINE',
- SampleEnvironment: 'ex vivo',
- SampleFixation: '4% paraformaldehyde, 2% glutaraldehyde',
- SampleStaining: 'Luxol fast blue',
- PixelSize: [1, 1, 1],
- PixelSizeUnits: 'um',
- Immersion: 'Oil',
- NumericalAperture: 1.4,
- Magnification: 40,
- ChunkTransformationMatrix: [
- [1, 0, 0, 0],
- [0, 2, 0, 0],
- [0, 0, 1, 0],
- [0, 0, 0, 1],
- ],
- ChunkTransformationMatrixAxis: ['X', 'Y', 'Z'],
-}
-
-describe('validate', () => {
- it('returns error 227 with extension/id mismatch', () => {
- const fileName = 'btif_id.ome.tif'
- const files = [
- {
- name: fileName,
- relativePath: `/bids-validator/validators/microscopy/__tests__/data/${fileName}`,
- path: path.join(dataDir, fileName),
- },
- ]
-
- expect.assertions(3)
- return validate(files, {}).then((issues) => {
- expect(issues.length).toBe(2)
- expect(issues[0].code).toBe(227)
- expect(issues[1].code).toBe(226)
- })
- })
-
- it('returns error 227 with incorrect id in magic number', () => {
- const fileName = 'invalid_id.ome.tif'
- const files = [
- {
- name: fileName,
- relativePath: `/bids-validator/validators/microscopy/__tests__/data/${fileName}`,
- path: path.join(dataDir, fileName),
- },
- ]
- expect.assertions(2)
- return validate(files, {}).then((issues) => {
- expect(issues.length).toBe(1)
- expect(issues[0].code).toBe(227)
- })
- })
-
- it('returns error 227 with tif id and btf extension', () => {
- const fileName = 'tif_id.ome.btf'
- const files = [
- {
- name: fileName,
- relativePath: `/bids-validator/validators/microscopy/__tests__/data/${fileName}`,
- path: path.join(dataDir, fileName),
- },
- ]
-
- expect.assertions(2)
- return validate(files, {}).then((issues) => {
- expect(issues.length).toBe(1)
- expect(issues[0].code).toBe(227)
- })
- })
-
- it('validates with valid data', () => {
- const fileName = 'valid.ome.tif'
- const relativePath = `/bids-validator/validators/microscopy/__tests__/data/${fileName}`
- const files = [
- {
- name: fileName,
- relativePath: relativePath,
- path: path.join(dataDir, fileName),
- },
- ]
- const jsonContentDict = {}
- jsonContentDict[relativePath.replace('.ome.tif', '.json')] = jsonContent
-
- expect.assertions(1)
- return validate(files, jsonContentDict).then((issues) => {
- expect(issues.length).toBe(0)
- })
- })
-})
diff --git a/bids-validator/validators/microscopy/checkJSONAndField.js b/bids-validator/validators/microscopy/checkJSONAndField.js
deleted file mode 100644
index 74984351..00000000
--- a/bids-validator/validators/microscopy/checkJSONAndField.js
+++ /dev/null
@@ -1,135 +0,0 @@
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-
-const checkJSONAndField = (files, jsonContentsDict, fileList) => {
- let issues = []
- if (files.ome) {
- files.ome.forEach((file) => {
- let possibleJsonPath = file.relativePath
- .replace('.tif', '')
- .replace('.btf', '')
- .replace('.ome', '.json')
- issues = issues.concat(
- ifJsonExist(file, possibleJsonPath, jsonContentsDict, fileList),
- )
- })
- }
- if (files.png) {
- files.png.forEach((file) => {
- let possibleJsonPath = file.relativePath.replace('.png', '.json')
- issues = issues.concat(
- ifJsonExist(file, possibleJsonPath, jsonContentsDict, fileList),
- )
- })
- }
- if (files.tif) {
- files.tif.forEach((file) => {
- let possibleJsonPath = file.relativePath.replace('.tif', '.json')
- issues = issues.concat(
- ifJsonExist(file, possibleJsonPath, jsonContentsDict, fileList),
- )
- })
- }
- if (files.jpg) {
- files.jpg.forEach((file) => {
- let possibleJsonPath = file.relativePath.replace('.jpg', '.json')
- issues = issues.concat(
- ifJsonExist(file, possibleJsonPath, jsonContentsDict, fileList),
- )
- })
- }
- return issues
-}
-
-const ifJsonExist = (file, possibleJsonPath, jsonContentsDict, fileList) => {
- let potentialSidecars = utils.files.potentialLocations(possibleJsonPath)
- const chunkRegex = new RegExp('_chunk-[0-9]+')
-
- const jsonChunkFiles = potentialSidecars.filter(
- (name) => jsonContentsDict.hasOwnProperty(name) && chunkRegex.exec(name),
- )
- const chunkPresent =
- jsonChunkFiles.length || chunkRegex.exec(file.relativePath)
-
- const mergedDictionary = utils.files.generateMergedSidecarDict(
- potentialSidecars,
- jsonContentsDict,
- )
-
- if (utils.type.file.isMicroscopyPhoto(file.relativePath)) {
- if (mergedDictionary.hasOwnProperty('IntendedFor')) {
- const intendedFor =
- typeof mergedDictionary['IntendedFor'] == 'string'
- ? [mergedDictionary['IntendedFor']]
- : mergedDictionary['IntendedFor']
- return checkIfIntendedExists(intendedFor, fileList, file)
- }
- } else {
- // check if the given file has a corresponding JSON file
- if (Object.keys(mergedDictionary).length === 0) {
- return [
- new Issue({
- file: file,
- code: 225,
- }),
- ]
- }
-
- if (chunkPresent) {
- return checkMatrixField(file, mergedDictionary)
- }
- }
- return []
-}
-
-const checkMatrixField = (file, mergedDictionary) => {
- let issues = []
- if (!mergedDictionary.hasOwnProperty('ChunkTransformationMatrix')) {
- issues.push(
- new Issue({
- file: file,
- code: 223,
- }),
- )
- }
- return issues
-}
-
-const checkIfIntendedExists = (intendedFor, fileList, file) => {
- let issues = []
- for (let key = 0; key < intendedFor.length; key++) {
- const intendedForFile = intendedFor[key]
- const intendedForFileFull =
- '/' +
- (intendedForFile.startsWith('bids::')
- ? intendedForFile.split('::')[1]
- : file.relativePath.split('/')[1] + '/' + intendedForFile)
- const onTheList = Object.values(fileList).some(
- (f) =>
- f.relativePath === intendedForFileFull ||
- // Consider .ome.zarr/ files
- f.relativePath.startsWith(`${intendedForFileFull}/`),
- )
- if (!onTheList) {
- issues.push(
- new Issue({
- file: file,
- code: 37,
- reason:
- "'IntendedFor' property of this photo ('" +
- file.relativePath +
- "') does not point to an existing file ('" +
- intendedForFile +
- "'). Please mind that this value should not include subject level directory " +
- "('/" +
- file.relativePath.split('/')[1] +
- "/').",
- evidence: intendedForFile,
- }),
- )
- }
- }
- return issues
-}
-
-export default checkJSONAndField
diff --git a/bids-validator/validators/microscopy/checkSamples.js b/bids-validator/validators/microscopy/checkSamples.js
deleted file mode 100644
index 750c448c..00000000
--- a/bids-validator/validators/microscopy/checkSamples.js
+++ /dev/null
@@ -1,13 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-
-const checkSamples = (fileList) => {
- const issues = []
- const samplesFile = Array.from(Object.values(fileList)).find(
- (file) => file.relativePath && file.relativePath == '/samples.tsv',
- )
- if (!samplesFile) {
- issues.push(new Issue({ code: 214 }))
- }
- return issues
-}
-export default checkSamples
diff --git a/bids-validator/validators/microscopy/index.js b/bids-validator/validators/microscopy/index.js
deleted file mode 100644
index ab3895a9..00000000
--- a/bids-validator/validators/microscopy/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import ometiff from './ometiff'
-import validate from './validate'
-import checkSamples from './checkSamples'
-import checkJSONAndField from './checkJSONAndField'
-
-export default {
- ometiff,
- validate,
- checkSamples,
- checkJSONAndField,
-}
diff --git a/bids-validator/validators/microscopy/ometiff.js b/bids-validator/validators/microscopy/ometiff.js
deleted file mode 100644
index 48a5539c..00000000
--- a/bids-validator/validators/microscopy/ometiff.js
+++ /dev/null
@@ -1,184 +0,0 @@
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-
-/**
- * ometiff
- *
- * Takes an ometiff file, its omedata as an object
- * and a callback as arguments. Callback
- * with any issues it finds while validating
- * against the BIDS specification.
- */
-export default function ometiff(file, omeData, jsonContentsDict, callback) {
- let issues = []
-
- let mergedDictionary = getMergedDictionary(file, jsonContentsDict)
-
- let rootKey = Object.keys(omeData)[0]
- let namespace = ''
- if (rootKey.includes(':OME')) {
- namespace = rootKey.split(':OME')[0].concat(':')
- }
-
- // Check for consistency with optional OME-TIFF metadata if present for
- // Immersion, NumericalAperture and Magnification
- let optionalFieldsIssues = checkOptionalFields(
- file.relativePath,
- omeData,
- namespace,
- mergedDictionary,
- )
-
- // Check for consistency for PixelSize between JSON and OME-TIFF metadata
- let pixelSizeIssues = checkPixelSize(omeData, namespace, mergedDictionary)
-
- issues = issues.concat(optionalFieldsIssues).concat(pixelSizeIssues)
-
- callback(issues)
-}
-
-const convertFactor = (omeUnit, jsonUnit) => {
- if (omeUnit === jsonUnit || (omeUnit === 'µm' && jsonUnit === 'um')) return 1
-
- if (jsonUnit === 'um') {
- if (omeUnit === 'mm') {
- return 1000
- } else if (omeUnit === 'nm') {
- return 0.001
- }
- } else if (jsonUnit === 'mm') {
- if (omeUnit === 'µm') {
- return 0.001
- } else if (omeUnit === 'nm') {
- return 0.000001
- }
- } else if (jsonUnit === 'nm') {
- if (omeUnit === 'mm') {
- return 1000000
- } else if (omeUnit === 'µm') {
- return 1000
- }
- }
-}
-
-const getMergedDictionary = (file, jsonContentsDict) => {
- let possibleJsonPath = file.relativePath
- .replace('.tif', '')
- .replace('.ome', '.json')
-
- let potentialSidecars = utils.files.potentialLocations(possibleJsonPath)
-
- return utils.files.generateMergedSidecarDict(
- potentialSidecars,
- jsonContentsDict,
- )
-}
-
-const checkOptionalFields = (omePath, omeData, namespace, jsonData) => {
- let issues = []
-
- let fields = {
- Immersion: 'Immersion',
- NumericalAperture: 'LensNA',
- Magnification: 'NominalMagnification',
- }
-
- if (
- omeData[`${namespace}OME`][`${namespace}Instrument`] &&
- omeData[`${namespace}OME`][`${namespace}Instrument`][0][
- `${namespace}Objective`
- ]
- ) {
- let objective =
- omeData[`${namespace}OME`][`${namespace}Instrument`][0][
- `${namespace}Objective`
- ][0]['$']
- for (let field in fields) {
- if (!fields.hasOwnProperty(field)) {
- continue
- }
- let property = fields[field]
- if (jsonData.hasOwnProperty(field) && objective[property]) {
- if (objective[property] != jsonData[field]) {
- issues.push(
- new Issue({
- file: {
- relativePath: omePath,
- path: omePath,
- },
- evidence: `JSON field '${field}' is inconsistent`,
- code: 224,
- }),
- )
- }
- }
- }
- }
-
- return issues
-}
-
-const checkPixelSize = (omeData, namespace, jsonData) => {
- let issues = []
- let validUnits = ['um', 'µm', 'nm', 'mm']
-
- const PhysicalSizeX =
- omeData[`${namespace}OME`][`${namespace}Image`][0][`${namespace}Pixels`][0][
- '$'
- ]['PhysicalSizeX']
- const physicalSizeXUnit =
- omeData[`${namespace}OME`][`${namespace}Image`][0][`${namespace}Pixels`][0][
- '$'
- ]['PhysicalSizeXUnit']
- const PhysicalSizeY =
- omeData[`${namespace}OME`][`${namespace}Image`][0][`${namespace}Pixels`][0][
- '$'
- ]['PhysicalSizeY']
- const physicalSizeYUnit =
- omeData[`${namespace}OME`][`${namespace}Image`][0][`${namespace}Pixels`][0][
- '$'
- ]['PhysicalSizeYUnit']
- const PhysicalSizeZ =
- omeData[`${namespace}OME`][`${namespace}Image`][0][`${namespace}Pixels`][0][
- '$'
- ]['PhysicalSizeZ']
- const physicalSizeZUnit =
- omeData[`${namespace}OME`][`${namespace}Image`][0][`${namespace}Pixels`][0][
- '$'
- ]['PhysicalSizeZUnit']
-
- // if no corresponding json file, skip the consistency check
- if (Object.keys(jsonData).length === 0) return []
-
- let unitsPendToCheck = [
- physicalSizeXUnit,
- physicalSizeYUnit,
- physicalSizeZUnit,
- ]
-
- unitsPendToCheck.forEach((unit) => {
- if (!validUnits.includes(unit)) {
- issues.push(new Issue({ code: 222 }))
- }
- })
-
- // if any physicalSizeUnit is not valid or no valid json file, skip the consistency check
- if (issues.length > 0) return issues
-
- let pixelSize = jsonData['PixelSize']
- let physicalSizeUnit = jsonData['PixelSizeUnits']
-
- let factorX = convertFactor(physicalSizeXUnit, physicalSizeUnit)
- let factorY = convertFactor(physicalSizeYUnit, physicalSizeUnit)
- let factorZ = convertFactor(physicalSizeZUnit, physicalSizeUnit)
-
- if (
- PhysicalSizeX * factorX !== pixelSize[0] ||
- PhysicalSizeY * factorY !== pixelSize[1] ||
- PhysicalSizeZ * factorZ !== pixelSize[2]
- ) {
- issues.push(new Issue({ code: 221 }))
- }
-
- return issues
-}
diff --git a/bids-validator/validators/microscopy/validate.js b/bids-validator/validators/microscopy/validate.js
deleted file mode 100644
index 46b1408b..00000000
--- a/bids-validator/validators/microscopy/validate.js
+++ /dev/null
@@ -1,80 +0,0 @@
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-import ometiff from './ometiff'
-import validateTiffSignature from './validateTiffSignature'
-
-const TIFF_ID = 0x2a
-const BIG_TIFF_ID = 0x2b
-
-const validate = (files, jsonContentsDict) => {
- let issues = []
- // validate ometiff
- const omePromises = files.map(function (file) {
- return utils.limit(
- () =>
- new Promise((resolve, reject) => {
- utils.files.readBuffer(file).then((buffer) => {
- if (validateTiffSignature(buffer, TIFF_ID)) {
- if (file.relativePath.endsWith('.ome.btf')) {
- issues.push(
- new Issue({
- code: 227,
- file: file,
- evidence: `Inconsistent TIFF file type and extension, given .ome.btf but should be .ome.tif`,
- }),
- )
- }
- utils.files
- .readOMEFile(buffer)
- .then((omeData) => {
- ometiff(
- file,
- omeData,
- jsonContentsDict,
- function (omeIssues) {
- issues = issues.concat(omeIssues)
- resolve()
- },
- )
- })
- .catch((err) =>
- utils.issues.redirect(err, reject, () => {
- issues.push(err)
- resolve()
- }),
- )
- } else if (validateTiffSignature(buffer, BIG_TIFF_ID)) {
- if (file.relativePath.endsWith('.ome.tif')) {
- issues.push(
- new Issue({
- code: 227,
- file: file,
- evidence: `Inconsistent TIFF file type and extension, given .ome.tif but should be .ome.btf`,
- }),
- )
- }
- issues.push(
- new Issue({
- code: 226,
- file: file,
- }),
- )
- resolve()
- } else {
- issues.push(
- new Issue({
- code: 227,
- file: file,
- evidence: `3rd byte of file does not identify file as tiff.`,
- }),
- )
- resolve()
- }
- })
- }),
- )
- })
- return Promise.all(omePromises).then(() => issues)
-}
-
-export default validate
diff --git a/bids-validator/validators/microscopy/validateTiffSignature.js b/bids-validator/validators/microscopy/validateTiffSignature.js
deleted file mode 100644
index 9a056a2f..00000000
--- a/bids-validator/validators/microscopy/validateTiffSignature.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import isNode from '../../utils/isNode'
-
-const getDataView = (buffer) => {
- if (isNode) {
- const uint8arr = new Uint8Array(buffer.byteLength)
- buffer.copy(uint8arr, 0, 0, buffer.byteLength)
- return new DataView(uint8arr.buffer)
- } else {
- return new DataView(buffer)
- }
-}
-
-const validateTiffSignature = (buffer, tiffId) => {
- const dataView = getDataView(buffer)
- const littleEndian = dataView.getUint16(0) === 0x4949
-
- return dataView.getUint16(2, littleEndian) === tiffId
-}
-
-export default validateTiffSignature
diff --git a/bids-validator/validators/nifti/__tests__/duplicateFiles.spec.js b/bids-validator/validators/nifti/__tests__/duplicateFiles.spec.js
deleted file mode 100644
index b9ecf924..00000000
--- a/bids-validator/validators/nifti/__tests__/duplicateFiles.spec.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import { assert } from 'chai'
-import duplicateNiftis from '../duplicateFiles'
-
-describe('duplicateFiles', () => {
- describe('duplicateNiftis()', () => {
- const file1nii = { name: 'file1.nii' }
- const file1gz = { name: 'file1.nii.gz' }
- const file2nii = { name: 'file2.nii' }
- const file2gz = { name: 'file2.nii.gz' }
-
- it('throws no issues if there are no nifti files', () => {
- const files = []
- const issues = duplicateNiftis(files)
- assert.lengthOf(issues, 0)
- })
-
- it('allows nifti files with distinct names and extensions', () => {
- const files = [file1nii, file2gz]
- const issues = duplicateNiftis(files)
- assert.lengthOf(issues, 0)
- })
-
- it('allows nifti files with distinct names and the same extension', () => {
- const files = [file1nii, file2nii]
- const issues = duplicateNiftis(files)
- assert.lengthOf(issues, 0)
- })
-
- it('throws an error if a the same filename with .nii and .nii.gz extensions are present', () => {
- const files = [file1gz, file1nii]
- const issues = duplicateNiftis(files)
- assert.lengthOf(issues, 2)
- })
- })
-})
diff --git a/bids-validator/validators/nifti/__tests__/nii.spec.js b/bids-validator/validators/nifti/__tests__/nii.spec.js
deleted file mode 100644
index f5b44736..00000000
--- a/bids-validator/validators/nifti/__tests__/nii.spec.js
+++ /dev/null
@@ -1,204 +0,0 @@
-import { checkPetRequiredFields } from '../nii'
-
-describe('nifti checks', () => {
- describe('PET sidecar checks', () => {
- it('returns no issues for a correct file', () => {
- expect(
- checkPetRequiredFields(
- {},
- {
- Manufacturer: 'Siemens',
- ManufacturersModelName:
- 'High-Resolution Research Tomograph (HRRT, CTI/Siemens)',
- Units: 'Bq/mL',
- BodyPart: 'Brain',
- TracerName: 'SB',
- TracerRadionuclide: 'C11',
- TracerMolecularWeight: 339.8,
- TracerMolecularWeightUnits: 'g/mol',
- InjectedRadioactivity: 599.444,
- InjectedRadioactivityUnits: 'MBq',
- InjectedMass: 0.938403836472209,
- InjectedMassUnits: 'ug',
- MolarActivity: 217.7,
- MolarActivityUnits: 'GBq/umol',
- SpecificRadioactivity: 640.6709829311359,
- SpecificRadioactivityUnits: 'MBq/ug',
- ModeOfAdministration: 'bolus',
- TimeZero: '13:02:59',
- ScanStart: 0,
- InjectionStart: 0,
- FrameDuration: [
- 5, 5, 5, 5, 5, 5, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 30, 30,
- 30, 30, 120, 120, 120, 120, 120, 300, 300, 300, 300, 300, 600,
- 600, 600, 600, 600, 600, 600, 600,
- ],
- FrameTimesStart: [
- 0, 5, 10, 15, 20, 25, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165,
- 180, 210, 240, 270, 300, 420, 540, 660, 780, 900, 1200, 1500,
- 1800, 2100, 2400, 3000, 3600, 4200, 4800, 5400, 6000, 6600,
- ],
- ReconMethodParameterLabels: [
- 'iterations',
- 'subsets',
- 'lower_threshold',
- 'upper_threshold',
- ],
- ReconMethodParameterUnits: ['none', 'none', 'keV', 'keV'],
- ReconMethodParameterValues: [10, 16, 0, 650],
- ScaleFactor: [
- 7.594985049763636e-7, 8.265859605671722e-7, 1.3820734920955147e-6,
- 1.5545690530416323e-6, 1.6220834595515043e-6,
- 2.4517744350305293e-6, 8.905253707780503e-7, 6.875428653074778e-7,
- 9.91522711046855e-7, 9.279470418732672e-7, 1.223937488248339e-6,
- 8.961077924141136e-7, 8.55694622714509e-7, 1.017058366414858e-6,
- 8.278300356323598e-7, 1.0040834013125277e-6,
- 3.9711613908366417e-7, 6.720089800182905e-7, 5.650269372381445e-7,
- 4.739523831176484e-7, 1.3938594634055335e-7,
- 1.5224574667627166e-7, 1.8099771637025697e-7,
- 1.9275844920230156e-7, 1.8285233238657383e-7,
- 1.0964477326069755e-7, 1.431431400078509e-7,
- 1.0884801326938032e-7, 1.3908149298913486e-7,
- 1.229657300427789e-7, 1.063033252535206e-7, 1.424941302730076e-7,
- 1.7276526875775744e-7, 2.49544115149547e-7, 3.827111640930525e-7,
- 4.0279633140016813e-7, 5.26599649219861e-7, 8.640701025797171e-7,
- ],
- ScatterFraction: [
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- ],
- DecayCorrectionFactor: [
- 1.0133966207504272, 1.0162700414657593, 1.0191516876220703,
- 1.0220414400100708, 1.0249395370483398, 1.0278457403182983,
- 1.0336800813674927, 1.042497992515564, 1.0513912439346313,
- 1.0603601932525635, 1.0694057941436768, 1.0785285234451294,
- 1.0877289772033691, 1.0970079898834229, 1.1063661575317383,
- 1.1158041954040527, 1.1301021575927734, 1.1494654417037964,
- 1.1691603660583496, 1.189192771911621, 1.2405647039413452,
- 1.3277983665466309, 1.4211663007736206, 1.52109956741333,
- 1.6280598640441895, 1.8318043947219849, 2.1710057258605957,
- 2.5730178356170654, 3.0494720935821533, 3.6141531467437744,
- 4.646376132965088, 6.526466369628906, 9.16730785369873,
- 12.876729011535645, 18.087114334106445, 25.405807495117188,
- 35.68590545654297, 50.12569808959961,
- ],
- PromptRate: [
- 404051.8125, 658088.1875, 864563.375, 796124.8125, 943511.8125,
- 1076238.375, 1070334.375, 1040693.5625, 1014857.0625, 1000047.75,
- 990555.3125, 984797.3125, 973534.4375, 965597.1875, 957793.625,
- 949785.25, 937090.75, 922220.25, 908199.3125, 892214.3125, 852962,
- 791172.75, 728458.8125, 668295.9375, 611953.8125, 521658.5625,
- 412611.78125, 325005.21875, 257148.546875, 204296.75, 146452.875,
- 93791.5703125, 61174.44921875, 40212.1953125, 26685.357421875,
- 17859.39453125, 12070.83984375, 8262.0771484375,
- ],
- RandomRate: [
- 377909.8125, 603776.8125, 758694.375, 626551.625, 641821.375,
- 654678, 601687.5625, 548878.9375, 511943.34375, 488057.875,
- 475567.46875, 466758.0625, 452795.53125, 444436.53125,
- 435499.28125, 427796.53125, 415149.71875, 401917.0625,
- 388928.65625, 374526.6875, 343422.90625, 299093.34375,
- 258024.6875, 222395.1875, 191260.9375, 146921.265625,
- 99678.5390625, 67509.90625, 46172.7265625, 31686.0625,
- 18721.779296875, 9416.8115234375, 5033.39990234375, 2889.75,
- 1794.48828125, 1211.5799560546875, 884.481689453125,
- 695.5399780273438,
- ],
- SinglesRate: [
- 16000, 20328, 27796, 26643, 25349, 25819, 25367, 23966, 23166,
- 22530, 22208, 21936, 21673, 21437, 21203, 21042, 20707, 20368,
- 20016, 19663, 18800, 17536, 16276, 15098, 13990, 12232, 10057,
- 8268, 6831, 5656, 4332, 3075, 2253, 1712, 1354, 1114, 955, 849,
- ],
- AcquisitionMode: 'list mode',
- ImageDecayCorrected: true,
- ImageDecayCorrectionTime: 0,
- ReconMethodName: '3D-OP-OSEM',
- ReconFilterType: 'none',
- ReconFilterSize: 0,
- AttenuationCorrection: '10-min transmission scan',
- },
- '',
- ),
- ).toHaveLength(0)
- })
- })
- it('returns expected issues for some missing sidecar fields', () => {
- expect(
- checkPetRequiredFields(
- {},
- {
- Manufacturer: 'Siemens',
- ManufacturersModelName:
- 'High-Resolution Research Tomograph (HRRT, CTI/Siemens)',
- Units: 'Bq/mL',
- BodyPart: 'Brain',
- TracerName: 'SB',
- TracerRadionuclide: 'C11',
- TracerMolecularWeight: 339.8,
- TracerMolecularWeightUnits: 'g/mol',
- ScanStart: 0,
- InjectionStart: 0,
- },
- '',
- ),
- ).toHaveLength(17)
- })
- it('returns expected issues count for missing sidecar', () => {
- expect(checkPetRequiredFields({}, {}, '')).toHaveLength(24)
- })
- it('returns expected issues count if conditional field ModeOfAdministration is present', () => {
- const fieldIssues = checkPetRequiredFields(
- {},
- { ModeOfAdministration: 'bolus-infusion' },
- '',
- )
- expect(fieldIssues).toHaveLength(28)
- expect(fieldIssues).not.toEqual(
- expect.arrayContaining([
- expect.objectContaining({
- code: 237,
- reason: expect.stringContaining(
- 'You must define ReconFilterSize for this file.',
- ),
- }),
- ]),
- )
- })
- it('returns expected issues count if conditional field ReconFilterType is present', () => {
- const checkReconFilterType = checkPetRequiredFields(
- {},
- { ReconFilterType: 'something' },
- '',
- )
- expect(checkReconFilterType).toHaveLength(26)
- expect(checkReconFilterType).toEqual(
- expect.arrayContaining([
- expect.objectContaining({
- code: 237,
- reason: expect.stringContaining(
- 'You must define ReconFilterSize for this file.',
- ),
- }),
- ]),
- )
- })
- it('returns expected issues count if reconFilterType includes ["none"]', () => {
- const checkReconFilterType = checkPetRequiredFields(
- {},
- { ReconFilterType: ['none', 'test'] },
- '',
- )
- expect(checkReconFilterType).toHaveLength(23)
- expect(checkReconFilterType).not.toEqual(
- expect.arrayContaining([
- expect.objectContaining({
- code: 237,
- reason: expect.stringContaining(
- 'You must define ReconFilterSize for this file.',
- ),
- }),
- ]),
- )
- })
-})
diff --git a/bids-validator/validators/nifti/duplicateFiles.js b/bids-validator/validators/nifti/duplicateFiles.js
deleted file mode 100644
index 0d194f23..00000000
--- a/bids-validator/validators/nifti/duplicateFiles.js
+++ /dev/null
@@ -1,36 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-
-const duplicateNiftis = (files) => {
- // check if same file with .nii and .nii.gz extensions is present
- const issues = []
- const niftiCounts = files
- .map(function (val) {
- return { count: 1, val: val.name.split('.')[0] }
- })
- .reduce(function (a, b) {
- a[b.val] = (a[b.val] || 0) + b.count
- return a
- }, {})
-
- const duplicates = Object.keys(niftiCounts).filter(function (a) {
- return niftiCounts[a] > 1
- })
-
- for (let key of duplicates) {
- const duplicateFiles = files.filter(function (a) {
- return a.name.split('.')[0] === key
- })
- for (let file of duplicateFiles) {
- issues.push(
- new Issue({
- code: 74,
- file: file,
- }),
- )
- }
- }
-
- return issues
-}
-
-export default duplicateNiftis
diff --git a/bids-validator/validators/nifti/fieldmapWithoutMagnitude.js b/bids-validator/validators/nifti/fieldmapWithoutMagnitude.js
deleted file mode 100644
index a9bda558..00000000
--- a/bids-validator/validators/nifti/fieldmapWithoutMagnitude.js
+++ /dev/null
@@ -1,27 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-
-const fieldmapWithoutMagnitude = (files) => {
- // Check for _fieldmap nifti exists without corresponding _magnitude
- const issues = []
- const niftiNames = files.map((nifti) => nifti.name)
- const fieldmaps = niftiNames.filter(
- (nifti) => nifti.indexOf('_fieldmap') > -1,
- )
- const magnitudes = niftiNames.filter(
- (nifti) => nifti.indexOf('_magnitude') > -1,
- )
- fieldmaps.map((nifti) => {
- const associatedMagnitudeFile = nifti.replace('fieldmap', 'magnitude')
- if (magnitudes.indexOf(associatedMagnitudeFile) === -1) {
- issues.push(
- new Issue({
- code: 91,
- file: files.find((niftiFile) => niftiFile.name == nifti),
- }),
- )
- }
- })
- return issues
-}
-
-export default fieldmapWithoutMagnitude
diff --git a/bids-validator/validators/nifti/index.js b/bids-validator/validators/nifti/index.js
deleted file mode 100644
index db07e1f6..00000000
--- a/bids-validator/validators/nifti/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import nifti from './nii'
-import duplicateFiles from './duplicateFiles'
-import fieldmapWithoutMagnitude from './fieldmapWithoutMagnitude'
-import phasediffWithoutMagnitude from './phasediffWithoutMagnitude'
-import validate from './validate'
-
-export const NIFTI = nifti
-
-export default {
- nifti,
- duplicateFiles,
- fieldmapWithoutMagnitude,
- phasediffWithoutMagnitude,
- validate,
-}
diff --git a/bids-validator/validators/nifti/nii.js b/bids-validator/validators/nifti/nii.js
deleted file mode 100644
index 8e96a711..00000000
--- a/bids-validator/validators/nifti/nii.js
+++ /dev/null
@@ -1,1484 +0,0 @@
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-
-/**
- * NIFTI
- *
- * Takes a NifTi header, a file path and a callback
- * as arguments. And calls back with any issues
- * it finds while validating against the BIDS
- * specification.
- */
-export default function NIFTI(
- header,
- file,
- jsonContentsDict,
- bContentsDict,
- fileList,
- events,
- callback,
-) {
- const path = file.relativePath
- const issues = []
- const potentialSidecars = utils.files.potentialLocations(
- path.replace('.gz', '').replace('.nii', '.json'),
- )
- const potentialEvents = utils.files.potentialLocations(
- path.replace('.gz', '').replace('bold.nii', 'events.tsv'),
- )
- const potentialM0Scans = path.replace('_asl.nii', '_m0scan.nii')
-
- const mergedDictionary = utils.files.generateMergedSidecarDict(
- potentialSidecars,
- jsonContentsDict,
- )
- const sidecarMessage =
- 'It can be included one of the following locations: ' +
- potentialSidecars.join(', ')
- const eventsMessage =
- 'It can be included one of the following locations: ' +
- potentialEvents.join(', ')
-
- if (path.includes('_asl.nii')) {
- if (!mergedDictionary.hasOwnProperty('MagneticFieldStrength')) {
- issues.push(
- new Issue({
- file: file,
- code: 182,
- reason:
- "You must define 'MagneticFieldStrength' for this file. It is required for perfusion quantification, to infer default relaxation values for blood/tissue." +
- sidecarMessage,
- }),
- )
- }
-
- if (!mergedDictionary.hasOwnProperty('Manufacturer')) {
- issues.push(
- new Issue({
- file: file,
- code: 164,
- reason:
- "You should define 'Manufacturer' for this file. This may reflect site differences in multi-site study (especially readout differences, but perhaps also labeling differences). " +
- sidecarMessage,
- }),
- )
- }
- if (!mergedDictionary.hasOwnProperty('ArterialSpinLabelingType')) {
- issues.push(
- new Issue({
- file: file,
- code: 133,
- reason:
- "You should define 'ArterialSpinLabelingType' for this file. If you don't provide this information CBF quantification will not be possible. " +
- sidecarMessage,
- }),
- )
- }
- if (!mergedDictionary.hasOwnProperty('MRAcquisitionType')) {
- issues.push(
- new Issue({
- file: file,
- code: 155,
- reason:
- "You should define 'MRAcquisitionType' for this file. If you don't provide this information CBF quantification will not be possible. " +
- sidecarMessage,
- }),
- )
- }
- if (
- mergedDictionary.hasOwnProperty('ArterialSpinLabelingType') &&
- mergedDictionary['ArterialSpinLabelingType'].constructor === String
- ) {
- const ArterialSpinLabelingTypeString =
- mergedDictionary['ArterialSpinLabelingType']
-
- if (ArterialSpinLabelingTypeString == 'PASL') {
- if (!mergedDictionary.hasOwnProperty('LabelingSlabThickness')) {
- issues.push(
- new Issue({
- file: file,
- code: 142,
- reason:
- "You should define 'LabelingSlabThickness' for this file. " +
- sidecarMessage,
- }),
- )
- }
- if (!mergedDictionary.hasOwnProperty('BolusCutOffFlag')) {
- issues.push(
- new Issue({
- file: file,
- code: 147,
- reason:
- "You should define 'BolusCutOffFlag' for this file. " +
- sidecarMessage,
- }),
- )
- }
- if (
- mergedDictionary.hasOwnProperty('BolusCutOffFlag') &&
- mergedDictionary['BolusCutOffFlag'].constructor === Boolean
- ) {
- const BolusCutOffFlagBoolean = mergedDictionary['BolusCutOffFlag']
-
- if (
- BolusCutOffFlagBoolean === true &&
- !mergedDictionary.hasOwnProperty('BolusCutOffDelayTime')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 149,
- reason:
- "You should define 'BolusCutOffDelayTime' for this file." +
- sidecarMessage,
- }),
- )
- } else if (
- BolusCutOffFlagBoolean === true &&
- mergedDictionary.hasOwnProperty('BolusCutOffDelayTime') &&
- mergedDictionary['BolusCutOffDelayTime'].constructor === Number &&
- mergedDictionary['BolusCutOffDelayTime'] > 10
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 186,
- reason:
- "'BolusCutOffDelayTime' is greater than 10, are you sure it's expressed in seconds? ",
- }),
- )
- } else if (
- BolusCutOffFlagBoolean === true &&
- mergedDictionary.hasOwnProperty('BolusCutOffDelayTime') &&
- mergedDictionary['BolusCutOffDelayTime'].constructor === Array
- ) {
- let BolusCutOffDelayTime = mergedDictionary['BolusCutOffDelayTime']
- const BolusCutOffDelayTimeWarning = BolusCutOffDelayTime.filter(
- (x) => x > 10,
- )
- if (BolusCutOffDelayTimeWarning.length > 0) {
- issues.push(
- new Issue({
- file: file,
- code: 186,
- reason:
- "Some values of the 'BolusCutOffDelayTime' array you defined are greater than 10, are you sure they are expressed in seconds? ",
- }),
- )
- }
- }
-
- if (
- mergedDictionary.hasOwnProperty('BolusCutOffDelayTime') &&
- mergedDictionary['BolusCutOffDelayTime'].constructor === Array
- ) {
- let BolusCutOffDelayTime = mergedDictionary['BolusCutOffDelayTime']
- const MonotonicallyIncreasingBolusCutOffDelayTime =
- isMonotonicIncreasingArray(BolusCutOffDelayTime)
- if (!MonotonicallyIncreasingBolusCutOffDelayTime) {
- issues.push(
- new Issue({
- file: file,
- code: 192,
- reason:
- "'BolusCutOffDelayTime' should be monotonically increasing.",
- }),
- )
- }
- }
-
- if (
- BolusCutOffFlagBoolean === true &&
- !mergedDictionary.hasOwnProperty('BolusCutOffTechnique')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 150,
- reason:
- "You should define 'BolusCutOffTechnique' for this file." +
- sidecarMessage,
- }),
- )
- }
- }
-
- if (
- mergedDictionary.hasOwnProperty('CASLType') ||
- mergedDictionary.hasOwnProperty('PCASLType') ||
- mergedDictionary.hasOwnProperty('LabelingPulseAverageGradient') ||
- mergedDictionary.hasOwnProperty('LabelingPulseMaximumGradient') ||
- mergedDictionary.hasOwnProperty('LabelingPulseAverageB1') ||
- mergedDictionary.hasOwnProperty('LabelingPulseDuration') ||
- mergedDictionary.hasOwnProperty('LabelingPulseFlipAngle') ||
- mergedDictionary.hasOwnProperty('LabelingPulseInterval') ||
- mergedDictionary.hasOwnProperty('LabelingDuration')
- ) {
- var CASLTypeString = ''
- var PCASLTypeString = ''
- var LabelingPulseAverageGradientString = ''
- var LabelingPulseMaximumGradientString = ''
- var LabelingPulseAverageB1String = ''
- var LabelingPulseDurationString = ''
- var LabelingPulseFlipAngleString = ''
- var LabelingPulseIntervalString = ''
- var LabelingDurationString = ''
-
- if (mergedDictionary.hasOwnProperty('CASLType'))
- CASLTypeString = "'CASLType', "
- if (mergedDictionary.hasOwnProperty('PCASLType'))
- PCASLTypeString = "'PCASLType', "
- if (mergedDictionary.hasOwnProperty('LabelingPulseAverageGradient'))
- LabelingPulseAverageGradientString =
- "'LabelingPulseAverageGradient', "
- if (mergedDictionary.hasOwnProperty('LabelingPulseMaximumGradient'))
- LabelingPulseMaximumGradientString =
- "'LabelingPulseMaximumGradient', "
- if (mergedDictionary.hasOwnProperty('LabelingPulseAverageB1'))
- LabelingPulseAverageB1String = "'LabelingPulseAverageB1', "
- if (mergedDictionary.hasOwnProperty('LabelingPulseDuration'))
- LabelingPulseDurationString = "'LabelingPulseDuration', "
- if (mergedDictionary.hasOwnProperty('LabelingPulseFlipAngle'))
- LabelingPulseFlipAngleString = "'LabelingPulseFlipAngle', "
- if (mergedDictionary.hasOwnProperty('LabelingPulseInterval'))
- LabelingPulseIntervalString = "'LabelingPulseInterval', "
- if (mergedDictionary.hasOwnProperty('LabelingDuration'))
- LabelingDurationString = "'LabelingDuration', "
-
- issues.push(
- new Issue({
- file: file,
- code: 190,
- reason:
- "You defined one of the not allowed fields in case PASL 'ArterialSpinLabelingType'. Please verify " +
- CASLTypeString +
- PCASLTypeString +
- LabelingPulseAverageGradientString +
- LabelingPulseMaximumGradientString +
- LabelingPulseAverageB1String +
- LabelingPulseDurationString +
- LabelingPulseFlipAngleString +
- LabelingPulseIntervalString +
- LabelingDurationString +
- ' and change accordingly.',
- }),
- )
- }
- }
-
- if (
- ArterialSpinLabelingTypeString == 'CASL' ||
- ArterialSpinLabelingTypeString == 'PCASL'
- ) {
- if (
- ArterialSpinLabelingTypeString == 'CASL' &&
- mergedDictionary.hasOwnProperty('PCASLType')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 191,
- reason:
- "You defined the 'PCASLType' with a CASL 'LabellingType'. This is not allowed.",
- }),
- )
- }
- if (
- ArterialSpinLabelingTypeString == 'PCASL' &&
- mergedDictionary.hasOwnProperty('CASLType')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 191,
- reason:
- "You defined the 'CASLType' with a PCASL 'LabellingType'. This is not allowed.",
- }),
- )
- }
- if (
- mergedDictionary.hasOwnProperty('PASLType') ||
- mergedDictionary.hasOwnProperty('LabelingSlabThickness') ||
- mergedDictionary.hasOwnProperty('BolusCutOffFlag') ||
- mergedDictionary.hasOwnProperty('BolusCutOffTimingSequence') ||
- mergedDictionary.hasOwnProperty('BolusCutOffDelayTime') ||
- mergedDictionary.hasOwnProperty('BolusCutOffTechnique')
- ) {
- var PASLTypeString = ''
- var LabelingSlabThicknessString = ''
- var BolusCutOffFlagString = ''
- var BolusCutOffTimingSequenceString = ''
- var BolusCutOffDelayTimeString = ''
- var BolusCutOffTechniqueString = ''
-
- if (mergedDictionary.hasOwnProperty('PASLType'))
- PASLTypeString = " 'PASLType', "
- if (mergedDictionary.hasOwnProperty('LabelingSlabThickness'))
- LabelingSlabThicknessString = " 'LabelingSlabThickness', "
- if (mergedDictionary.hasOwnProperty('BolusCutOffFlag'))
- BolusCutOffFlagString = " 'BolusCutOffFlag', "
- if (mergedDictionary.hasOwnProperty('BolusCutOffTimingSequence'))
- BolusCutOffTimingSequenceString = " 'BolusCutOffTimingSequence', "
- if (mergedDictionary.hasOwnProperty('BolusCutOffDelayTime'))
- BolusCutOffDelayTimeString = " 'BolusCutOffDelayTime', "
- if (mergedDictionary.hasOwnProperty('BolusCutOffTechnique'))
- BolusCutOffTechniqueString = " 'BolusCutOffTechnique', "
-
- issues.push(
- new Issue({
- file: file,
- code: 189,
- reason:
- "You defined one of the not allowed fields in case of CASL or PCASL 'ArterialSpinLabelingType'. Please verify " +
- PASLTypeString +
- LabelingSlabThicknessString +
- BolusCutOffFlagString +
- BolusCutOffTimingSequenceString +
- BolusCutOffDelayTimeString +
- BolusCutOffTechniqueString +
- ' and change accordingly.',
- }),
- )
- }
-
- if (!mergedDictionary.hasOwnProperty('LabelingDuration')) {
- issues.push(
- new Issue({
- file: file,
- code: 134,
- reason:
- "You should define 'LabelingDuration' for this file. If you don't provide this information CBF quantification will not be possible. " +
- 'LabelingDuration is the total duration, in seconds, of the labeling pulse train. ' +
- sidecarMessage,
- }),
- )
- } else {
- if (
- header &&
- mergedDictionary['LabelingDuration'].constructor === Array
- ) {
- let LabelingDuration = mergedDictionary['LabelingDuration']
- const LabelingDurationLength = LabelingDuration.length
- const kDim = header.dim[4]
- if (LabelingDurationLength !== kDim) {
- issues.push(
- new Issue({
- file: file,
- code: 157,
- reason:
- "'LabelingDuration' for this file does not match the 4th dimension of the NIFTI header. ",
- }),
- )
- }
- const LabelingDurationWarning = LabelingDuration.filter(
- (x) => x > 10,
- )
- if (LabelingDurationWarning.length > 0) {
- issues.push(
- new Issue({
- file: file,
- code: 187,
- reason:
- "In the 'LabelingDuration' array some values are greater than 10, are you sure they are expressed in seconds? ",
- }),
- )
- }
- }
- if (
- mergedDictionary['LabelingDuration'].constructor === Number &&
- mergedDictionary['LabelingDuration'] > 10
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 187,
- reason:
- "'LabelingDuration' is greater than 10, are you sure it's expressed in seconds?",
- }),
- )
- }
- }
- }
- }
-
- if (!mergedDictionary.hasOwnProperty('PostLabelingDelay')) {
- issues.push(
- new Issue({
- file: file,
- code: 135,
- reason:
- "You should define 'PostLabelingDelay' for this file. If you don't provide this information CBF quantification will not be possible. " +
- sidecarMessage,
- }),
- )
- } else {
- if (
- mergedDictionary['PostLabelingDelay'].constructor === Number &&
- mergedDictionary['PostLabelingDelay'] > 10
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 184,
- reason:
- "'PostLabelingDelay' is greater than 10, are you sure it's expressed in seconds?",
- }),
- )
- }
-
- if (
- header &&
- mergedDictionary['PostLabelingDelay'].constructor === Array
- ) {
- let PostLabelingDelay = mergedDictionary['PostLabelingDelay']
- const PostLabelingDelayLength = PostLabelingDelay.length
- const kDim = header.dim[4]
- if (PostLabelingDelayLength !== kDim) {
- issues.push(
- new Issue({
- file: file,
- code: 173,
- reason:
- "'PostLabelingDelay' for this file does not match the 4th dimension of the NIFTI header. ",
- }),
- )
- }
- const PostLabelingDelayWarning = PostLabelingDelay.filter((x) => x > 10)
- if (PostLabelingDelayWarning.length > 0) {
- issues.push(
- new Issue({
- file: file,
- code: 184,
- reason:
- "In the 'PostLabelingDelay' array some values are greater than 10, are you sure they are expressed in seconds? ",
- }),
- )
- }
- }
- }
-
- if (!mergedDictionary.hasOwnProperty('BackgroundSuppression')) {
- issues.push(
- new Issue({
- file: file,
- code: 136,
- reason:
- "You should define 'BackgroundSuppression' for this file. If you don't provide this information CBF quantification will be biased. " +
- sidecarMessage,
- }),
- )
- }
- if (mergedDictionary.hasOwnProperty('BackgroundSuppression')) {
- if (mergedDictionary['BackgroundSuppression'] == true) {
- if (
- !mergedDictionary.hasOwnProperty('BackgroundSuppressionPulseTime')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 144,
- reason:
- "You should define 'BackgroundSuppressionPulseTime' for this file. " +
- sidecarMessage,
- }),
- )
- }
- if (
- !mergedDictionary.hasOwnProperty('BackgroundSuppressionNumberPulses')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 179,
- reason:
- "You should define 'BackgroundSuppressionNumberPulses' for this file. " +
- sidecarMessage,
- }),
- )
- }
- }
- if (
- mergedDictionary.hasOwnProperty('BackgroundSuppressionNumberPulses') &&
- mergedDictionary.hasOwnProperty('BackgroundSuppressionPulseTime')
- ) {
- var BackgroundSuppressionNumberPulses =
- mergedDictionary['BackgroundSuppressionNumberPulses']
- var BackgroundSuppressionPulseTime =
- mergedDictionary['BackgroundSuppressionPulseTime']
- const kDim = BackgroundSuppressionPulseTime.length
- if (BackgroundSuppressionNumberPulses !== kDim) {
- issues.push(
- new Issue({
- file: file,
- code: 180,
- reason:
- 'The BackgroundSuppressionNumberPulses is ' +
- BackgroundSuppressionNumberPulses +
- ' however the array BackgroundSuppressionPulseTime array has ' +
- kDim +
- ' values. Please check the discrepancy between this two values that must coincides.' +
- sidecarMessage,
- }),
- )
- }
- }
- }
- if (!mergedDictionary.hasOwnProperty('VascularCrushing')) {
- issues.push(
- new Issue({
- file: file,
- code: 137,
- reason:
- "You should define 'VascularCrushing' for this file. It indicates if an ASL crusher method has been used. If you don't provide this information CBF quantification could be biased. " +
- sidecarMessage,
- }),
- )
- }
- if (
- mergedDictionary.hasOwnProperty('VascularCrushing') &&
- mergedDictionary['VascularCrushing'].constructor === Boolean &&
- mergedDictionary['VascularCrushing'] &&
- !mergedDictionary.hasOwnProperty['VascularCrushingVENC']
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 145,
- reason:
- "You should define 'VascularCrushingVENC' for this file. " +
- sidecarMessage,
- }),
- )
- }
- if (!mergedDictionary.hasOwnProperty('PulseSequenceDetails')) {
- issues.push(
- new Issue({
- file: file,
- code: 138,
- reason:
- "You should define 'PulseSequenceDetails' for this file including information beyond pulse sequence type that identifies the specific pulse sequence used. " +
- sidecarMessage,
- }),
- )
- }
- if (!mergedDictionary.hasOwnProperty('M0Type')) {
- issues.push(
- new Issue({
- file: file,
- code: 153,
- reason:
- "You should define 'M0Type' for this file. " + sidecarMessage,
- }),
- )
- } else if (
- mergedDictionary.hasOwnProperty('M0Type') &&
- mergedDictionary['M0Type'].constructor === String
- ) {
- const M0String = mergedDictionary['M0Type']
- switch (M0String) {
- case 'Separate':
- // check if an m0 scan file is available and if it is valid
-
- if (
- !checkIfSeparateM0scanExists(
- potentialM0Scans,
- fileList,
- issues,
- file,
- )
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 202,
- reason:
- "'M0Type' property of this asl ('" +
- file.relativePath +
- "') does not point to an existing file('" +
- potentialM0Scans +
- "'). Please mind that this value should not include subject level directory " +
- "('/" +
- file.relativePath.split('/')[1] +
- "/').",
- evidence: potentialM0Scans,
- }),
- )
- }
-
- checkIfValidFiletype(potentialM0Scans, issues, file)
- break
- case 'Included':
- // Here we need to check if the tsv includes m0scan -> move this to validateTsvColumns
- break
- case 'Estimate':
- // Check if there is an estimated value in the json file
- if (!mergedDictionary.hasOwnProperty('M0Estimate')) {
- issues.push(
- new Issue({
- file: file,
- code: 195,
- reason:
- "You set the 'M0Type' to 'Estimate', therefore you should also define 'M0Estimate' for this file. " +
- sidecarMessage,
- }),
- )
- }
- break
- case 'Absent':
- if (
- checkIfSeparateM0scanExists(
- potentialM0Scans,
- fileList,
- issues,
- file,
- ) ||
- mergedDictionary.hasOwnProperty('M0Estimate')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 198,
- reason:
- "You set the 'M0Type' to 'Absent', you should avoid to define 'M0Estimate' or to include an [_m0scan.nii.gz] for this file. " +
- sidecarMessage,
- }),
- )
- }
- break
- }
- }
-
- if (!mergedDictionary.hasOwnProperty('FlipAngle')) {
- if (
- mergedDictionary.hasOwnProperty('LookLocker') &&
- mergedDictionary['LookLocker']
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 166,
- reason:
- "In case of a LookLocker acquisition you must define 'FlipAngle' for this file. " +
- sidecarMessage,
- }),
- )
- } else {
- issues.push(
- new Issue({
- file: file,
- code: 167,
- reason:
- "You should define 'FlipAngle' for this file. " + sidecarMessage,
- }),
- )
- }
- } else {
- if (header && mergedDictionary['FlipAngle'].constructor === Array) {
- let FlipAngle = mergedDictionary['FlipAngle']
- const FlipAngleLength = FlipAngle.length
- const kDim = header.dim[4]
- if (FlipAngleLength !== kDim) {
- issues.push(
- new Issue({
- file: file,
- code: 168,
- reason:
- "'FlipAngle' for this file do not match the 4th dimension of the NIFTI header. " +
- sidecarMessage,
- }),
- )
- }
- }
- }
- }
- if (path.includes('_asl.nii') || path.includes('_m0scan.nii')) {
- if (!mergedDictionary.hasOwnProperty('AcquisitionVoxelSize')) {
- issues.push(
- new Issue({
- file: file,
- code: 143,
- reason:
- "You should define 'AcquisitionVoxelSize' for this file. " +
- sidecarMessage,
- }),
- )
- } else {
- var AcquisitionVoxelSize = mergedDictionary['AcquisitionVoxelSize']
- if (AcquisitionVoxelSize.length != 3) {
- issues.push(
- new Issue({
- file: file,
- code: 156,
- reason:
- "The 'AcquisitionVoxelSize' field length is not 3. AcquisitionVoxelSize must be defined as a vector of length 3. " +
- sidecarMessage,
- }),
- )
- }
- }
- if (!mergedDictionary.hasOwnProperty('RepetitionTimePreparation')) {
- issues.push(
- new Issue({
- file: file,
- code: 200,
- reason:
- "'RepetitionTimePreparation' must be defined for this file. " +
- sidecarMessage,
- }),
- )
- } else if (
- header &&
- mergedDictionary.hasOwnProperty('RepetitionTimePreparation') &&
- mergedDictionary['RepetitionTimePreparation'].constructor === Array
- ) {
- const RepetitionTimePreparationArray =
- mergedDictionary['RepetitionTimePreparation']
- const kDim = header.dim[4]
- if (RepetitionTimePreparationArray.length !== kDim) {
- issues.push(
- new Issue({
- file: file,
- code: 201,
- evidence:
- 'RepetitionTimePreparation array is of length ' +
- RepetitionTimePreparationArray.length +
- ' for this file and does not match the 4th dimension of the NIFTI header.' +
- sidecarMessage,
- }),
- )
- }
- }
- }
-
- if (path.includes('_dwi.nii')) {
- const potentialBvecs = utils.files.potentialLocations(
- path.replace('.gz', '').replace('.nii', '.bvec'),
- )
- const potentialBvals = utils.files.potentialLocations(
- path.replace('.gz', '').replace('.nii', '.bval'),
- )
- const bvec = utils.files.getBFileContent(potentialBvecs, bContentsDict)
- const bval = utils.files.getBFileContent(potentialBvals, bContentsDict)
- const bvecMessage =
- 'It can be included in one of the following locations: ' +
- potentialBvecs.join(', ')
- const bvalMessage =
- 'It can be included in one of the following locations: ' +
- potentialBvals.join(', ')
-
- if (!bvec) {
- issues.push(
- new Issue({
- code: 32,
- file: file,
- reason:
- '_dwi scans should have a corresponding .bvec file. ' + bvecMessage,
- }),
- )
- }
- if (!bval) {
- issues.push(
- new Issue({
- code: 33,
- file: file,
- reason:
- '_dwi scans should have a corresponding .bval file. ' + bvalMessage,
- }),
- )
- }
-
- if (bval && bvec && header) {
- /*
- bvec length ==3 is checked at bvec.spec.js hence following if loop does not have else block
- */
- if (bvec.replace(/^\s+|\s+$/g, '').split('\n').length === 3) {
- const volumes = [
- bvec
- .split('\n')[0]
- .replace(/^\s+|\s+$/g, '')
- .split(' ').length, // bvec row 1 length
- bvec
- .split('\n')[1]
- .replace(/^\s+|\s+$/g, '')
- .split(' ').length, // bvec row 2 length
- bvec
- .split('\n')[2]
- .replace(/^\s+|\s+$/g, '')
- .split(' ').length, // bvec row 3 length
- bval.replace(/^\s+|\s+$/g, '').split(' ').length, // bval row length
- header.dim[4], // header 4th dimension
- ]
-
- if (
- !volumes.every(function (v) {
- return v === volumes[0]
- })
- ) {
- issues.push(
- new Issue({
- code: 29,
- file: file,
- }),
- )
- }
- }
- }
- }
-
- if (missingEvents(path, potentialEvents, events)) {
- issues.push(
- new Issue({
- code: 25,
- file: file,
- reason:
- 'Task scans should have a corresponding events.tsv file. ' +
- eventsMessage,
- }),
- )
- }
-
- let repetitionTime, repetitionUnit
- if (header) {
- // Define repetition time from header and coerce to seconds.
- repetitionTime = header.pixdim[4]
- repetitionUnit =
- header.xyzt_units && header.xyzt_units[3] ? header.xyzt_units[3] : null
- if (repetitionUnit === 'ms') {
- repetitionTime = repetitionTime / 1000
- repetitionUnit = 's'
- }
- if (repetitionUnit === 'us') {
- repetitionTime = repetitionTime / 1000000
- repetitionUnit = 's'
- }
- }
-
- if (!mergedDictionary.invalid) {
- // task scan checks
- if (
- path.includes('_task-') &&
- !path.includes('_defacemask.nii') &&
- !path.includes('_sbref.nii')
- ) {
- if (!mergedDictionary.hasOwnProperty('TaskName')) {
- issues.push(
- new Issue({
- file: file,
- code: 50,
- reason:
- "You have to define 'TaskName' for this file. " + sidecarMessage,
- }),
- )
- }
- }
-
- // field map checks
- if (
- path.includes('_bold.nii') ||
- path.includes('_sbref.nii') ||
- path.includes('_dwi.nii') ||
- path.includes('_asl.nii') ||
- path.includes('_m0scan.nii')
- ) {
- if (!mergedDictionary.hasOwnProperty('EchoTime')) {
- if (path.includes('_asl.nii') || path.includes('_m0scan.nii')) {
- issues.push(
- new Issue({
- file: file,
- code: 193,
- reason:
- "You must define 'EchoTime' for this file. If you don't provide this information a correct CBF quantification will not be possible." +
- sidecarMessage,
- }),
- )
- } else {
- issues.push(
- new Issue({
- file: file,
- code: 6,
- reason:
- "You should define 'EchoTime' for this file. If you don't provide this information field map correction will not be possible. " +
- sidecarMessage,
- }),
- )
- }
- } else {
- if (
- header &&
- mergedDictionary.hasOwnProperty('EchoTime') &&
- mergedDictionary['EchoTime'].constructor === Array
- ) {
- const EchoTimeArray = mergedDictionary['EchoTime']
- const kDim = header.dim[3]
- if (EchoTimeArray.length !== kDim) {
- issues.push(
- new Issue({
- file: file,
- code: 197,
- evidence:
- 'EchoTime array is of length ' +
- EchoTimeArray.length +
- " and the value of the 'k' dimension is " +
- kDim +
- ' for the corresponding nifti header.',
- }),
- )
- }
- }
- }
- if (!mergedDictionary.hasOwnProperty('PhaseEncodingDirection')) {
- issues.push(
- new Issue({
- file: file,
- code: 7,
- reason:
- "You should define 'PhaseEncodingDirection' for this file. If you don't provide this information field map correction will not be possible. " +
- sidecarMessage,
- }),
- )
- }
- if (!mergedDictionary.hasOwnProperty('EffectiveEchoSpacing')) {
- issues.push(
- new Issue({
- file: file,
- code: 8,
- reason:
- "You should define 'EffectiveEchoSpacing' for this file. If you don't provide this information field map correction will not be possible. " +
- sidecarMessage,
- }),
- )
- }
- }
- if (path.includes('_dwi.nii')) {
- if (!mergedDictionary.hasOwnProperty('TotalReadoutTime')) {
- issues.push(
- new Issue({
- file: file,
- code: 9,
- reason:
- "You should define 'TotalReadoutTime' for this file. If you don't provide this information field map correction using TOPUP might not be possible. " +
- sidecarMessage,
- }),
- )
- }
- }
- if (path.includes('_bold.nii') || path.includes('_asl.nii')) {
- // check that slice timing is defined
- if (!mergedDictionary.hasOwnProperty('SliceTiming')) {
- // case of ASL with 3D sequence - slice timing is not necessary
- if (
- !(
- mergedDictionary.hasOwnProperty('MRAcquisitionType') &&
- mergedDictionary.MRAcquisitionType === '3D' &&
- path.includes('_asl.nii')
- )
- ) {
- if (
- mergedDictionary.hasOwnProperty('MRAcquisitionType') &&
- mergedDictionary.MRAcquisitionType === '2D' &&
- path.includes('_asl.nii')
- ) {
- // case of ASL with 2D sequence - slice timing is required
- issues.push(
- new Issue({
- file: file,
- code: 183,
- reason:
- "You should define 'SliceTiming' for this file. " +
- "If you don't provide this information slice time correction will not be possible. " +
- sidecarMessage,
- }),
- )
- } else {
- issues.push(
- new Issue({
- file: file,
- code: 13,
- reason:
- "You should define 'SliceTiming' for this file. " +
- "If you don't provide this information slice time correction will not be possible. " +
- sidecarMessage,
- }),
- )
- }
- }
- }
- // check that slice timing has the proper length
- if (
- header &&
- mergedDictionary.hasOwnProperty('SliceTiming') &&
- mergedDictionary['SliceTiming'].constructor === Array
- ) {
- const sliceTimingArray = mergedDictionary['SliceTiming']
- const kDim = header.dim[3]
- if (sliceTimingArray.length !== kDim) {
- issues.push(
- new Issue({
- file: file,
- code: 87,
- evidence:
- 'SliceTiming array is of length ' +
- sliceTimingArray.length +
- " and the value of the 'k' dimension is " +
- kDim +
- ' for the corresponding nifti header.',
- }),
- )
- }
- }
- }
- // we don't need slice timing or repetition time for SBref
- if (path.includes('_bold.nii')) {
- if (
- !mergedDictionary.hasOwnProperty('RepetitionTime') &&
- !mergedDictionary.hasOwnProperty('VolumeTiming')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 10,
- reason:
- "You have to define 'RepetitionTime' or 'VolumeTiming' for this file. " +
- sidecarMessage,
- }),
- )
- } else if (
- header &&
- mergedDictionary.RepetitionTime &&
- mergedDictionary.EffectiveEchoSpacing &&
- mergedDictionary.PhaseEncodingDirection &&
- !mergedDictionary.hasOwnProperty('VolumeTiming')
- ) {
- var axes = { i: 1, j: 2, k: 3 }
- if (
- mergedDictionary.EffectiveEchoSpacing *
- header.dim[axes[mergedDictionary.PhaseEncodingDirection[0]]] >
- mergedDictionary.RepetitionTime
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 76,
- reason:
- "Abnormally high value of 'EffectiveEchoSpacing' (" +
- mergedDictionary.EffectiveEchoSpacing +
- ' seconds).',
- }),
- )
- }
- } else if (
- mergedDictionary.hasOwnProperty('VolumeTiming') &&
- mergedDictionary.hasOwnProperty('RepetitionTime')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 178,
- reason:
- "'VolumeTiming' and 'RepetitionTime' for this file are mutually exclusive." +
- sidecarMessage,
- }),
- )
- } else if (
- mergedDictionary.hasOwnProperty('VolumeTiming') &&
- !mergedDictionary.hasOwnProperty('RepetitionTime')
- ) {
- if (
- mergedDictionary.hasOwnProperty('VolumeTiming') &&
- !mergedDictionary.hasOwnProperty('SliceTiming') &&
- !mergedDictionary.hasOwnProperty('AcquisitionDuration')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 171,
- }),
- )
- }
- let VolumeTiming = mergedDictionary['VolumeTiming']
- const MonotonicallyIncreasingVolumeTiming =
- isMonotonicIncreasingArray(VolumeTiming)
- if (!MonotonicallyIncreasingVolumeTiming) {
- issues.push(
- new Issue({
- file: file,
- code: 188,
- reason: "'VolumeTiming' should be monotonically increasing.",
- }),
- )
- }
- }
- if (typeof repetitionTime === 'undefined' && header) {
- issues.push(
- new Issue({
- file: file,
- code: 75,
- }),
- )
- } else if (mergedDictionary.RepetitionTime && header) {
- if (repetitionUnit !== 's') {
- issues.push(
- new Issue({
- file: file,
- code: 11,
- }),
- )
- }
-
- const niftiTR = Number(repetitionTime).toFixed(3)
- const jsonTR = Number(mergedDictionary.RepetitionTime).toFixed(3)
- if (niftiTR !== jsonTR) {
- issues.push(
- new Issue({
- file: file,
- code: 12,
- reason:
- 'Repetition time defined in the JSON (' +
- jsonTR +
- ' sec.) did not match the one defined in the NIFTI header (' +
- niftiTR +
- ' sec.)',
- }),
- )
- }
- }
-
- // check that slice timing values are greater than repetition time
- if (
- mergedDictionary.hasOwnProperty('SliceTiming') &&
- mergedDictionary['SliceTiming'].constructor === Array
- ) {
- const SliceTimingArray = mergedDictionary['SliceTiming']
- const valuesGreaterThanRepetitionTime =
- sliceTimingGreaterThanRepetitionTime(
- SliceTimingArray,
- mergedDictionary['RepetitionTime'],
- )
- if (valuesGreaterThanRepetitionTime.length > 0) {
- issues.push(
- new Issue({
- file: file,
- code: 66,
- evidence: valuesGreaterThanRepetitionTime.join(', '),
- }),
- )
- }
- }
- } else if (path.includes('_phasediff.nii')) {
- if (
- !mergedDictionary.hasOwnProperty('EchoTime1') ||
- !mergedDictionary.hasOwnProperty('EchoTime2')
- ) {
- issues.push(
- new Issue({
- file: file,
- code: 15,
- reason:
- "You have to define 'EchoTime1' and 'EchoTime2' for this file. " +
- sidecarMessage,
- }),
- )
- }
- if (
- mergedDictionary.hasOwnProperty('EchoTime1') &&
- mergedDictionary.hasOwnProperty('EchoTime2')
- ) {
- const echoTimeDifference =
- mergedDictionary['EchoTime2'] - mergedDictionary['EchoTime1']
- if (echoTimeDifference < 0.0001 || echoTimeDifference > 0.01) {
- issues.push(
- new Issue({
- file: file,
- code: 83,
- reason:
- 'The value of (EchoTime2 - EchoTime1) should be within the range of 0.0001 - 0.01. ' +
- sidecarMessage,
- }),
- )
- }
- }
- } else if (path.includes('_phase1.nii') || path.includes('_phase2.nii')) {
- if (!mergedDictionary.hasOwnProperty('EchoTime')) {
- issues.push(
- new Issue({
- file: file,
- code: 16,
- reason:
- "You have to define 'EchoTime' for this file. " + sidecarMessage,
- }),
- )
- }
- } else if (path.includes('_fieldmap.nii')) {
- if (!mergedDictionary.hasOwnProperty('Units')) {
- issues.push(
- new Issue({
- file: file,
- code: 17,
- reason:
- "You have to define 'Units' for this file. " + sidecarMessage,
- }),
- )
- }
- } else if (path.includes('_epi.nii')) {
- if (!mergedDictionary.hasOwnProperty('PhaseEncodingDirection')) {
- issues.push(
- new Issue({
- file: file,
- code: 18,
- reason:
- "You have to define 'PhaseEncodingDirection' for this file. " +
- sidecarMessage,
- }),
- )
- }
- if (!mergedDictionary.hasOwnProperty('TotalReadoutTime')) {
- issues.push(
- new Issue({
- file: file,
- code: 19,
- reason:
- "You have to define 'TotalReadoutTime' for this file. " +
- sidecarMessage,
- }),
- )
- }
- }
-
- if (
- (path.includes('_m0scan.nii') ||
- utils.type.file.isFieldMapMainNii(path)) &&
- mergedDictionary.hasOwnProperty('IntendedFor')
- ) {
- const intendedFor =
- typeof mergedDictionary['IntendedFor'] == 'string'
- ? [mergedDictionary['IntendedFor']]
- : mergedDictionary['IntendedFor']
-
- for (let key = 0; key < intendedFor.length; key++) {
- const intendedForFile = intendedFor[key]
- // Only check for presence of IntendedFor files if not a BIDS-URI
- // https://github.com/bids-standard/bids-validator/issues/1393
- if (!intendedForFile.startsWith('bids:')) {
- checkIfIntendedExists(intendedForFile, fileList, issues, file)
- checkIfValidFiletype(intendedForFile, issues, file)
- }
- }
- }
- }
-
- if (path.includes('_pet.nii')) {
- issues.push(
- ...checkPetRequiredFields(file, mergedDictionary, sidecarMessage),
- )
- }
-
- callback(issues)
-}
-
-export function checkPetRequiredFields(file, mergedDictionary, sidecarMessage) {
- const issues = []
- const requiredFields = [
- 'TracerName',
- 'TracerRadionuclide',
- 'InjectedRadioactivity',
- 'InjectedRadioactivityUnits',
- 'InjectedMass',
- 'InjectedMassUnits',
- 'SpecificRadioactivity',
- 'SpecificRadioactivityUnits',
- 'ModeOfAdministration',
- 'TimeZero',
- 'ScanStart',
- 'InjectionStart',
- 'FrameTimesStart',
- 'FrameDuration',
- 'AcquisitionMode',
- 'ImageDecayCorrected',
- 'ImageDecayCorrectionTime',
- 'ReconMethodName',
- 'ReconMethodParameterLabels',
- 'ReconFilterType',
- 'AttenuationCorrection',
- 'Manufacturer',
- 'ManufacturersModelName',
- 'Units',
- ]
- if (
- mergedDictionary.hasOwnProperty('ModeOfAdministration') &&
- mergedDictionary['ModeOfAdministration'] === 'bolus-infusion'
- ) {
- requiredFields.push(
- 'InfusionRadioactivity',
- 'InfusionStart',
- 'InfusionSpeed',
- 'InfusionSpeedUnits',
- 'InjectedVolume',
- )
- }
- if (mergedDictionary.hasOwnProperty('ReconFilterType')) {
- if (
- typeof mergedDictionary['ReconFilterType'] === 'string' &&
- mergedDictionary['ReconFilterType'] !== 'none'
- ) {
- requiredFields.push(
- 'ReconMethodParameterUnits',
- 'ReconMethodParameterValues',
- 'ReconFilterSize',
- )
- } else if (
- typeof mergedDictionary['ReconFilterType'] !== 'string' &&
- Array.isArray(mergedDictionary['ReconFilterType']) &&
- mergedDictionary['ReconFilterType'].every(
- (filterType) => filterType !== 'none',
- )
- ) {
- requiredFields.push(
- 'ReconMethodParameterUnits',
- 'ReconMethodParameterValues',
- 'ReconFilterSize',
- )
- }
- }
- for (const field of requiredFields) {
- if (!mergedDictionary.hasOwnProperty(field)) {
- issues.push(
- new Issue({
- file: file,
- code: 237,
- reason: `You must define ${field} for this file. ${sidecarMessage}`,
- }),
- )
- }
- }
- return issues
-}
-
-function missingEvents(path, potentialEvents, events) {
- let hasEvent = false,
- isRest = false
-
- // check if is a rest file
- const pathParts = path.split('/')
- const filenameParts = pathParts[pathParts.length - 1].split('_')
- for (let i = 0; i < filenameParts.length; i++) {
- const part = filenameParts[i]
- if (part.toLowerCase().indexOf('task') === 0 && part.indexOf('rest') > -1) {
- isRest = true
- }
- }
-
- // check for event file
- for (let j = 0; j < potentialEvents.length; j++) {
- const event = potentialEvents[j]
- if (events.find((e) => e.path == event)) {
- hasEvent = true
- }
- }
-
- return !isRest && path.includes('_bold.nii') && !hasEvent
-}
-
-/**
- * Function to check each SliceTime from SliceTiming Array
- *
- */
-
-function sliceTimingGreaterThanRepetitionTime(array, repetitionTime) {
- const invalid_timesArray = []
- for (let t = 0; t < array.length; t++) {
- if (array[t] > repetitionTime) {
- invalid_timesArray.push(array[t])
- }
- }
- return invalid_timesArray
-}
-
-function checkIfIntendedExists(intendedForFile, fileList, issues, file) {
- const intendedForFileFull =
- '/' +
- (intendedForFile.startsWith('bids::')
- ? intendedForFile.split('::')[1]
- : file.relativePath.split('/')[1] + '/' + intendedForFile)
- const onTheList = Object.values(fileList).some(
- (f) => f.relativePath === intendedForFileFull,
- )
- if (!onTheList) {
- issues.push(
- new Issue({
- file: file,
- code: 37,
- reason:
- "'IntendedFor' property of this fieldmap ('" +
- file.relativePath +
- "') does not point to an existing file('" +
- intendedForFile +
- "'). Please mind that this value should not include subject level directory " +
- "('/" +
- file.relativePath.split('/')[1] +
- "/').",
- evidence: intendedForFile,
- }),
- )
- }
-}
-
-/**
- * Functions to check if m0scan is present in various sub-types, be aware of the '-dir' pattern that could be subject to changes in future versions
- *
- */
-
-function checkIfSeparateM0scanExists(m0scanFile, fileList) {
- let rule = m0scanFile.replace('_m0scan.nii', '').replace('.gz', '')
- let m0scanFile_nii = m0scanFile.replace('.nii.gz', '.nii')
- let m0scanFile_niigz = m0scanFile
-
- let onTheList = false
- for (let key2 in fileList) {
- if (key2) {
- const filePath = fileList[key2].relativePath
- if (
- matchRule_m0scan(filePath, rule + '_dir-*') ||
- filePath === m0scanFile_nii ||
- filePath === m0scanFile_niigz
- ) {
- onTheList = true
- }
- }
- }
- return onTheList
-}
-
-function matchRule_m0scan(str, rule) {
- var escapeRegex = (str) => str.replace(/([.*+?^=!:${}()|[]\/\\])/g, '\\$1')
- return new RegExp(
- rule.split('*').map(escapeRegex).join('.*') + '_m0scan.nii',
- ).test(str)
-}
-
-function checkIfValidFiletype(intendedForFile, issues, file) {
- const validFiletype = new RegExp('.nii(.gz)?$')
- const isValidFiletype = validFiletype.test(intendedForFile)
- if (!isValidFiletype) {
- issues.push(
- new Issue({
- file: file,
- code: 37,
- reason: `Invalid filetype: IntendedFor should point to the .nii[.gz] files.`,
- evidence: intendedForFile,
- }),
- )
- }
-}
-
-function isMonotonicIncreasingArray(A) {
- let isInc = false
- for (let i = 1; i < A.length; i++) {
- if (A[i] > A[i - 1]) {
- isInc = true
- } else {
- return false
- }
- }
- return isInc
-}
diff --git a/bids-validator/validators/nifti/phasediffWithoutMagnitude.js b/bids-validator/validators/nifti/phasediffWithoutMagnitude.js
deleted file mode 100644
index 909e876f..00000000
--- a/bids-validator/validators/nifti/phasediffWithoutMagnitude.js
+++ /dev/null
@@ -1,27 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-
-const phasediffWithoutMagnitude = (files) => {
- // check to see if each phasediff is associated with magnitude
- const issues = []
- const niftiNames = files.map((nifti) => nifti.name)
- const phaseDiffNiftis = niftiNames.filter(
- (nifti) => nifti.indexOf('phasediff') > -1,
- )
- const magnitude1Niftis = niftiNames.filter(
- (nifti) => nifti.indexOf('magnitude1') > -1,
- )
- phaseDiffNiftis.map((nifti) => {
- const associatedMagnitudeFile = nifti.replace('phasediff', 'magnitude1')
- if (magnitude1Niftis.indexOf(associatedMagnitudeFile) === -1) {
- issues.push(
- new Issue({
- code: 92,
- file: files.find((niftiFile) => niftiFile.name == nifti),
- }),
- )
- }
- })
- return issues
-}
-
-export default phasediffWithoutMagnitude
diff --git a/bids-validator/validators/nifti/validate.js b/bids-validator/validators/nifti/validate.js
deleted file mode 100644
index a3503cfe..00000000
--- a/bids-validator/validators/nifti/validate.js
+++ /dev/null
@@ -1,77 +0,0 @@
-import utils from '../../utils'
-import nifti from './nii'
-import phaseDiffWithoutMagnitude from './phasediffWithoutMagnitude'
-import fieldmapWithoutMagnitude from './fieldmapWithoutMagnitude'
-import duplicateFiles from './duplicateFiles'
-
-const validate = (
- files,
- fileList,
- options,
- jsonContentsDict,
- bContentsDict,
- events,
- headers,
- annexed,
- dir,
-) => {
- let issues = []
- const niftiPromises = files.map(function (file) {
- return new Promise((resolve) => {
- if (options.ignoreNiftiHeaders) {
- nifti(
- null,
- file,
- jsonContentsDict,
- bContentsDict,
- fileList,
- events,
- function (niftiIssues) {
- issues = issues.concat(niftiIssues)
- resolve()
- },
- )
- } else {
- utils.files.readNiftiHeader(file, annexed, dir, function (header) {
- // check if header could be read
- if (header && header.hasOwnProperty('error')) {
- issues.push(header.error)
- resolve()
- } else {
- headers.push([file, header])
- nifti(
- header,
- file,
- jsonContentsDict,
- bContentsDict,
- fileList,
- events,
- function (niftiIssues) {
- issues = issues.concat(niftiIssues)
- resolve()
- },
- )
- }
- })
- }
- })
- })
-
- return new Promise((resolve) => {
- // check for duplicate nifti files
- const duplicateNiftisIssues = duplicateFiles(files)
- issues = issues.concat(duplicateNiftisIssues)
-
- // Check for _fieldmap nifti exists without corresponding _magnitude
- const magnitudeIssues = fieldmapWithoutMagnitude(files)
- issues = issues.concat(magnitudeIssues)
-
- // phase diff without magnitude test
- const phaseDiffWithoutMagnitudeIssues = phaseDiffWithoutMagnitude(files)
- issues = issues.concat(phaseDiffWithoutMagnitudeIssues)
-
- Promise.all(niftiPromises).then(() => resolve(issues))
- })
-}
-
-export default validate
diff --git a/bids-validator/validators/options.js b/bids-validator/validators/options.js
deleted file mode 100644
index b1b08d34..00000000
--- a/bids-validator/validators/options.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// ESM import for yargs does not work for mysterious reasons
-const yargs = require('yargs')
-
-export function parseOptions(argumentOverride) {
- return yargs(argumentOverride)
- .usage('Usage: $0 [options]')
- .help('help')
- .alias('help', 'h')
- .version(require('../package.json').version)
- .alias('version', 'v')
- .demand(1, 1)
- .boolean('ignoreWarnings')
- .describe('ignoreWarnings', 'Disregard non-critical issues')
- .boolean('ignoreNiftiHeaders')
- .describe(
- 'ignoreNiftiHeaders',
- 'Disregard NIfTI header content during validation',
- )
- .boolean('ignoreSubjectConsistency')
- .describe(
- 'ignoreSubjectConsistency',
- 'Skip checking that any given file for one subject is present for all other subjects.',
- )
- .option('blacklistModalities', {
- default: [],
- describe: 'Array of modalities to error on if detected.',
- array: true,
- choices: ['MRI', 'PET', 'MEG', 'EEG', 'iEEG', 'Microscopy', 'NIRS'],
- })
- .boolean('verbose')
- .describe('verbose', 'Log more extensive information about issues')
- .boolean('json')
- .describe('json', 'Output results as JSON')
- .boolean('no-color')
- .describe('no-color', 'Disable colors in output text.')
- .default('no-color', false)
- .boolean('ignoreSymlinks')
- .describe(
- 'ignoreSymlinks',
- 'Skip any symlinked directories when validating a dataset',
- )
- .boolean('remoteFiles')
- .describe('remoteFiles', 'Validate remote files.')
- .default('remoteFiles', false)
- .boolean('gitTreeMode')
- .describe(
- 'gitTreeMode',
- 'Improve performance using git metadata. Does not capture changes not known to git.',
- )
- .option('gitRef', {
- describe:
- 'Targets files at a given branch, tag, or commit hash. Use with --gitTreeMode. [default: "HEAD"]',
- type: 'string',
- })
- .implies('gitRef', 'gitTreeMode')
- .option('config', {
- alias: 'c',
- describe:
- 'Optional configuration file. See https://github.com/bids-standard/bids-validator for more info',
- default: '.bids-validator-config.json',
- })
- .boolean('filenames')
- .default('filenames', false)
- .describe(
- 'filenames',
- 'A less accurate check that reads filenames one per line from stdin.',
- )
- .hide('filenames')
- .epilogue(
- 'This tool checks if a dataset in a given directory is \
-compatible with the Brain Imaging Data Structure specification. To learn \
-more about Brain Imaging Data Structure visit http://bids.neuroimaging.io',
- ).argv
-}
diff --git a/bids-validator/validators/session.js b/bids-validator/validators/session.js
deleted file mode 100644
index a17f2371..00000000
--- a/bids-validator/validators/session.js
+++ /dev/null
@@ -1,253 +0,0 @@
-import utils from '../utils'
-const sesUtils = utils.files.sessions
-var Issue = utils.issues.Issue
-import isNode from '../utils/isNode'
-
-/**
- * session
- *
- * Takes a list of files and creates a set of file names that occur in subject
- * directories. Then generates a warning if a given subject is missing any
- * files from the set.
- */
-const session = function missingSessionFiles(fileList) {
- const { subjects, sessions } = getDataOrganization(fileList)
- const subject_files = getSubjectFiles(subjects)
- return [
- ...missingSessionWarnings(subjects, sessions),
- ...missingFileWarnings(subjects, subject_files),
- ]
-}
-
-/**
- * getDataOrganization
- *
- * takes a list of files and returns a dictionary of subjects and a list of sessions
- */
-function getDataOrganization(fileList) {
- const subjects = {}
- const sessions = []
-
- for (let key in fileList) {
- if (fileList.hasOwnProperty(key)) {
- const file = fileList[key]
-
- if (!file || (!isNode && !file.webkitRelativePath)) continue
-
- const path = file.relativePath
- if (!utils.type.isBIDS(path) || utils.type.file.isStimuliData(path))
- continue
-
- //match the subject identifier up to the '/' in the full path to a file.
- let subjKey
- const match = path.match(/sub-(.*?)(?=\/)/)
- if (match === null) continue
- else subjKey = match[0]
-
- // suppress inconsistent subject warnings for sub-emptyroom scans
- // in MEG data
- if (subjKey == 'sub-emptyroom') continue
-
- // initialize a subject object if we haven't seen this subject before
- subjects[subjKey] = subjects[subjKey] || new sesUtils.Subject()
-
- let filename = getFilename(path, subjKey)
- subjects[subjKey].files.push(filename)
-
- const sessionMatch = filename.match(sesUtils.sessionMatcher)
- if (sessionMatch) {
- // extract session name
- const sessionName = sessionMatch[1]
- // add session to sessions if not already there
- if (!sessions.includes(sessionName)) {
- sessions.push(sessionName)
- }
- if (!subjects[subjKey].sessions.includes(sessionName))
- subjects[subjKey].sessions.push(sessionName)
- }
- }
- }
-
- return { subjects, sessions }
-}
-
-/**
- * getFilename
- *
- * takes a filepath and a subject key and
- * returns file name
- */
-function getFilename(path, subjKey) {
- // files are prepended with subject name, the following two commands
- // remove the subject from the file name to allow filenames to be more
- // easily compared
- let filename = path.substring(path.match(subjKey).index + subjKey.length)
- filename = filename.replace(subjKey, '')
- return filename
-}
-
-/**
- * missingSessionWarnings
- *
- * take subjects and sessions
- * pushes missing session warnings to issues list
- * and returns issues
- */
-function missingSessionWarnings(subjects, sessions) {
- const issues = []
- for (let subjKey in subjects) {
- if (subjects.hasOwnProperty(subjKey)) {
- const subject = subjects[subjKey]
-
- // push warning to issues if missing session
- if (sessions.length > 0) {
- sessions.forEach((commonSession) => {
- if (!subject.sessions.includes(commonSession)) {
- subject.missingSessions.push(commonSession)
- const path = `/${subjKey}/${commonSession}`
- issues.push(
- new Issue({
- file: {
- relativePath: path,
- webkitRelativePath: path,
- name: commonSession,
- path,
- },
- reason:
- 'A session is missing from one subject that is present in at least one other subject',
- evidence: `Subject: ${subjKey}; Missing session: ${commonSession}`,
- code: 97,
- }),
- )
- }
- })
- }
- }
- }
- return issues
-}
-
-/**
- * getSubjectFiles
- *
- * takes a list of subjects and returns a list of each file
- */
-
-function getSubjectFiles(subjects) {
- const subject_files = []
- for (let subjKey in subjects) {
- if (subjects.hasOwnProperty(subjKey)) {
- const subject = subjects[subjKey]
-
- // add files to subject_files if not already listed
- subject.files.forEach((file) => {
- if (subject_files.indexOf(file) < 0) {
- subject_files.push(file)
- }
- })
- }
- }
- return subject_files
-}
-
-/**
- * missingFileWarnings
- *
- * takes a list of subjects and a list of common files and
- * generates an issue for each file missing from each subject
- * returns list of issues
- */
-function missingFileWarnings(subjects, subject_files) {
- const issues = []
- var subjectKeys = Object.keys(subjects).sort()
- subjectKeys.forEach((subjKey) => {
- subject_files.forEach((filename) => {
- const fileInMissingSession = checkFileInMissingSession(
- filename,
- subjects[subjKey],
- )
-
- if (!fileInMissingSession) {
- const missingFileWarning = checkMissingFile(
- subjects[subjKey],
- subjKey,
- filename,
- )
- if (missingFileWarning) issues.push(missingFileWarning)
- }
- })
- })
- return issues
-}
-
-/**
- * checkFileInMissingSession
- *
- * takes a file(path) and the subject object it should belong to and
- * returns whether or not the file is in a missing session
- */
-function checkFileInMissingSession(filePath, subject) {
- let fileSession
- const sessionMatch = filePath.match(sesUtils.sessionMatcher)
-
- // if sessions are in use, extract session name from file
- // and test if
- if (sessionMatch) {
- fileSession = sessionMatch[1]
- return subject.missingSessions.includes(fileSession)
- } else {
- return false
- }
-}
-
-/**
- * checkMissingFile
- *
- * takes a list of subjects, the subject key, and the expected file and
- * returns an issue if the file is missing
- */
-function checkMissingFile(subject, subjKey, filename) {
- const subjectMissingFile = subject.files.indexOf(filename) === -1
-
- if (subjectMissingFile) {
- var fileThatsMissing = '/' + subjKey + filename.replace('', subjKey)
- const fileName = fileThatsMissing.substr(
- fileThatsMissing.lastIndexOf('/') + 1,
- )
- return new Issue({
- file: {
- relativePath: fileThatsMissing,
- webkitRelativePath: fileThatsMissing,
- name: fileName,
- path: fileThatsMissing,
- },
- evidence: `Subject: ${subjKey}; Missing file: ${fileName}`,
- reason:
- 'This file is missing for subject ' +
- subjKey +
- ', but is present for at least one other subject.',
- code: 38,
- })
- }
-}
-
-export {
- session,
- getDataOrganization,
- getFilename,
- missingSessionWarnings,
- getSubjectFiles,
- missingFileWarnings,
- checkFileInMissingSession,
- checkMissingFile,
-}
-export default {
- session,
- getDataOrganization,
- getFilename,
- missingSessionWarnings,
- getSubjectFiles,
- missingFileWarnings,
- checkFileInMissingSession,
- checkMissingFile,
-}
diff --git a/bids-validator/validators/tsv/__tests__/checkAge89.spec.js b/bids-validator/validators/tsv/__tests__/checkAge89.spec.js
deleted file mode 100644
index 22cad0e8..00000000
--- a/bids-validator/validators/tsv/__tests__/checkAge89.spec.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import { checkAge89 } from '../checkAge89'
-
-describe('checkAge89()', () => {
- it('returns evidence in the expected string format', () => {
- // Evidence should always be a human-readable string
- const issues = []
- const exampleParticipants = [['age'], [90]]
- const mockFile = {}
- checkAge89(exampleParticipants, mockFile, issues)
- expect(issues).toHaveLength(1)
- expect(issues[0]).toHaveProperty('evidence')
- expect(typeof issues[0].evidence).toBe('string')
- })
-})
diff --git a/bids-validator/validators/tsv/__tests__/checkHeaders.spec.js b/bids-validator/validators/tsv/__tests__/checkHeaders.spec.js
deleted file mode 100644
index 446a48c7..00000000
--- a/bids-validator/validators/tsv/__tests__/checkHeaders.spec.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import checkHeaders from '../checkHeaders'
-
-describe('checkHeaders()', () => {
- it('generates issue on duplicate', () => {
- const issues = []
- const headers = ['hdr1', 'hdr2', 'hdr1']
- const mockFile = {}
- checkHeaders(headers, mockFile, issues)
- expect(issues).toHaveLength(1)
- expect(issues[0].code).toBe(231)
- })
- it('No issue for unique headers array', () => {
- const issues = []
- const headers = ['hdr1', 'hdr2', 'hdr3']
- const mockFile = {}
- checkHeaders(headers, mockFile, issues)
- expect(issues).toHaveLength(0)
- })
- it('generates issue on n/a', () => {
- const issues = []
- const headers = ['n/a']
- const mockFile = {}
- checkHeaders(headers, mockFile, issues)
- expect(issues).toHaveLength(1)
- expect(issues[0].code).toBe(232)
- })
- it('generates issue on empty header', () => {
- const issues = []
- const headers = ['normal', ' ', 'fine']
- const mockFile = {}
- checkHeaders(headers, mockFile, issues)
- expect(issues).toHaveLength(1)
- expect(issues[0].code).toBe(23)
- })
-})
diff --git a/bids-validator/validators/tsv/__tests__/checkMotionComponent.js b/bids-validator/validators/tsv/__tests__/checkMotionComponent.js
deleted file mode 100644
index 0f9fe63d..00000000
--- a/bids-validator/validators/tsv/__tests__/checkMotionComponent.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import { assert } from 'chai'
-import checkMotionComponent from '../checkMotionComponent'
-
-describe('checkMotionComponent', () => {
- it('returns no issue if components is in correct location and values are valid', () => {
- const issues = []
- checkMotionComponent(
- [
- ['test', 'component'],
- [0, 'x'],
- ],
- 'testfile.tsv',
- issues,
- )
- assert.lengthOf(issues, 0)
- })
- it('returns issue if components are in wrong column', () => {
- const issues = []
- checkMotionComponent(
- [
- ['component', 'test'],
- ['x', 0],
- ],
- 'testfile.tsv',
- issues,
- )
- assert.lengthOf(issues, 1)
- assert(issues[0].code === 235)
- })
- it('returns issue if components are incorrect value', () => {
- const issues = []
- checkMotionComponent(
- [
- ['test', 'component'],
- [0, 0],
- ],
- 'testfile.tsv',
- issues,
- )
- assert.lengthOf(issues, 1)
- assert(issues[0].code === 236)
- })
-})
diff --git a/bids-validator/validators/tsv/__tests__/checkPhenotype.spec.js b/bids-validator/validators/tsv/__tests__/checkPhenotype.spec.js
deleted file mode 100644
index fc8ee6ed..00000000
--- a/bids-validator/validators/tsv/__tests__/checkPhenotype.spec.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { assert } from 'chai'
-import checkPhenotype from '../checkPhenotype'
-
-describe('checkPhenotype', () => {
- const summary = { subjects: ['01', '02'] }
-
- it('returns no issue if there are no phenotype participants provided', () => {
- const issues = checkPhenotype([], [])
- assert.lengthOf(issues, 0)
- })
- it('returns no issues if all phenotype participants are included in the summary object', () => {
- const phenotypeParticipants = [{ list: ['01', '02'] }]
- const issues = checkPhenotype(phenotypeParticipants, summary)
- assert.lengthOf(issues, 0)
- })
- it('returns issue code 51 if phenotype participants are not the same as subjects', () => {
- const phenotypeParticipants = [
- { file: 'phenotype/test.tsv', list: ['01', '06'] },
- ]
- const issues = checkPhenotype(phenotypeParticipants, summary)
- assert.lengthOf(issues, 1)
- })
- it('returns issues for any mismatched participants.tsv files', () => {
- const phenotypeParticipants = [
- { file: 'phenotype/test_1.tsv', list: ['01', '06'] },
- { file: 'phenotype/test_2.tsv', list: ['01', '07'] },
- ]
- const issues = checkPhenotype(phenotypeParticipants, summary)
- assert.lengthOf(issues, 2)
- })
-})
diff --git a/bids-validator/validators/tsv/__tests__/validateTsvColumns.spec.js b/bids-validator/validators/tsv/__tests__/validateTsvColumns.spec.js
deleted file mode 100644
index c2fcfc72..00000000
--- a/bids-validator/validators/tsv/__tests__/validateTsvColumns.spec.js
+++ /dev/null
@@ -1,150 +0,0 @@
-import { assert } from 'chai'
-import validateTsvColumns, {
- validatePetBloodHeaders,
-} from '../validateTsvColumns'
-
-describe('validateTsvColumns', () => {
- describe('for participants.tsv', () => {
- const file = {
- name: 'participants.tsv',
- relativePath: '/participants.tsv',
- }
- const jsonContentsDict = {
- '/participants.json': { NewColumn: 'description' },
- }
-
- it('allows for tabular files with columns that are described in the bids spec', () => {
- const tsvs = [
- {
- contents: 'participant_id\n',
- file: file,
- },
- ]
- const issues = validateTsvColumns(tsvs, {}, [])
- assert.lengthOf(issues, 0)
- })
- it('checks for tabular files with custom columns not described in a data dictionary', () => {
- const tsvs = [
- {
- contents: 'header1\n',
- file: file,
- },
- ]
- const issues = validateTsvColumns(tsvs, {}, [])
- assert.lengthOf(issues, 1)
- assert.equal(issues[0].code, 82)
- })
- it('allows custom columns if they are described in a data dictionary', () => {
- const tsvs = [
- {
- contents: 'NewColumn\n',
- file: file,
- },
- ]
- const issues = validateTsvColumns(tsvs, jsonContentsDict, [])
- assert.lengthOf(issues, 0)
- })
- it('should trim the new line carriages created by windows tabular files,', () => {
- const tsvs = [
- {
- contents: 'participant_id\t\r\n',
- file: file,
- },
- {
- contents: 'participant_id\r\n',
- file: file,
- },
- ]
- const issues = validateTsvColumns(tsvs, {}, [])
- assert.lengthOf(issues, 0)
- })
- })
-
- describe('requires_tsv_non_custom_columns for validatePetBloodHeaders', () => {
- let tsv, mergedDict, schema
- beforeEach(() => {
- tsv = {
- contents: 'col_A\tcol_B\n',
- file: { name: 'test_blood.tsv' },
- }
- // associated json sidecar to tsv
- mergedDict = {
- PropA: true,
- PropB: true,
- PropC: '',
- }
- // minimal subset of bids-validator/validators/json/schemas/pet_blood.json
- schema = {
- properties: {
- PropA: {
- type: 'boolean',
- requires_tsv_non_custom_columns: ['col_A'],
- },
- PropB: {
- type: 'boolean',
- requires_tsv_non_custom_columns: ['col_A', 'col_B'],
- },
- PropC: { type: 'string' },
- },
- }
- })
- it('passes when required columns are present', () => {
- const issues = validatePetBloodHeaders(tsv, mergedDict, schema)
- assert.isEmpty(issues)
- })
- it('does not require columns when associated JSON properties are false', () => {
- tsv.contents = '\n'
- mergedDict.PropA = false
- mergedDict.PropB = false
- const issues = validatePetBloodHeaders(tsv, mergedDict, schema)
- assert.isEmpty(issues)
- })
- it('requires column when JSON property is true', () => {
- tsv.contents = 'col_A'
- const issues = validatePetBloodHeaders(tsv, mergedDict, schema)
- assert.lengthOf(issues, 1)
- assert.equal(issues[0].key, 'TSV_MISSING_REQUIRED_COLUMN')
- assert.equal(issues[0].file.name, tsv.file.name)
- assert.equal(issues[0].severity, 'error')
- assert.include(issues[0].evidence, 'missing header "col_B"')
- })
- it('produces errors for each missing column', () => {
- tsv.contents = '\n'
- const issues = validatePetBloodHeaders(tsv, mergedDict, schema)
- assert.lengthOf(issues, 2)
- })
- })
- it('should strip byte order marks from the start of TSV files', () => {
- const tsvs = [
- {
- contents: '\uFEFFparticipant_id\t\r\n',
- file: {
- name: 'participants.tsv',
- relativePath: './participants.tsv',
- },
- },
- ]
- const issues = validateTsvColumns(tsvs, {}, [])
- assert.lengthOf(issues, 0)
- })
- it('should generate error with empty columns', () => {
- const tsvs = [
- {
- contents: '\t',
- file: {
- name: 'test.tsv',
- relativePath: './test.tsv',
- },
- },
- {
- contents: '\t\t',
- file: {
- name: 'test.tsv',
- relativePath: './test.tsv',
- },
- },
- ]
- const issues = validateTsvColumns(tsvs, {}, [])
- assert.lengthOf(issues, 2)
- })
-})
diff --git a/bids-validator/validators/tsv/checkAcqTimeFormat.js b/bids-validator/validators/tsv/checkAcqTimeFormat.js
deleted file mode 100644
index e4df5d5a..00000000
--- a/bids-validator/validators/tsv/checkAcqTimeFormat.js
+++ /dev/null
@@ -1,32 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-import { isValid as dateIsValid, parseISO } from 'date-fns'
-
-const checkAcqTimeFormat = function (rows, file, issues) {
- const rfc3339ish = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?Z?$/
- const header = rows[0]
- const acqTimeColumn = header.indexOf('acq_time')
- const testRows = rows.slice(1)
- testRows.map((line, i) => {
- const lineValues = line
- const acqTime = lineValues[acqTimeColumn]
- let isValid = dateIsValid(parseISO(acqTime)) && rfc3339ish.test(acqTime)
-
- if (acqTime === 'n/a') {
- isValid = true
- }
-
- if (acqTime && !isValid) {
- issues.push(
- new Issue({
- file: file,
- evidence: acqTime,
- line: i + 2,
- reason: 'acq_time is not in the format yyyy-MM-ddTHH:mm:ss[.000000]',
- code: 84,
- }),
- )
- }
- })
-}
-
-export default checkAcqTimeFormat
diff --git a/bids-validator/validators/tsv/checkAge89.js b/bids-validator/validators/tsv/checkAge89.js
deleted file mode 100644
index 7ab1254d..00000000
--- a/bids-validator/validators/tsv/checkAge89.js
+++ /dev/null
@@ -1,24 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-
-export const checkAge89 = function (rows, file, issues) {
- const header = rows[0]
- const ageIdColumn = header.indexOf('age')
- for (let a = 0; a < rows.length; a++) {
- const line = rows[a]
- const line_values = line
- const age = line_values[ageIdColumn]
- if (age >= 89) {
- issues.push(
- new Issue({
- file: file,
- evidence: line.join(','),
- line: a + 1,
- reason: 'age of participant is above 89 ',
- code: 56,
- }),
- )
- }
- }
-}
-
-export default checkAge89
diff --git a/bids-validator/validators/tsv/checkHeaders.js b/bids-validator/validators/tsv/checkHeaders.js
deleted file mode 100644
index b2ecbbe7..00000000
--- a/bids-validator/validators/tsv/checkHeaders.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import Issue from '../../utils/issues/issue'
-import { headersEvidence } from './tsv'
-
-const checkHeaders = (headers, file, issues) => {
- headers.map((header, i) => {
- if (i !== headers.findIndex((x) => x === header)) {
- issues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- reason: 'Duplicate value at column #' + (i + 1),
- code: 231,
- }),
- )
- }
- if (/^\s*$/.test(header)) {
- issues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- reason: 'Missing value at column # ' + (i + 1),
- code: 23,
- }),
- )
- }
- if (header === 'n/a') {
- issues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- reason: 'n/a value in header at column #' + (i + 1),
- code: 232,
- }),
- )
- }
- })
-}
-
-export default checkHeaders
diff --git a/bids-validator/validators/tsv/checkMotionComponent.js b/bids-validator/validators/tsv/checkMotionComponent.js
deleted file mode 100644
index 07a967ae..00000000
--- a/bids-validator/validators/tsv/checkMotionComponent.js
+++ /dev/null
@@ -1,46 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-
-const componentEnum = [
- 'x',
- 'y',
- 'z',
- 'quat_x',
- 'quat_y',
- 'quat_z',
- 'quat_w',
- 'n/a',
-]
-
-export const checkMotionComponent = function (rows, file, issues) {
- const header = rows[0]
- const componentIndex = header.indexOf('component')
- if (componentIndex != 1) {
- issues.push(
- new Issue({
- file: file,
- evidence: header.join(','),
- line: 0,
- reason: `Component found on column ${componentIndex + 1}.`,
- code: 235,
- }),
- )
- }
-
- for (let a = 1; a < rows.length; a++) {
- const line = rows[a]
- const component = line[componentIndex]
- if (!componentEnum.includes(component)) {
- issues.push(
- new Issue({
- file: file,
- evidence: line.join(','),
- line: a + 1,
- reason: `Found value ${component}`,
- code: 236,
- }),
- )
- }
- }
-}
-
-export default checkMotionComponent
diff --git a/bids-validator/validators/tsv/checkPhenotype.js b/bids-validator/validators/tsv/checkPhenotype.js
deleted file mode 100644
index 74a1fb10..00000000
--- a/bids-validator/validators/tsv/checkPhenotype.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-
-const checkPhenotype = (phenotypeParticipants, summary) => {
- const issues = []
- for (let j = 0; j < phenotypeParticipants.length; j++) {
- const fileParticipants = phenotypeParticipants[j]
- const participantList = fileParticipants.list.sort()
- const summarySubjects = summary.subjects.sort()
- if (!utils.array.equals(participantList, summarySubjects)) {
- const evidence = constructMissingPhenotypeEvidence(
- participantList,
- summarySubjects,
- )
- issues.push(
- new Issue({
- code: 51,
- evidence: evidence,
- file: fileParticipants.file,
- }),
- )
- }
- }
- return issues
-}
-
-const constructMissingPhenotypeEvidence = (fileParticipants, subjects) => {
- const subjectsClone = subjects.slice()
- const diffs = utils.array.diff(fileParticipants, subjectsClone)
- const subjectsNotInSummarySubjects = diffs[0]
- const subjectsNotInFileParticipants = diffs[1]
- const evidenceOfMissingParticipants = subjectsNotInFileParticipants.length
- ? 'Subjects ' +
- subjectsNotInFileParticipants.join(', ') +
- ' were found in the folder structure but are missing in phenotype/ .tsv. '
- : ''
- const evidenceOfMissingSubjects = subjectsNotInSummarySubjects.length
- ? 'Subjects ' +
- subjectsNotInSummarySubjects.join(', ') +
- ' were found in phenotype/ .tsv file but are not present in the folder structure. '
- : ''
- const evidence = evidenceOfMissingParticipants + evidenceOfMissingSubjects
- return evidence
-}
-
-export default checkPhenotype
diff --git a/bids-validator/validators/tsv/checkStatusCol.js b/bids-validator/validators/tsv/checkStatusCol.js
deleted file mode 100644
index de9368ef..00000000
--- a/bids-validator/validators/tsv/checkStatusCol.js
+++ /dev/null
@@ -1,37 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-
-/**
- * Checks status column in a electroencephalography _channels.tsv file to
- * ensure its values are only * 'good', 'bad', or 'n/a'
- * @param {string[]} rows - Each row of a tsv file to be checked.
- * @param {Object} file - File of rows being checked, used for error message if
- * problem is found.
- * @param {Object[]} issues - Array of issue objects to add to if problem is
- * found.
- * @returns {null} Results of this function are stored in issues.
- */
-const checkStatusCol = function (rows, file, issues) {
- const header = rows[0]
- const statusColumn = header.indexOf('status')
- if (statusColumn !== -1) {
- for (let i = 1; i < rows.length; i++) {
- const line = rows[i]
- const status = line[statusColumn]
- if (status !== 'good' && status !== 'bad' && status != 'n/a') {
- issues.push(
- new Issue({
- file: file,
- evidence: line.toString(),
- line: i + 1,
- reason:
- 'the status column values should either be good, bad, or n/a',
- code: 125,
- }),
- )
- }
- }
- }
- return
-}
-
-export default checkStatusCol
diff --git a/bids-validator/validators/tsv/checkTypeCol.js b/bids-validator/validators/tsv/checkTypeCol.js
deleted file mode 100644
index adac1bcd..00000000
--- a/bids-validator/validators/tsv/checkTypeCol.js
+++ /dev/null
@@ -1,122 +0,0 @@
-const Issue = require('../../utils').issues.Issue
-
-// allowable 'type' values from the BIDS specification
-const allowedMEEGTypes = [
- /* (i)EEG */
- 'EEG',
- 'ECOG',
- 'SEEG',
- 'DBS',
- 'PD',
- 'OTHER',
- /* physio */
- 'EOG',
- 'ECG',
- 'EMG',
- 'EYEGAZE',
- 'GSR',
- 'HEOG',
- 'MISC',
- 'PUPIL',
- 'RESP',
- 'TEMP',
- 'VEOG',
- 'PPG',
- /* system */
- 'AUDIO',
- 'REF',
- 'SYSCLOCK',
- 'TRIG',
- 'ADC',
- 'DAC',
- /* MEG */
- 'MEGMAG',
- 'MEGGRADAXIAL',
- 'MEGGRADPLANAR',
- 'MEGREFMAG',
- 'MEGREFGRADAXIAL',
- 'MEGREFGRADPLANAR',
- 'MEGOTHER',
- 'HLU',
- 'FITERR',
- /* MOTION */
- 'POS',
- 'ORNT',
- 'VEL',
- 'GYRO',
- 'ACCEL',
- 'ANGACCEL',
- 'JNTANG',
- 'MAGN',
- 'LATENCY',
- 'MISC',
- /* NIRS */
- 'NIRSCWAMPLITUDE',
- 'NIRSCWFLUORESCENSEAMPLITUDE',
- 'NIRSCWOPTICALDENSITY',
- 'NIRSCWHBO',
- 'NIRSCWHBR',
- 'NIRSCWMUA',
-]
-
-/**
- * Checks type column in an ephys _channels.tsv file to
- * ensure its values are only in an acceptable set of values and fires off a
- * warning to the user if the characters are not all upper-case.
- * @param {string[]} rows - Each row of a tsv file to be checked.
- * @param {Object} file - File of rows being checked, used for error message if
- * problem is found.
- * @param {Object[]} issues - Array of issue objects to add to if problem is
- * found.
- * @returns {null} Results of this function are stored in issues.
- */
-const checkTypeCol = function (rows, file, issues) {
- const header = rows[0]
- const typeColumn = header.indexOf('type')
- if (typeColumn !== -1) {
- for (let i = 1; i < rows.length; i++) {
- const line = rows[i]
- let type = line[typeColumn]
-
- if (type === 'n/a') {
- continue
- }
- // check type casing
- let isUpperCase = true
- if (type != type.toUpperCase()) {
- // The character is lowercase
- isUpperCase = false
- }
- // only deal with upper casing when validating for errors
- type = type.toUpperCase()
-
- // check if an error, or a warning is needed
- if (!allowedMEEGTypes.includes(type)) {
- issues.push(
- new Issue({
- file: file,
- evidence: line.join(', '),
- line: i + 1,
- reason:
- 'the type column values should only consist of values specified for *_channels.tsv file',
- code: 131,
- }),
- )
- } else if (!isUpperCase) {
- // not upper case, then warn user to use upper-casing
- issues.push(
- new Issue({
- file: file,
- evidence: line.join(', '),
- line: i + 1,
- reason: 'the type column values upper-cased',
- code: 130,
- }),
- )
- }
- }
- }
- return
-}
-
-export default checkTypeCol
diff --git a/bids-validator/validators/tsv/index.js b/bids-validator/validators/tsv/index.js
deleted file mode 100644
index 8135da0e..00000000
--- a/bids-validator/validators/tsv/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/* eslint-disable no-unused-vars */
-import TSV from './tsv'
-
-import checkPhenotype from './checkPhenotype'
-import validateTsvColumns from './validateTsvColumns'
-import validate from './validate'
-import checkAge89 from './checkAge89'
-import checkAcqTimeFormat from './checkAcqTimeFormat'
-import validateContRec from './validateContRecordings'
-
-export default {
- TSV: TSV,
- checkPhenotype: checkPhenotype,
- validateTsvColumns: validateTsvColumns,
- validate: validate,
- checkAge89: checkAge89,
- checkAcqTimeFormat: checkAcqTimeFormat,
- validateContRec: validateContRec,
-}
diff --git a/bids-validator/validators/tsv/tsv.js b/bids-validator/validators/tsv/tsv.js
deleted file mode 100644
index fa48b83b..00000000
--- a/bids-validator/validators/tsv/tsv.js
+++ /dev/null
@@ -1,643 +0,0 @@
-import Issue from '../../utils/issues/issue'
-import checkAcqTimeFormat from './checkAcqTimeFormat'
-import checkAge89 from './checkAge89'
-import checkHeaders from './checkHeaders'
-import checkStatusCol from './checkStatusCol'
-import checkTypecol from './checkTypeCol'
-import parseTSV from './tsvParser'
-import checkMotionComponent from './checkMotionComponent'
-var path = require('path')
-
-/**
- * Format TSV headers for evidence string
- * @param {Array[string]} headers
- * @returns {string}
- */
-export const headersEvidence = (headers) =>
- `Column headers: ${headers.join(', ')}`
-
-/**
- * Format TSV filename for evidence string
- * @param {Array[string]} filename
- * @returns {string}
- */
-const filenameEvidence = (filename) => `Filename: ${filename}`
-
-/**
- * TSV
- *
- * Takes a TSV file as a string and a callback
- * as arguments. And callsback with any issues
- * it finds while validating against the BIDS
- * specification.
- */
-
-const TSV = (file, contents, fileList, callback) => {
- const issues = []
- const stimPaths = []
- if (contents.includes('\r') && !contents.includes('\n')) {
- issues.push(
- new Issue({
- file: file,
- evidence: contents,
- code: 70,
- }),
- )
- callback(issues, null)
- return
- }
-
- // TSV Parser -----------------------------------------------------------
- const { headers, rows } = parseTSV(contents)
-
- // generic checks -----------------------------------------------------------
- let columnMismatch = false
- let emptyCells = false
- let NACells = false
-
- // motion tsvs don't have headers
- if (!file.name.endsWith('_motion.tsv')) {
- checkHeaders(headers, file, issues)
- }
-
- for (let i = 1; i < rows.length; i++) {
- const values = rows[i]
- const evidence = `row ${i}: ${values.join('\t')}`
- if (values.length === 1 && /^\s*$/.test(values[0])) continue
- if (columnMismatch && emptyCells && NACells) break
- // check for different length rows
- if (values.length !== headers.length && !columnMismatch) {
- columnMismatch = true
- issues.push(
- new Issue({
- file: file,
- evidence,
- line: i + 1,
- code: 22,
- }),
- )
- }
- // iterate values
- for (let j = 0; j < values.length; j++) {
- const value = values[j]
- if (columnMismatch && emptyCells && NACells) break
- if (value === '' && !emptyCells) {
- emptyCells = true
- // empty cell should raise an error
- issues.push(
- new Issue({
- file: file,
- evidence,
- line: i + 1,
- reason: 'Missing value at column # ' + (j + 1),
- code: 23,
- }),
- )
- } else if (
- (value === 'NA' ||
- value === 'na' ||
- value === 'nan' ||
- value === 'NaN') &&
- !NACells
- ) {
- NACells = true
- // check if missing value is properly labeled as 'n/a'
- issues.push(
- new Issue({
- file: file,
- evidence,
- line: i + 1,
- reason: 'Missing value at column # ' + (j + 1),
- code: 24,
- }),
- )
- }
- }
- }
-
- // specific file checks -----------------------------------------------------
- const checkheader = function checkheader(
- headername,
- idx,
- file,
- missingCode,
- orderCode = null,
- ) {
- let code = missingCode
- if (headers.includes(headername) && orderCode) {
- code = orderCode
- }
-
- if (headers[idx] !== headername) {
- issues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- character: rows[0].indexOf(headers[idx]),
- code: code,
- }),
- )
- }
- }
-
- // events.tsv
- if (file.name.endsWith('_events.tsv')) {
- if (headers.length == 0 || headers[0] !== 'onset') {
- issues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- code: 20,
- }),
- )
- }
- if (headers.length < 2 || headers[1].trim() !== 'duration') {
- issues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- code: 21,
- }),
- )
- }
-
- // create full dataset path list
- const pathList = []
- for (let f in fileList) {
- if (fileList.hasOwnProperty(f)) {
- pathList.push(fileList[f].relativePath)
- }
- }
-
- // check for stimuli file
- const stimFiles = []
- if (headers.indexOf('stim_file') > -1) {
- for (let k = 0; k < rows.length; k++) {
- const stimFile = rows[k][headers.indexOf('stim_file')]
- const stimPath = '/stimuli/' + stimFile
- if (
- stimFile &&
- stimFile !== 'n/a' &&
- stimFile !== 'stim_file' &&
- stimFiles.indexOf(stimFile) == -1
- ) {
- stimFiles.push(stimFile)
- stimPaths.push(stimPath)
- if (pathList.indexOf(stimPath) == -1) {
- issues.push(
- new Issue({
- file: file,
- evidence: stimFile,
- reason:
- 'A stimulus file (' +
- stimFile +
- ') was declared but not found in /stimuli.',
- line: k + 1,
- character: rows[k].indexOf(stimFile),
- code: 52,
- }),
- )
- }
- }
- }
- }
- }
-
- // participants.tsv
- let participants = null
- if (
- file.name === 'participants.tsv' ||
- file.relativePath.includes('phenotype/')
- ) {
- const participantIdColumn = headers.indexOf('participant_id')
-
- // if the participant_id column is missing, an error
- // will be raised
- if (participantIdColumn === -1) {
- issues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- code: 48,
- }),
- )
- } else {
- // otherwise, the participants should comprise of
- // sub- and one subject per row
- participants = []
- for (let l = 1; l < rows.length; l++) {
- const row = rows[l]
- // skip empty rows
- if (!row || /^\s*$/.test(row)) {
- continue
- }
-
- // check if any incorrect patterns in participant_id column
- if (!row[participantIdColumn].startsWith('sub-')) {
- issues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- reason:
- 'Participant_id column should be named ' +
- 'as sub-.',
- line: l,
- code: 212,
- }),
- )
- }
-
- // obtain a list of the subject IDs in the participants.tsv file
- const participant = row[participantIdColumn].replace('sub-', '')
- if (participant == 'emptyroom') {
- continue
- }
- participants.push(participant)
- }
- }
- }
-
- // samples.tsv
- let samples = null
- if (file.name === 'samples.tsv') {
- const sampleIssues = []
- const sampleIdColumnValues = []
- const participantIdColumnValues = []
- const sampleIdColumn = headers.indexOf('sample_id')
- const participantIdColumn = headers.indexOf('participant_id')
- const sampleTypeColumn = headers.indexOf('sample_type')
-
- // if the sample_id column is missing, an error
- // will be raised
- if (sampleIdColumn === -1) {
- sampleIssues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- code: 216,
- }),
- )
- }
- // if the participant_id column is missing, an error
- // will be raised
- if (participantIdColumn === -1) {
- sampleIssues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- code: 217,
- }),
- )
- }
- // if the sample_type column is missing, an error
- // will be raised
- if (sampleTypeColumn === -1) {
- sampleIssues.push(
- new Issue({
- file: file,
- evidence: headersEvidence(headers),
- line: 1,
- code: 218,
- }),
- )
- }
- // Fold sampleIssues into main issue array, only needed it for this
- // conditional.
- issues.push(...sampleIssues)
- if (sampleIssues.length === 0) {
- // otherwise, the samples should comprise of
- // sample- and one sample per row
- samples = []
- for (let l = 1; l < rows.length; l++) {
- const row = rows[l]
- // skip empty rows
- if (!row || /^\s*$/.test(row)) {
- continue
- }
- sampleIdColumnValues.push(row[sampleIdColumn])
-
- // check if any incorrect patterns in sample_id column
- if (!row[sampleIdColumn].startsWith('sample-')) {
- issues.push(
- new Issue({
- file: file,
- evidence: row[sampleIdColumn],
- reason:
- 'sample_id column should be named ' + 'as sample-.',
- line: l,
- code: 215,
- }),
- )
- }
- }
- // The participants should comprise of
- // sub- and one subject per row
- participants = []
- for (let l = 1; l < rows.length; l++) {
- const row = rows[l]
- // skip empty rows
- if (!row || /^\s*$/.test(row)) {
- continue
- }
- participantIdColumnValues.push(row[participantIdColumn])
-
- // check if any incorrect patterns in participant_id column
- if (!row[participantIdColumn].startsWith('sub-')) {
- issues.push(
- new Issue({
- file: file,
- evidence: row[participantIdColumn],
- reason:
- 'Participant_id column should be named ' +
- 'as sub-.',
- line: l,
- code: 212,
- }),
- )
- }
-
- // obtain a list of the sample IDs in the samples.tsv file
- const sample = row[sampleIdColumn].replace('sample-', '')
- if (sample == 'emptyroom') {
- continue
- }
- samples.push(sample)
- }
-
- // check if a sample from same subject is described by one and only one row
- let samplePartIdsSet = new Set()
- for (let r = 0; r < rows.length - 1; r++) {
- let uniqueString = sampleIdColumnValues[r].concat(
- participantIdColumnValues[r],
- )
- // check if SampleId Have Duplicate
- if (samplePartIdsSet.has(uniqueString)) {
- issues.push(
- new Issue({
- file: file,
- evidence: sampleIdColumnValues,
- reason:
- 'Each sample from a same subject MUST be described by one and only one row.',
- line: 1,
- code: 220,
- }),
- )
- break
- } else samplePartIdsSet.add(uniqueString)
- }
- }
-
- if (sampleTypeColumn !== -1) {
- // check if any incorrect patterns in sample_type column
- const validSampleTypes = [
- 'cell line',
- 'in vitro differentiated cells',
- 'primary cell',
- 'cell-free sample',
- 'cloning host',
- 'tissue',
- 'whole organisms',
- 'organoid',
- 'technical sample',
- ]
- for (let c = 1; c < rows.length; c++) {
- const row = rows[c]
- if (!validSampleTypes.includes(row[sampleTypeColumn])) {
- issues.push(
- new Issue({
- file: file,
- evidence: row[sampleTypeColumn],
- reason: "sample_type can't be any value.",
- line: c + 1,
- code: 219,
- }),
- )
- }
- }
- }
- }
-
- if (
- file.relativePath.includes('/meg/') &&
- file.name.endsWith('_channels.tsv')
- ) {
- checkheader('name', 0, file, 71, 230)
- checkheader('type', 1, file, 71, 230)
- checkheader('units', 2, file, 71, 230)
- checkStatusCol(rows, file, issues)
- checkTypecol(rows, file, issues)
- }
-
- if (
- file.relativePath.includes('/eeg/') &&
- file.name.endsWith('_channels.tsv')
- ) {
- checkheader('name', 0, file, 71, 230)
- checkheader('type', 1, file, 71, 230)
- checkheader('units', 2, file, 71, 230)
- checkStatusCol(rows, file, issues)
- checkTypecol(rows, file, issues)
- }
-
- if (
- file.relativePath.includes('/ieeg/') &&
- file.name.endsWith('_channels.tsv')
- ) {
- checkheader('name', 0, file, 72, 229)
- checkheader('type', 1, file, 72, 229)
- checkheader('units', 2, file, 72, 229)
- checkheader('low_cutoff', 3, file, 72, 229)
- checkheader('high_cutoff', 4, file, 72, 229)
- checkStatusCol(rows, file, issues)
- checkTypecol(rows, file, issues)
- }
-
- if (
- file.relativePath.includes('/motion/') &&
- file.name.endsWith('_channels.tsv')
- ) {
- const required = ['component', 'name', 'tracked_point', 'type', 'units']
- const missing = required.filter((x) => !headers.includes(x))
- if (missing.length) {
- issues.push(
- new Issue({
- line: 1,
- file: file,
- code: 129,
- evidence: `Missing Columns: ${missing.join(', ')}`,
- }),
- )
- }
- checkStatusCol(rows, file, issues)
- checkTypecol(rows, file, issues)
- checkMotionComponent(rows, file, issues)
- }
- if (
- file.relativePath.includes('/nirs/') &&
- file.name.endsWith('_channels.tsv')
- ) {
- checkheader('name', 0, file, 234)
- checkheader('type', 1, file, 234)
- checkheader('source', 2, file, 234)
- checkheader('detector', 3, file, 234)
- checkheader('wavelength_nominal', 4, file, 234)
- checkheader('units', 5, file, 234)
- checkStatusCol(rows, file, issues)
- checkTypecol(rows, file, issues)
- }
-
- // electrodes.tsv
- if (
- file.relativePath.includes('/eeg/') &&
- file.name.endsWith('_electrodes.tsv')
- ) {
- checkheader('name', 0, file, 96)
- checkheader('x', 1, file, 96)
- checkheader('y', 2, file, 96)
- checkheader('z', 3, file, 96)
- }
-
- if (
- file.relativePath.includes('/ieeg/') &&
- file.name.endsWith('_electrodes.tsv')
- ) {
- checkheader('name', 0, file, 73)
- checkheader('x', 1, file, 73)
- checkheader('y', 2, file, 73)
- checkheader('z', 3, file, 73)
- checkheader('size', 4, file, 73)
- }
-
- if (
- file.relativePath.includes('/nirs/') &&
- file.name.endsWith('_optodes.tsv')
- ) {
- checkheader('name', 0, file, 233)
- checkheader('type', 1, file, 233)
- checkheader('x', 2, file, 233)
- checkheader('y', 3, file, 233)
- checkheader('z', 4, file, 233)
- }
-
- // blood.tsv
- if (file.relativePath.includes('/pet/') && file.name.endsWith('_blood.tsv')) {
- // Validate fields here
- checkheader('time', 0, file, 126)
- }
-
- // check for valid SI units
- /*
- * Commenting out call to validation until it is inline with spec:
- * https://github.com/bids-standard/bids-specification/pull/411
- if (headers.includes('units')) {
- const unitIndex = headers.indexOf('units')
- rows
- // discard headers
- .slice(1)
- // extract unit values
- .map((row, i) => ({
- unit: row[unitIndex],
- line: i + 2,
- }))
- .forEach(({ unit, line }) => {
- const { isValid, evidence } = utils.unit.validate(unit)
- if (!isValid)
- issues.push(
- new Issue({
- line,
- file,
- code: 124,
- evidence,
- }),
- )
- })
- }
- */
-
- // check participants.tsv for age 89+
- if (file.name === 'participants.tsv') {
- checkAge89(rows, file, issues)
- }
-
- if (file.name.endsWith('_scans.tsv')) {
- // get the directory path for the scans.tsv
- const scanDirPath = path.dirname(file.relativePath)
-
- // get the subject and session for this scans.tsv file
- const subject = file.name.split('_').slice(0, 1)
-
- // get the relative subject path
- const subRelativePath = '/' + subject
-
- // get list of file paths for this subject and session
- const pathList = []
- for (let file of Object.values(fileList)) {
- const fPath = file.relativePath
-
- // XXX: needs to be improved, since this currently allows arbitrary directory nesting
- // dataset file needs to be within the subject
- // and session directory
- if (fPath.startsWith(subRelativePath)) {
- if (fPath.includes('.ds/') || fPath.includes('_meg/')) {
- // CTF or BTI data
- const fDir = path.dirname(fPath)
- pathList.push(fDir)
- } else if (fPath.includes('_ieeg.mefd/')) {
- // MEF3 data
- const fDir = fPath.substring(0, fPath.indexOf('_ieeg.mefd/') + 10)
- if (!pathList.includes(fDir)) {
- pathList.push(fDir)
- }
- } else {
- // all other data kinds
- pathList.push(fPath)
- }
- }
- }
-
- // check _scans.tsv for column filename
- if (!(headers.indexOf('filename') > -1)) {
- issues.push(
- new Issue({
- line: 1,
- file: file,
- evidence: headersEvidence(headers),
- code: 68,
- }),
- )
- } else {
- // check scans filenames match pathList
- const filenameColumn = headers.indexOf('filename')
- for (let l = 1; l < rows.length; l++) {
- const row = rows[l]
- const scanRelativePath = row[filenameColumn]
- const scanFullPath = scanDirPath + '/' + scanRelativePath
-
- // check if scan matches full dataset path list
- if (!pathList.includes(scanFullPath)) {
- issues.push(
- new Issue({
- line: l,
- file: file,
- code: 129,
- evidence: filenameEvidence(scanFullPath),
- }),
- )
- }
- }
- }
-
- // if _scans.tsv has the acq_time header, check datetime format
- if (headers.indexOf('acq_time') > -1) {
- checkAcqTimeFormat(rows, file, issues)
- }
- }
- callback(issues, participants, stimPaths)
-}
-export default TSV
diff --git a/bids-validator/validators/tsv/tsvParser.js b/bids-validator/validators/tsv/tsvParser.js
deleted file mode 100644
index 06343a8c..00000000
--- a/bids-validator/validators/tsv/tsvParser.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * TSV
- * Module for parsing TSV (and eventually other formats)
- */
-
-const stripBOM = (str) => str.replace(/^\uFEFF/, '')
-const normalizeEOL = (str) => str.replace(/\r\n/g, '\n').replace(/\r/g, '\n')
-const isContentfulRow = (row) => row && !/^\s*$/.test(row)
-
-function parseTSV(contents) {
- const content = {
- headers: [],
- rows: [],
- }
- contents = stripBOM(contents)
- content.rows = normalizeEOL(contents)
- .split('\n')
- .filter(isContentfulRow)
- .map((str) => str.split('\t'))
- content.headers = content.rows.length ? content.rows[0] : []
- return content
-}
-
-export default parseTSV
diff --git a/bids-validator/validators/tsv/validate.js b/bids-validator/validators/tsv/validate.js
deleted file mode 100644
index dba18e7a..00000000
--- a/bids-validator/validators/tsv/validate.js
+++ /dev/null
@@ -1,69 +0,0 @@
-import utils from '../../utils'
-import tsv from './tsv'
-
-const validate = (
- files,
- fileList,
- tsvs,
- events,
- participants,
- phenotypeParticipants,
- stimuli,
- annexed,
- dir,
-) => {
- let issues = []
- let participantsTsvContent = ''
- // validate tsv
- const tsvPromises = files.map(function (file) {
- return utils.limit(() =>
- utils.files.readFile(file, annexed, dir).then((contents) => {
- // Push TSV to list for custom column verification after all data dictionaries have been read
- tsvs.push({
- file: file,
- contents: contents,
- })
- if (file.name.endsWith('_events.tsv')) {
- events.push({
- file: file,
- path: file.relativePath,
- contents: contents,
- })
- }
- tsv(
- file,
- contents,
- fileList,
- function (tsvIssues, participantList, stimFiles) {
- if (participantList) {
- if (file.name.endsWith('participants.tsv')) {
- participants = {
- list: participantList,
- file: file,
- }
- // save content for metadata extraction
- participantsTsvContent = contents
- } else if (file.relativePath.includes('phenotype/')) {
- phenotypeParticipants.push({
- list: participantList,
- file: file,
- })
- }
- }
- if (stimFiles && stimFiles.length) {
- // add unique new events to the stimuli.events array
- stimuli.events = [...new Set([...stimuli.events, ...stimFiles])]
- }
- issues = issues.concat(tsvIssues)
- },
- )
- }),
- )
- })
- return Promise.all(tsvPromises).then(() => ({
- tsvIssues: issues,
- participantsTsvContent,
- }))
-}
-
-export default validate
diff --git a/bids-validator/validators/tsv/validateContRecordings.js b/bids-validator/validators/tsv/validateContRecordings.js
deleted file mode 100644
index 1b8725ea..00000000
--- a/bids-validator/validators/tsv/validateContRecordings.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-
-/**
- * Ensures that all continuous recording files have a corresponding json
- * file. The required fields are verified during json validation.
- * Further validation could be done here by extracting the tsv and
- * checking that the column count matches the length of the Names array
- * from the metadata.
- *
- * @param {Object[]} contRecordings - Array of continuous recording file
- * objects.
- * @param {Object[]} jsonContentsDict - content of all json files found.
- * @returns {Object[]} Array of issues generated during validation.
- */
-const validateContRec = function (contRecordings, jsonContentsDict) {
- const issues = []
- contRecordings.map((contRecording) => {
- // Get merged data dictionary for this file
- const potentialSidecars = utils.files.potentialLocations(
- contRecording.relativePath.replace('.tsv.gz', '.json'),
- )
-
- const mergedDictionary = utils.files.generateMergedSidecarDict(
- potentialSidecars,
- jsonContentsDict,
- )
- if (Object.values(mergedDictionary).length === 0) {
- issues.push(
- new Issue({
- file: contRecording,
- code: 170,
- }),
- )
- }
- })
- return issues
-}
-
-export default validateContRec
diff --git a/bids-validator/validators/tsv/validateTsvColumns.js b/bids-validator/validators/tsv/validateTsvColumns.js
deleted file mode 100644
index 9d511479..00000000
--- a/bids-validator/validators/tsv/validateTsvColumns.js
+++ /dev/null
@@ -1,419 +0,0 @@
-import utils from '../../utils'
-const Issue = utils.issues.Issue
-import nonCustomColumns from '../../bids_validator/tsv/non_custom_columns.json'
-
-/**
- * @param {Object} file - BIDS file object
- * Accepts file object and returns a type based on file path
- */
-export const getTsvType = function (file) {
- let tsvType = 'misc'
- if (file.relativePath.includes('phenotype/')) {
- tsvType = 'phenotype'
- } else if (file.name === 'participants.tsv') {
- tsvType = 'participants'
- } else if (
- file.name.endsWith('_channels.tsv') ||
- file.name.endsWith('_electrodes.tsv') ||
- file.name.endsWith('_events.tsv') ||
- file.name.endsWith('_scans.tsv') ||
- file.name.endsWith('_sessions.tsv') ||
- file.name.endsWith('_aslcontext.tsv') ||
- file.name.endsWith('_blood.tsv') ||
- file.name.endsWith('_optodes.tsv')
- ) {
- const split = file.name.split('_')
- tsvType = split[split.length - 1].replace('.tsv', '')
- }
- return tsvType
-}
-
-const getHeaders = (tsvContents) =>
- tsvContents
- .replace(/^\uefff/, '')
- .split('\n')[0]
- .trim()
- .split('\t')
-
-/**
- *
- * @param {array} headers -Array of column names
- * @param {string} type - Type from getTsvType
- * Checks TSV column names to determine if they're core or custom
- * Returns array of custom column names
- */
-const getCustomColumns = function (headers, type) {
- const customCols = []
- // Iterate column headers
- for (let col of headers) {
- // If it's a custom column
- if (!nonCustomColumns[type].includes(col)) {
- customCols.push(col)
- }
- }
- return customCols
-}
-const commaSeparatedStringOf = (items) =>
- items.map((item) => `"${item}"`).join(', ')
-
-/**
- * Loads relevant JSON schema for given tsv modalities.
- * Currently only required for pet_blood.
- * @param {*} tsvs
- * @returns
- */
-const loadSchemas = (tsvs) => {
- const schemas = {}
- const getSchemaByType = {
- blood: () => require('../json/schemas/pet_blood.json'),
- }
- const types = new Set(tsvs.map((tsv) => getTsvType(tsv.file)))
- types.forEach((type) => {
- if (getSchemaByType.hasOwnProperty(type)) {
- schemas[type] = getSchemaByType[type]()
- }
- })
- return schemas
-}
-
-/**
- *
- * @param {array} tsvs - Array of objects containing TSV file objects and contents
- * @param {Object} jsonContentsDict
- */
-const validateTsvColumns = function (tsvs, jsonContentsDict, headers) {
- const tsvIssues = []
- const schemas = loadSchemas(tsvs)
-
- tsvs.map((tsv) => {
- const tsvType = getTsvType(tsv.file)
- const customColumns = getCustomColumns(getHeaders(tsv.contents), tsvType)
- const isPetBlood = tsvType === 'blood'
- if (customColumns.length > 0 || isPetBlood) {
- // Get merged data dictionary for this file
- const potentialSidecars = utils.files.potentialLocations(
- tsv.file.relativePath.replace('.tsv', '.json'),
- )
- const mergedDict = utils.files.generateMergedSidecarDict(
- potentialSidecars,
- jsonContentsDict,
- )
- const keys = Object.keys(mergedDict)
- // Gather undefined columns for the file
- const undefinedCols = customColumns.filter((col) => !keys.includes(col))
- // Create an issue for all undefined columns in this file
- undefinedCols.length &&
- tsvIssues.push(
- customColumnIssue(
- tsv.file,
- undefinedCols.join(', '),
- potentialSidecars,
- ),
- )
-
- if (isPetBlood) {
- // Check PET tsv headers required by json sidecar
- const petBloodHeaderIssues = validatePetBloodHeaders(
- tsv,
- mergedDict,
- schemas['blood'],
- )
- tsvIssues.push(...petBloodHeaderIssues)
- }
- }
- })
- // Return array of all instances of undescribed custom columns
-
- // Manage custom instances made from asl_context
- const aslTsvIssues = validateASL(tsvs, jsonContentsDict, headers)
- tsvIssues.push(...aslTsvIssues)
-
- return tsvIssues
-}
-
-/**
- * Validates that tsv columns required by
- * @param {*} tsv
- * @param {*} mergedDict
- * @param {*} schema
- * @returns
- */
-export const validatePetBloodHeaders = (tsv, mergedDict, schema) => {
- const tsvIssues = []
- const headers = getHeaders(tsv.contents)
-
- // Collect required headers and the JSON sidecar properties that require them.
- const requiredHeaders = {}
- Object.entries(schema.properties).forEach(([property, subSchema]) => {
- if (
- subSchema.hasOwnProperty('requires_tsv_non_custom_columns') &&
- mergedDict[property] === true
- ) {
- subSchema.requires_tsv_non_custom_columns.forEach((header) => {
- if (header in requiredHeaders) {
- requiredHeaders[header].push(property)
- } else {
- requiredHeaders[header] = [property]
- }
- })
- }
- })
- Object.entries(requiredHeaders).forEach(([requiredHeader, requiredBy]) => {
- if (!headers.includes(requiredHeader)) {
- tsvIssues.push(
- new Issue({
- code: 211,
- file: tsv.file,
- evidence: `${tsv.file.name} has headers: ${commaSeparatedStringOf(
- headers,
- )}; missing header "${requiredHeader}", which is required when any of the properties (${commaSeparatedStringOf(
- requiredBy,
- )}) are true in the associated JSON sidecar.`,
- }),
- )
- }
- })
- return tsvIssues
-}
-
-const validateASL = (tsvs, jsonContentsDict, headers) => {
- const tsvIssues = []
- // Manage custom instances from asl_context tsv files
- // get all headers associated with asl_context data
- tsvs.map((tsv) => {
- const aslHeaders = headers.filter((header) => {
- const file = header[0]
- return file.relativePath.includes('_asl')
- })
-
- aslHeaders.forEach((aslHeader) => {
- // extract the fourth element of 'dim' field of header - this is the
- // number of volumes that were obtained during scan (numVols)
- const file = aslHeader[0]
- const header = aslHeader[1]
- const dim = header.dim
- const numVols = dim[4]
-
- // get the _asl_context.tsv associated with this asl scan
- const potentialAslContext = utils.files.potentialLocations(
- file.relativePath
- .replace('.gz', '')
- .replace('asl.nii', 'aslcontext.tsv'),
- )
- const associatedAslContext = potentialAslContext.indexOf(
- tsv.file.relativePath,
- )
-
- if (associatedAslContext > -1) {
- const rows = tsv.contents
- .replace(/[\r]+/g, '')
- .split('\n')
- .filter((row) => !(!row || /^\s*$/.test(row)))
-
- const m0scan_filters = ['m0scan']
- const filtered_m0scan_rows = rows.filter((row) =>
- m0scan_filters.includes(row),
- )
-
- const asl_filters = [
- 'cbf',
- 'm0scan',
- 'label',
- 'control',
- 'deltam',
- 'volume_type',
- ]
- const filtered_tsv_rows = rows.filter((row) =>
- asl_filters.includes(row),
- )
- if (rows.length != filtered_tsv_rows.length) {
- tsvIssues.push(
- new Issue({
- code: 176,
- file: file,
- }),
- )
- }
-
- if (rows.length - 1 != numVols) {
- tsvIssues.push(
- new Issue({
- code: 165,
- file: file,
- }),
- )
- }
-
- // get the json sidecar dictionary associated with that nifti scan
- var potentialSidecars = utils.files.potentialLocations(
- tsv.file.relativePath.replace('aslcontext.tsv', 'asl.json'),
- )
-
- // get merged data dictionary for this file
- const mergedDict = utils.files.generateMergedSidecarDict(
- potentialSidecars,
- jsonContentsDict,
- )
-
- // check M0Type and tsv list for m0scan in case of an Included M0Type
- if (
- mergedDict.hasOwnProperty('M0Type') &&
- mergedDict['M0Type'] === 'Included' &&
- filtered_m0scan_rows.length < 1
- ) {
- tsvIssues.push(
- new Issue({
- file: file,
- code: 154,
- reason:
- "''M0Type' is set to 'Included' however the tsv file does not contain any m0scan volume.",
- }),
- )
- }
- // check M0Type and tsv list for m0scan in case of an Absent M0Type
- if (
- mergedDict.hasOwnProperty('M0Type') &&
- mergedDict['M0Type'] === 'Absent' &&
- filtered_m0scan_rows.length >= 1
- ) {
- tsvIssues.push(
- new Issue({
- file: file,
- code: 199,
- reason:
- "''M0Type' is set to 'Absent' however the tsv file contains an m0scan volume. This should be avoided.",
- }),
- )
- }
-
- // check Flip Angle requirements with LookLocker acquisitions
- if (
- mergedDict.hasOwnProperty('FlipAngle') &&
- mergedDict['FlipAngle'].constructor === Array
- ) {
- let FlipAngle = mergedDict['FlipAngle']
- const FlipAngleLength = FlipAngle.length
- if (FlipAngleLength !== rows.length - 1) {
- tsvIssues.push(
- new Issue({
- file: file,
- code: 172,
- reason:
- "''FlipAngle' for this file does not match the TSV length. Please make sure that the size of the FlipAngle array in the json corresponds to the number of volume listed in the tsv file.",
- }),
- )
- }
- }
- // check Labelling Duration matching with TSV length only for PCASL or CASL
- if (
- mergedDict.hasOwnProperty('LabelingDuration') &&
- mergedDict['LabelingDuration'].constructor === Array &&
- mergedDict.hasOwnProperty('ArterialSpinLabelingType') &&
- (mergedDict['ArterialSpinLabelingType'] == 'CASL' ||
- mergedDict['ArterialSpinLabelingType'] == 'PCASL')
- ) {
- let LabelingDuration = mergedDict['LabelingDuration']
- const LabelingDurationLength = LabelingDuration.length
- if (LabelingDurationLength !== rows.length - 1) {
- tsvIssues.push(
- new Issue({
- file: file,
- code: 175,
- reason:
- "''LabelingDuration' for this file does not match the TSV length. Please be sure that the size of the LabelingDuration array in the json corresponds to the number of volume listed in the tsv file.",
- }),
- )
- }
- }
-
- // check VolumeTiming with TSV length
- if (
- mergedDict.hasOwnProperty('RepetitionTimePreparation') &&
- mergedDict['RepetitionTimePreparation'].constructor === Array
- ) {
- let RepetitionTimePreparation =
- mergedDict['RepetitionTimePreparation']
- const RepetitionTimePreparationLength =
- RepetitionTimePreparation.length
- if (RepetitionTimePreparationLength !== rows.length - 1) {
- tsvIssues.push(
- new Issue({
- file: file,
- code: 177,
- reason:
- "''RepetitionTimePreparation' for this file do not match the TSV length. Please be sure that the size of the RepetitionTimePreparation array in the json corresponds to the number of volume listed in the tsv file.",
- }),
- )
- }
- }
-
- // check Post Labelling Delays matching with TSV length
- if (
- mergedDict.hasOwnProperty('PostLabelingDelay') &&
- mergedDict['PostLabelingDelay'].constructor === Array
- ) {
- let PostLabelingDelay = mergedDict['PostLabelingDelay']
- const PostLabelingDelayLength = PostLabelingDelay.length
- if (PostLabelingDelayLength !== rows.length - 1) {
- tsvIssues.push(
- new Issue({
- file: file,
- code: 174,
- reason:
- "''PostLabelingDelay' for this file do not match the TSV length. Please be sure that the size of the PostLabelingDelay array in the json corresponds to the number of volume listed in the tsv file.",
- }),
- )
- }
- }
-
- if (mergedDict.hasOwnProperty('TotalAcquiredVolumes')) {
- let TotalAcquiredVolumes = mergedDict['TotalAcquiredVolumes']
- const TotalAcquiredVolumesLength = TotalAcquiredVolumes.length
- if (TotalAcquiredVolumesLength !== rows.length - 1) {
- tsvIssues.push(
- new Issue({
- file: file,
- code: 181,
- reason:
- "''TotalAcquiredVolumes' for this file do not match the TSV length. Please be sure that the size of the TotalAcquiredVolumes array in the json corresponds to the number of volume listed in the tsv file.",
- }),
- )
- }
- }
-
- if (
- mergedDict.hasOwnProperty('EchoTime') &&
- mergedDict['EchoTime'].constructor === Array
- ) {
- let EchoTime = mergedDict['EchoTime']
- const EchoTimeLength = EchoTime.length
- if (EchoTimeLength !== rows.length - 1) {
- tsvIssues.push(
- new Issue({
- file: file,
- code: 196,
- reason:
- "''EchoTime' for this file do not match the TSV length. Please be sure that the size of the EchoTime array in the json corresponds to the number of volume listed in the tsv file.",
- }),
- )
- }
- }
- }
- })
- })
- return tsvIssues
-}
-
-const customColumnIssue = function (file, col, locations) {
- return new Issue({
- code: 82,
- file: file,
- evidence:
- 'Columns: ' +
- col +
- ' not defined, please define in: ' +
- locations.toString().replace(',', ', '),
- })
-}
-
-export default validateTsvColumns
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
index 4ae55d50..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "packages": ["bids-validator", "bids-validator-web"],
- "version": "1.14.15-dev.0"
-}
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 11c68edd..00000000
--- a/package-lock.json
+++ /dev/null
@@ -1,33407 +0,0 @@
-{
- "name": "bids-validator-monorepo",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "bids-validator-monorepo",
- "workspaces": [
- "bids-validator",
- "bids-validator-web"
- ],
- "devDependencies": {
- "@babel/core": "^7.22.10",
- "@babel/preset-env": "^7.22.10",
- "codecov": "^3.8.1",
- "eslint": "^8.57.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
- "husky": "^9.1.6",
- "jest": "^29.7.0",
- "jest-environment-jsdom": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "lerna": "^8.1.8",
- "prettier": "^3.3.3",
- "pretty-quick": "^4.0.0"
- }
- },
- "bids-validator": {
- "version": "1.14.15-dev.0",
- "license": "MIT",
- "dependencies": {
- "@aws-sdk/client-s3": "^3.637.0",
- "ajv": "^6.5.2",
- "bytes": "^3.1.2",
- "colors": "^1.4.0",
- "cross-fetch": "^4.0.0",
- "date-fns": "^4.1.0",
- "events": "^3.3.0",
- "exifreader": "^4.23.7",
- "hed-validator": "^3.15.4",
- "ignore": "^6.0.2",
- "is-utf8": "^0.2.1",
- "jest": "^29.7.0",
- "jshint": "^2.13.6",
- "lerna": "^8.1.8",
- "lodash": "^4.17.21",
- "minimatch": "3.0.5",
- "next": "14.2.13",
- "nifti-js": "^1.0.1",
- "p-limit": "^2.1.0",
- "pako": "^1.0.6",
- "path": "^0.12.7",
- "pluralize": "^8.0.0",
- "semver": "^7.6.3",
- "stream-browserify": "^3.0.0",
- "table": "^6.8.2",
- "util": "^0.12.5",
- "xml2js": "^0.6.2",
- "yaml": "^2.3.1",
- "yargs": "^17.7.2"
- },
- "bin": {
- "bids-validator": "bin/bids-validator"
- },
- "devDependencies": {
- "adm-zip": "",
- "chai": "",
- "esbuild": "^0.24.0",
- "esbuild-plugin-globals": "^0.2.0",
- "esbuild-runner": "^2.2.2",
- "eslint": "^8.57.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
- "husky": "^9.1.6",
- "lockfile": "^1.0.4",
- "sync-request": "6.1.0"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "bids-validator-web": {
- "version": "1.14.15-dev.0",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.22.10",
- "bootstrap": "^5.3.3",
- "eslint-config-next": "^14.2.13",
- "next": "^14.0.0",
- "pluralize": "^8.0.0",
- "react": "^18.3.1",
- "react-bootstrap": "^2.10.5",
- "react-dom": "^18.3.1",
- "sass": "^1.79.4"
- },
- "devDependencies": {
- "@next/eslint-plugin-next": "^14.2.13"
- }
- },
- "bids-validator/node_modules/date-fns": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
- "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "bids-validator/node_modules/ignore": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz",
- "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==",
- "engines": {
- "node": ">= 4"
- }
- },
- "bids-validator/node_modules/yaml": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
- "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@aashutoshrathi/word-wrap": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
- "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@aws-crypto/crc32": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
- "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
- "dependencies": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-crypto/crc32c": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz",
- "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==",
- "dependencies": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@aws-crypto/sha1-browser": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz",
- "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==",
- "dependencies": {
- "@aws-crypto/supports-web-crypto": "^5.2.0",
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "@aws-sdk/util-locate-window": "^3.0.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
- "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
- "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
- "dependencies": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
- "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
- "dependencies": {
- "@smithy/util-buffer-from": "^2.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/sha256-browser": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
- "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
- "dependencies": {
- "@aws-crypto/sha256-js": "^5.2.0",
- "@aws-crypto/supports-web-crypto": "^5.2.0",
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "@aws-sdk/util-locate-window": "^3.0.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
- "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
- "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
- "dependencies": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
- "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
- "dependencies": {
- "@smithy/util-buffer-from": "^2.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/sha256-js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
- "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
- "dependencies": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-crypto/supports-web-crypto": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
- "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
- "dependencies": {
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@aws-crypto/util": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz",
- "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
- "dependencies": {
- "@aws-sdk/types": "^3.222.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
- "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
- "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
- "dependencies": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
- "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
- "dependencies": {
- "@smithy/util-buffer-from": "^2.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-sdk/client-s3": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.637.0.tgz",
- "integrity": "sha512-y6UC94fsMvhKbf0dzfnjVP1HePeGjplfcYfilZU1COIJLyTkMcUv4XcT4I407CGIrvgEafONHkiC09ygqUauNA==",
- "dependencies": {
- "@aws-crypto/sha1-browser": "5.2.0",
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/client-sso-oidc": "3.637.0",
- "@aws-sdk/client-sts": "3.637.0",
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/credential-provider-node": "3.637.0",
- "@aws-sdk/middleware-bucket-endpoint": "3.620.0",
- "@aws-sdk/middleware-expect-continue": "3.620.0",
- "@aws-sdk/middleware-flexible-checksums": "3.620.0",
- "@aws-sdk/middleware-host-header": "3.620.0",
- "@aws-sdk/middleware-location-constraint": "3.609.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.620.0",
- "@aws-sdk/middleware-sdk-s3": "3.635.0",
- "@aws-sdk/middleware-ssec": "3.609.0",
- "@aws-sdk/middleware-user-agent": "3.637.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/signature-v4-multi-region": "3.635.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@aws-sdk/xml-builder": "3.609.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.4.0",
- "@smithy/eventstream-serde-browser": "^3.0.6",
- "@smithy/eventstream-serde-config-resolver": "^3.0.3",
- "@smithy/eventstream-serde-node": "^3.0.5",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/hash-blob-browser": "^3.1.2",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/hash-stream-node": "^3.1.2",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/md5-js": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.5",
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.15",
- "@smithy/util-defaults-mode-node": "^3.0.15",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-stream": "^3.1.3",
- "@smithy/util-utf8": "^3.0.0",
- "@smithy/util-waiter": "^3.1.2",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/client-sso": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.637.0.tgz",
- "integrity": "sha512-+KjLvgX5yJYROWo3TQuwBJlHCY0zz9PsLuEolmXQn0BVK1L/m9GteZHtd+rEdAoDGBpE0Xqjy1oz5+SmtsaRUw==",
- "dependencies": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/middleware-host-header": "3.620.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.620.0",
- "@aws-sdk/middleware-user-agent": "3.637.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.4.0",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.5",
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.15",
- "@smithy/util-defaults-mode-node": "^3.0.15",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/client-sso-oidc": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.637.0.tgz",
- "integrity": "sha512-27bHALN6Qb6m6KZmPvRieJ/QRlj1lyac/GT2Rn5kJpre8Mpp+yxrtvp3h9PjNBty4lCeFEENfY4dGNSozBuBcw==",
- "dependencies": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/credential-provider-node": "3.637.0",
- "@aws-sdk/middleware-host-header": "3.620.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.620.0",
- "@aws-sdk/middleware-user-agent": "3.637.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.4.0",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.5",
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.15",
- "@smithy/util-defaults-mode-node": "^3.0.15",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sts": "^3.637.0"
- }
- },
- "node_modules/@aws-sdk/client-sts": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.637.0.tgz",
- "integrity": "sha512-xUi7x4qDubtA8QREtlblPuAcn91GS/09YVEY/RwU7xCY0aqGuFwgszAANlha4OUIqva8oVj2WO4gJuG+iaSnhw==",
- "dependencies": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/client-sso-oidc": "3.637.0",
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/credential-provider-node": "3.637.0",
- "@aws-sdk/middleware-host-header": "3.620.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.620.0",
- "@aws-sdk/middleware-user-agent": "3.637.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.4.0",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.5",
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.15",
- "@smithy/util-defaults-mode-node": "^3.0.15",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/core": {
- "version": "3.635.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.635.0.tgz",
- "integrity": "sha512-i1x/E/sgA+liUE1XJ7rj1dhyXpAKO1UKFUcTTHXok2ARjWTvszHnSXMOsB77aPbmn0fUp1JTx2kHUAZ1LVt5Bg==",
- "dependencies": {
- "@smithy/core": "^2.4.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/signature-v4": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-middleware": "^3.0.3",
- "fast-xml-parser": "4.4.1",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.620.1",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz",
- "integrity": "sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/credential-provider-http": {
- "version": "3.635.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.635.0.tgz",
- "integrity": "sha512-iJyRgEjOCQlBMXqtwPLIKYc7Bsc6nqjrZybdMDenPDa+kmLg7xh8LxHsu9088e+2/wtLicE34FsJJIfzu3L82g==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.1.3",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.637.0.tgz",
- "integrity": "sha512-h+PFCWfZ0Q3Dx84SppET/TFpcQHmxFW8/oV9ArEvMilw4EBN+IlxgbL0CnHwjHW64szcmrM0mbebjEfHf4FXmw==",
- "dependencies": {
- "@aws-sdk/credential-provider-env": "3.620.1",
- "@aws-sdk/credential-provider-http": "3.635.0",
- "@aws-sdk/credential-provider-process": "3.620.1",
- "@aws-sdk/credential-provider-sso": "3.637.0",
- "@aws-sdk/credential-provider-web-identity": "3.621.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/credential-provider-imds": "^3.2.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sts": "^3.637.0"
- }
- },
- "node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.637.0.tgz",
- "integrity": "sha512-yoEhoxJJfs7sPVQ6Is939BDQJZpZCoUgKr/ySse4YKOZ24t4VqgHA6+wV7rYh+7IW24Rd91UTvEzSuHYTlxlNA==",
- "dependencies": {
- "@aws-sdk/credential-provider-env": "3.620.1",
- "@aws-sdk/credential-provider-http": "3.635.0",
- "@aws-sdk/credential-provider-ini": "3.637.0",
- "@aws-sdk/credential-provider-process": "3.620.1",
- "@aws-sdk/credential-provider-sso": "3.637.0",
- "@aws-sdk/credential-provider-web-identity": "3.621.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/credential-provider-imds": "^3.2.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.620.1",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz",
- "integrity": "sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.637.0.tgz",
- "integrity": "sha512-Mvz+h+e62/tl+dVikLafhv+qkZJ9RUb8l2YN/LeKMWkxQylPT83CPk9aimVhCV89zth1zpREArl97+3xsfgQvA==",
- "dependencies": {
- "@aws-sdk/client-sso": "3.637.0",
- "@aws-sdk/token-providers": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.621.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz",
- "integrity": "sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sts": "^3.621.0"
- }
- },
- "node_modules/@aws-sdk/middleware-bucket-endpoint": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.620.0.tgz",
- "integrity": "sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-arn-parser": "3.568.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-expect-continue": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.620.0.tgz",
- "integrity": "sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-flexible-checksums": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.620.0.tgz",
- "integrity": "sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA==",
- "dependencies": {
- "@aws-crypto/crc32": "5.2.0",
- "@aws-crypto/crc32c": "5.2.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/is-array-buffer": "^3.0.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-host-header": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz",
- "integrity": "sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-location-constraint": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz",
- "integrity": "sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-logger": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz",
- "integrity": "sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-recursion-detection": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz",
- "integrity": "sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-sdk-s3": {
- "version": "3.635.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.635.0.tgz",
- "integrity": "sha512-RLdYJPEV4JL/7NBoFUs7VlP90X++5FlJdxHz0DzCjmiD3qCviKy+Cym3qg1gBgHwucs5XisuClxDrGokhAdTQw==",
- "dependencies": {
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-arn-parser": "3.568.0",
- "@smithy/core": "^2.4.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/signature-v4": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-stream": "^3.1.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-ssec": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.609.0.tgz",
- "integrity": "sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-user-agent": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.637.0.tgz",
- "integrity": "sha512-EYo0NE9/da/OY8STDsK2LvM4kNa79DBsf4YVtaG4P5pZ615IeFsD8xOHZeuJmUrSMlVQ8ywPRX7WMucUybsKug==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/region-config-resolver": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz",
- "integrity": "sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/signature-v4-multi-region": {
- "version": "3.635.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.635.0.tgz",
- "integrity": "sha512-J6QY4/invOkpogCHjSaDON1hF03viPpOnsrzVuCvJMmclS/iG62R4EY0wq1alYll0YmSdmKlpJwHMWwGtqK63Q==",
- "dependencies": {
- "@aws-sdk/middleware-sdk-s3": "3.635.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/signature-v4": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/token-providers": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz",
- "integrity": "sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sso-oidc": "^3.614.0"
- }
- },
- "node_modules/@aws-sdk/types": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.609.0.tgz",
- "integrity": "sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/util-arn-parser": {
- "version": "3.568.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz",
- "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/util-endpoints": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.637.0.tgz",
- "integrity": "sha512-pAqOKUHeVWHEXXDIp/qoMk/6jyxIb6GGjnK1/f8dKHtKIEs4tKsnnL563gceEvdad53OPXIt86uoevCcCzmBnw==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-endpoints": "^2.0.5",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/util-locate-window": {
- "version": "3.568.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz",
- "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/util-user-agent-browser": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz",
- "integrity": "sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "bowser": "^2.11.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@aws-sdk/util-user-agent-node": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz",
- "integrity": "sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA==",
- "dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "aws-crt": ">=1.0.0"
- },
- "peerDependenciesMeta": {
- "aws-crt": {
- "optional": true
- }
- }
- },
- "node_modules/@aws-sdk/xml-builder": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz",
- "integrity": "sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
- "dependencies": {
- "@babel/highlight": "^7.22.13",
- "chalk": "^2.4.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz",
- "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz",
- "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==",
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.10",
- "@babel/generator": "^7.22.10",
- "@babel/helper-compilation-targets": "^7.22.10",
- "@babel/helper-module-transforms": "^7.22.9",
- "@babel/helpers": "^7.22.10",
- "@babel/parser": "^7.22.10",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.10",
- "@babel/types": "^7.22.10",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
- "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
- "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-annotate-as-pure": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
- "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz",
- "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz",
- "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==",
- "dependencies": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-validator-option": "^7.22.5",
- "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",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- },
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz",
- "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz",
- "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "regexpu-core": "^5.3.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz",
- "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.22.6",
- "@babel/helper-plugin-utils": "^7.22.5",
- "debug": "^4.1.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
- "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
- "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz",
- "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
- "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz",
- "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==",
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
- "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz",
- "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-wrap-function": "^7.22.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz",
- "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
- "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
- "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-wrap-function": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz",
- "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-function-name": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.10"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz",
- "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==",
- "dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.10",
- "@babel/types": "^7.22.10"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
- "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/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz",
- "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz",
- "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.13.0"
- }
- },
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.21.0-placeholder-for-preset-env.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
- "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dev": true,
- "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-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.3"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
- "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
- "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz",
- "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dev": true,
- "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-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "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",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz",
- "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
- "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
- "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz",
- "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.9",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
- "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
- "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz",
- "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
- "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz",
- "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0"
- }
- },
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz",
- "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.6",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
- "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/template": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz",
- "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
- "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
- "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz",
- "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
- "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz",
- "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz",
- "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
- "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz",
- "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
- "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz",
- "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
- "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz",
- "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz",
- "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz",
- "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
- "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
- "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-new-target": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
- "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz",
- "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz",
- "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz",
- "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-object-super": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
- "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz",
- "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz",
- "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-parameters": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz",
- "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
- "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz",
- "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
- "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz",
- "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "regenerator-transform": "^0.15.2"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
- "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
- "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
- "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
- "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
- "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
- "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz",
- "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
- "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
- "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
- "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/preset-env": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz",
- "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-compilation-targets": "^7.22.10",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5",
- "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.22.5",
- "@babel/plugin-syntax-import-attributes": "^7.22.5",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@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-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.22.5",
- "@babel/plugin-transform-async-generator-functions": "^7.22.10",
- "@babel/plugin-transform-async-to-generator": "^7.22.5",
- "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
- "@babel/plugin-transform-block-scoping": "^7.22.10",
- "@babel/plugin-transform-class-properties": "^7.22.5",
- "@babel/plugin-transform-class-static-block": "^7.22.5",
- "@babel/plugin-transform-classes": "^7.22.6",
- "@babel/plugin-transform-computed-properties": "^7.22.5",
- "@babel/plugin-transform-destructuring": "^7.22.10",
- "@babel/plugin-transform-dotall-regex": "^7.22.5",
- "@babel/plugin-transform-duplicate-keys": "^7.22.5",
- "@babel/plugin-transform-dynamic-import": "^7.22.5",
- "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
- "@babel/plugin-transform-export-namespace-from": "^7.22.5",
- "@babel/plugin-transform-for-of": "^7.22.5",
- "@babel/plugin-transform-function-name": "^7.22.5",
- "@babel/plugin-transform-json-strings": "^7.22.5",
- "@babel/plugin-transform-literals": "^7.22.5",
- "@babel/plugin-transform-logical-assignment-operators": "^7.22.5",
- "@babel/plugin-transform-member-expression-literals": "^7.22.5",
- "@babel/plugin-transform-modules-amd": "^7.22.5",
- "@babel/plugin-transform-modules-commonjs": "^7.22.5",
- "@babel/plugin-transform-modules-systemjs": "^7.22.5",
- "@babel/plugin-transform-modules-umd": "^7.22.5",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
- "@babel/plugin-transform-new-target": "^7.22.5",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5",
- "@babel/plugin-transform-numeric-separator": "^7.22.5",
- "@babel/plugin-transform-object-rest-spread": "^7.22.5",
- "@babel/plugin-transform-object-super": "^7.22.5",
- "@babel/plugin-transform-optional-catch-binding": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.10",
- "@babel/plugin-transform-parameters": "^7.22.5",
- "@babel/plugin-transform-private-methods": "^7.22.5",
- "@babel/plugin-transform-private-property-in-object": "^7.22.5",
- "@babel/plugin-transform-property-literals": "^7.22.5",
- "@babel/plugin-transform-regenerator": "^7.22.10",
- "@babel/plugin-transform-reserved-words": "^7.22.5",
- "@babel/plugin-transform-shorthand-properties": "^7.22.5",
- "@babel/plugin-transform-spread": "^7.22.5",
- "@babel/plugin-transform-sticky-regex": "^7.22.5",
- "@babel/plugin-transform-template-literals": "^7.22.5",
- "@babel/plugin-transform-typeof-symbol": "^7.22.5",
- "@babel/plugin-transform-unicode-escapes": "^7.22.10",
- "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
- "@babel/preset-modules": "0.1.6-no-external-plugins",
- "@babel/types": "^7.22.10",
- "babel-plugin-polyfill-corejs2": "^0.4.5",
- "babel-plugin-polyfill-corejs3": "^0.8.3",
- "babel-plugin-polyfill-regenerator": "^0.5.2",
- "core-js-compat": "^3.31.0",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/preset-env/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/preset-modules": {
- "version": "0.1.6-no-external-plugins",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
- "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/@babel/regjsgen": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
- "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
- "dev": true
- },
- "node_modules/@babel/runtime": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz",
- "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
- "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
- "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.2",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
- "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
- "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/types": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
- "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
- "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",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
- },
- "node_modules/@emnapi/core": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.2.0.tgz",
- "integrity": "sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==",
- "dependencies": {
- "@emnapi/wasi-threads": "1.0.1",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@emnapi/runtime": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz",
- "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==",
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@emnapi/wasi-threads": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz",
- "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==",
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz",
- "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz",
- "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz",
- "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz",
- "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz",
- "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz",
- "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz",
- "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz",
- "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz",
- "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz",
- "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz",
- "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz",
- "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz",
- "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz",
- "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz",
- "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz",
- "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz",
- "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz",
- "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz",
- "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz",
- "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz",
- "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz",
- "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz",
- "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz",
- "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
- "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.11.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
- "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==",
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
- "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/eslintrc/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.23.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
- "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/js": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
- "dependencies": {
- "@humanwhocodes/object-schema": "^2.0.2",
- "debug": "^4.3.1",
- "minimatch": "^3.0.5"
- },
- "engines": {
- "node": ">=10.10.0"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw=="
- },
- "node_modules/@hutson/parse-repository-url": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz",
- "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "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",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "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",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "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",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
- },
- "node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "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",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "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",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "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/@isaacs/string-locale-compare": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz",
- "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ=="
- },
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "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/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/console": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/console/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/console/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/@jest/console/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/console/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/console/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/console/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/core": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/reporters": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.7.0",
- "jest-config": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-resolve-dependencies": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/core/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/core/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/@jest/core/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/core/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/core/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/core/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/environment": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
- "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
- "dependencies": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
- "dependencies": {
- "expect": "^29.7.0",
- "jest-snapshot": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/expect-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
- "dependencies": {
- "jest-get-type": "^29.6.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/fake-timers": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
- "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
- "@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/globals": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/types": "^29.6.3",
- "jest-mock": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/reporters": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^6.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/reporters/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/reporters/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/@jest/reporters/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/reporters/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/reporters/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/reporters/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/source-map": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/test-result": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/test-sequencer": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/transform": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
- "convert-source-map": "^2.0.0",
- "fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/transform/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/transform/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/@jest/transform/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/transform/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/transform/node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
- },
- "node_modules/@jest/transform/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/transform/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/types/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/types/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/@jest/types/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/types/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/types/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/types/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "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.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
- "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
- "dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- }
- },
- "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
- },
- "node_modules/@lerna/create": {
- "version": "8.1.8",
- "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.1.8.tgz",
- "integrity": "sha512-wi72R01tgjBjzG2kjRyTHl4yCTKDfDMIXRyKz9E/FBa9SkFvUOAE4bdyY9MhEsRZmSWL7+CYE8Flv/HScRpBbA==",
- "dependencies": {
- "@npmcli/arborist": "7.5.4",
- "@npmcli/package-json": "5.2.0",
- "@npmcli/run-script": "8.1.0",
- "@nx/devkit": ">=17.1.2 < 20",
- "@octokit/plugin-enterprise-rest": "6.0.1",
- "@octokit/rest": "19.0.11",
- "aproba": "2.0.0",
- "byte-size": "8.1.1",
- "chalk": "4.1.0",
- "clone-deep": "4.0.1",
- "cmd-shim": "6.0.3",
- "color-support": "1.1.3",
- "columnify": "1.6.0",
- "console-control-strings": "^1.1.0",
- "conventional-changelog-core": "5.0.1",
- "conventional-recommended-bump": "7.0.1",
- "cosmiconfig": "^8.2.0",
- "dedent": "1.5.3",
- "execa": "5.0.0",
- "fs-extra": "^11.2.0",
- "get-stream": "6.0.0",
- "git-url-parse": "14.0.0",
- "glob-parent": "6.0.2",
- "globby": "11.1.0",
- "graceful-fs": "4.2.11",
- "has-unicode": "2.0.1",
- "ini": "^1.3.8",
- "init-package-json": "6.0.3",
- "inquirer": "^8.2.4",
- "is-ci": "3.0.1",
- "is-stream": "2.0.0",
- "js-yaml": "4.1.0",
- "libnpmpublish": "9.0.9",
- "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": "11.0.2",
- "npm-packlist": "8.0.2",
- "npm-registry-fetch": "^17.1.0",
- "nx": ">=17.1.2 < 20",
- "p-map": "4.0.0",
- "p-map-series": "2.1.0",
- "p-queue": "6.6.2",
- "p-reduce": "^2.1.0",
- "pacote": "^18.0.6",
- "pify": "5.0.0",
- "read-cmd-shim": "4.0.0",
- "resolve-from": "5.0.0",
- "rimraf": "^4.4.1",
- "semver": "^7.3.4",
- "set-blocking": "^2.0.0",
- "signal-exit": "3.0.7",
- "slash": "^3.0.0",
- "ssri": "^10.0.6",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "strong-log-transformer": "2.1.0",
- "tar": "6.2.1",
- "temp-dir": "1.0.0",
- "upath": "2.0.1",
- "uuid": "^10.0.0",
- "validate-npm-package-license": "^3.0.4",
- "validate-npm-package-name": "5.0.1",
- "wide-align": "1.1.5",
- "write-file-atomic": "5.0.1",
- "write-pkg": "4.0.0",
- "yargs": "17.7.2",
- "yargs-parser": "21.1.1"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@lerna/create/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@lerna/create/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/@lerna/create/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@lerna/create/node_modules/chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "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/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@lerna/create/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@lerna/create/node_modules/glob": {
- "version": "9.3.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
- "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
- "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/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/@lerna/create/node_modules/glob/node_modules/minimatch": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
- "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
- "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/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@lerna/create/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@lerna/create/node_modules/minipass": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
- "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@lerna/create/node_modules/rimraf": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
- "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
- "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/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@lerna/create/node_modules/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@lerna/create/node_modules/write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@lerna/create/node_modules/write-file-atomic/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@napi-rs/wasm-runtime": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz",
- "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==",
- "dependencies": {
- "@emnapi/core": "^1.1.0",
- "@emnapi/runtime": "^1.1.0",
- "@tybys/wasm-util": "^0.9.0"
- }
- },
- "node_modules/@next/env": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.13.tgz",
- "integrity": "sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw=="
- },
- "node_modules/@next/eslint-plugin-next": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.13.tgz",
- "integrity": "sha512-z8Mk0VljxhIzsSiZUSdt3wp+t2lKd+jk5a9Jsvh3zDGkItgDMfjv/ZbET6HsxEl/fSihVoHGsXV6VLyDH0lfTQ==",
- "dependencies": {
- "glob": "10.3.10"
- }
- },
- "node_modules/@next/eslint-plugin-next/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@next/eslint-plugin-next/node_modules/glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "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/@next/eslint-plugin-next/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@next/swc-darwin-arm64": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.13.tgz",
- "integrity": "sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-darwin-x64": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.13.tgz",
- "integrity": "sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.13.tgz",
- "integrity": "sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.13.tgz",
- "integrity": "sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.13.tgz",
- "integrity": "sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.13.tgz",
- "integrity": "sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.13.tgz",
- "integrity": "sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-ia32-msvc": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.13.tgz",
- "integrity": "sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==",
- "cpu": [
- "ia32"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-x64-msvc": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.13.tgz",
- "integrity": "sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@npmcli/agent": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz",
- "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==",
- "dependencies": {
- "agent-base": "^7.1.0",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.1",
- "lru-cache": "^10.0.1",
- "socks-proxy-agent": "^8.0.3"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/agent/node_modules/agent-base": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
- "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
- "dependencies": {
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@npmcli/agent/node_modules/http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "dependencies": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@npmcli/agent/node_modules/https-proxy-agent": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
- "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
- "dependencies": {
- "agent-base": "^7.0.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@npmcli/arborist": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz",
- "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==",
- "dependencies": {
- "@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/fs": "^3.1.1",
- "@npmcli/installed-package-contents": "^2.1.0",
- "@npmcli/map-workspaces": "^3.0.2",
- "@npmcli/metavuln-calculator": "^7.1.1",
- "@npmcli/name-from-folder": "^2.0.0",
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.1.0",
- "@npmcli/query": "^3.1.0",
- "@npmcli/redact": "^2.0.0",
- "@npmcli/run-script": "^8.1.0",
- "bin-links": "^4.0.4",
- "cacache": "^18.0.3",
- "common-ancestor-path": "^1.0.1",
- "hosted-git-info": "^7.0.2",
- "json-parse-even-better-errors": "^3.0.2",
- "json-stringify-nice": "^1.1.4",
- "lru-cache": "^10.2.2",
- "minimatch": "^9.0.4",
- "nopt": "^7.2.1",
- "npm-install-checks": "^6.2.0",
- "npm-package-arg": "^11.0.2",
- "npm-pick-manifest": "^9.0.1",
- "npm-registry-fetch": "^17.0.1",
- "pacote": "^18.0.6",
- "parse-conflict-json": "^3.0.0",
- "proc-log": "^4.2.0",
- "proggy": "^2.0.0",
- "promise-all-reject-late": "^1.0.0",
- "promise-call-limit": "^3.0.1",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.7",
- "ssri": "^10.0.6",
- "treeverse": "^3.0.0",
- "walk-up-path": "^3.0.1"
- },
- "bin": {
- "arborist": "bin/index.js"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/arborist/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@npmcli/arborist/node_modules/json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/arborist/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@npmcli/fs": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz",
- "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==",
- "dependencies": {
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/git": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz",
- "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==",
- "dependencies": {
- "@npmcli/promise-spawn": "^7.0.0",
- "ini": "^4.1.3",
- "lru-cache": "^10.0.1",
- "npm-pick-manifest": "^9.0.0",
- "proc-log": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "promise-retry": "^2.0.1",
- "semver": "^7.3.5",
- "which": "^4.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/git/node_modules/ini": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
- "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/git/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@npmcli/git/node_modules/which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "dependencies": {
- "isexe": "^3.1.1"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/installed-package-contents": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz",
- "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==",
- "dependencies": {
- "npm-bundled": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- },
- "bin": {
- "installed-package-contents": "bin/index.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/map-workspaces": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz",
- "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==",
- "dependencies": {
- "@npmcli/name-from-folder": "^2.0.0",
- "glob": "^10.2.2",
- "minimatch": "^9.0.0",
- "read-package-json-fast": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@npmcli/map-workspaces/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@npmcli/map-workspaces/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/@npmcli/map-workspaces/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@npmcli/map-workspaces/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/@npmcli/metavuln-calculator": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz",
- "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==",
- "dependencies": {
- "cacache": "^18.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "pacote": "^18.0.0",
- "proc-log": "^4.1.0",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/metavuln-calculator/node_modules/json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/name-from-folder": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz",
- "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/node-gyp": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz",
- "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/package-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz",
- "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==",
- "dependencies": {
- "@npmcli/git": "^5.0.0",
- "glob": "^10.2.2",
- "hosted-git-info": "^7.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "normalize-package-data": "^6.0.0",
- "proc-log": "^4.0.0",
- "semver": "^7.5.3"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/package-json/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@npmcli/package-json/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@npmcli/package-json/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/package-json/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@npmcli/package-json/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/@npmcli/promise-spawn": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz",
- "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==",
- "dependencies": {
- "which": "^4.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/promise-spawn/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@npmcli/promise-spawn/node_modules/which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "dependencies": {
- "isexe": "^3.1.1"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/query": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz",
- "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==",
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/redact": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz",
- "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==",
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/run-script": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz",
- "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==",
- "dependencies": {
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.0.0",
- "@npmcli/promise-spawn": "^7.0.0",
- "node-gyp": "^10.0.0",
- "proc-log": "^4.0.0",
- "which": "^4.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/run-script/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@npmcli/run-script/node_modules/which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "dependencies": {
- "isexe": "^3.1.1"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@nrwl/devkit": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.6.2.tgz",
- "integrity": "sha512-1caQTLJBcvOLDZpB3yHY0zczcaaOh044MeegS0oyllPYYbCi6PiJK33HC8qoH1TGiahT6+VxSFN7OYnD3QK4vQ==",
- "dependencies": {
- "@nx/devkit": "19.6.2"
- }
- },
- "node_modules/@nrwl/tao": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.6.2.tgz",
- "integrity": "sha512-DcqpaKpkUbF+J2kVRoLtYZOFpr8mu4+fHiKIjrdliKVabSOzekwRAx0DN+VZdpUoaZ2+5W+F8RFhSak1216ZCg==",
- "dependencies": {
- "nx": "19.6.2",
- "tslib": "^2.3.0"
- },
- "bin": {
- "tao": "index.js"
- }
- },
- "node_modules/@nx/devkit": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.6.2.tgz",
- "integrity": "sha512-fyZ+z0CnpXsGbnOTgsxwjOJH/K1cgSkhyHSOW3BcIvncx4Q4o8Y74flRz2mrZLJeURBs+IelYI2REkCPdba2cg==",
- "dependencies": {
- "@nrwl/devkit": "19.6.2",
- "ejs": "^3.1.7",
- "enquirer": "~2.3.6",
- "ignore": "^5.0.4",
- "minimatch": "9.0.3",
- "semver": "^7.5.3",
- "tmp": "~0.2.1",
- "tslib": "^2.3.0",
- "yargs-parser": "21.1.1"
- },
- "peerDependencies": {
- "nx": ">= 17 <= 20"
- }
- },
- "node_modules/@nx/devkit/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@nx/devkit/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@nx/nx-darwin-arm64": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.6.2.tgz",
- "integrity": "sha512-WCt9bK5CiuXiiE/8ivoeOEy3J2xYx2Eduea+8PdyK+21FzWakSV4GK0DUfC/dmLPyc+osx2kpmVO+l4HVBIEJw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-darwin-x64": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.6.2.tgz",
- "integrity": "sha512-jCB4yTE97/UkUd1V7ttFLJkVRx2vkQgHAqcmU0l8pAPRWKplYkO43J4g4M3M8SyLsX6arPIlfIT3uBh8TzqxXA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-freebsd-x64": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.6.2.tgz",
- "integrity": "sha512-ZBFTHO9vhaSpzuopAww9xznseNjE2CUXGSq5be0CUBoIvGn4TWvjOfv+tinIbKSYiWdfL1PYMqnE2FIqyxscNA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-arm-gnueabihf": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.6.2.tgz",
- "integrity": "sha512-Aubnlvx/47zAOIlp+ZWxe6Xq3cX9sSMRsB7xZhLkGnpcKwsKEh+uDWi6yfdnmLBp02ZY16qwcpAeYlyBRHZRUA==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-arm64-gnu": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.6.2.tgz",
- "integrity": "sha512-LorZsjhaz7vajwzGVAGUMtMpu5232UvJceB7XzUXF1TEWM2FZfSUCdLKdQgR2YZHeALYzVoEQgU/j6zKldMqpw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-arm64-musl": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.6.2.tgz",
- "integrity": "sha512-+s4BD6NkmsrnxYHWpJ84Lm49rsTa5tY4Zpz09kpMCc7NNQdIYtWimexGmaHGiIY9FmwqaQCx54lCxSXUXQ3hoQ==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-x64-gnu": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.6.2.tgz",
- "integrity": "sha512-O7ao0x7j7mwgPS8DkWmMtewTRyharQSURq2kUgWwyCJgVbr5ggV8RySmt/uLT9Tv/2LUDerWdBnd30oDr70M5g==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-x64-musl": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.6.2.tgz",
- "integrity": "sha512-7tVOQoorw8o1n5CAtLTlJx9oI/py+V3NX0PTdX/Pa7tA6gxyrZW51HlpODssRZ5PM9171G8VAZVROP9eDLfntQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-win32-arm64-msvc": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.6.2.tgz",
- "integrity": "sha512-l12NsHLaCAYdZPOP8KrXnSWxrytcJuifBJTejy7Xu9rFQMEDWI7dKap8vKJrYIRUtJjOsF8Yjq38064noZkLdw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-win32-x64-msvc": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.6.2.tgz",
- "integrity": "sha512-B+80FY1kDWHMCOZubt786BtQOZn+LJ6CzjDGHSocqVMVqJDvBzrlf4qwmHeOIACWAsbZtJmWu+do3FriZ53ovA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@octokit/auth-token": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz",
- "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@octokit/core": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz",
- "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==",
- "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",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz",
- "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==",
- "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",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz",
- "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==",
- "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",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz",
- "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw=="
- },
- "node_modules/@octokit/plugin-enterprise-rest": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz",
- "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw=="
- },
- "node_modules/@octokit/plugin-paginate-rest": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz",
- "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==",
- "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",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz",
- "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==",
- "peerDependencies": {
- "@octokit/core": ">=3"
- }
- },
- "node_modules/@octokit/plugin-rest-endpoint-methods": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz",
- "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==",
- "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",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz",
- "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==",
- "dependencies": {
- "@octokit/openapi-types": "^18.0.0"
- }
- },
- "node_modules/@octokit/request": {
- "version": "6.2.8",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz",
- "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==",
- "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",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz",
- "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==",
- "dependencies": {
- "@octokit/types": "^9.0.0",
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@octokit/rest": {
- "version": "19.0.11",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.11.tgz",
- "integrity": "sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==",
- "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",
- "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz",
- "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA=="
- },
- "node_modules/@octokit/types": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz",
- "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==",
- "dependencies": {
- "@octokit/openapi-types": "^18.0.0"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@pkgr/core": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz",
- "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==",
- "engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
- "node_modules/@popperjs/core": {
- "version": "2.11.8",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
- "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
- "node_modules/@react-aria/ssr": {
- "version": "3.9.4",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.4.tgz",
- "integrity": "sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ==",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- },
- "engines": {
- "node": ">= 12"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@restart/hooks": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz",
- "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==",
- "dependencies": {
- "dequal": "^2.0.3"
- },
- "peerDependencies": {
- "react": ">=16.8.0"
- }
- },
- "node_modules/@restart/ui": {
- "version": "1.6.9",
- "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.6.9.tgz",
- "integrity": "sha512-mUbygUsJcRurjZCt1f77gg4DpheD1D+Sc7J3JjAkysUj7t8m4EBJVOqWC9788Qtbc69cJ+HlJc6jBguKwS8Mcw==",
- "dependencies": {
- "@babel/runtime": "^7.21.0",
- "@popperjs/core": "^2.11.6",
- "@react-aria/ssr": "^3.5.0",
- "@restart/hooks": "^0.4.9",
- "@types/warning": "^3.0.0",
- "dequal": "^2.0.3",
- "dom-helpers": "^5.2.0",
- "uncontrollable": "^8.0.1",
- "warning": "^4.0.3"
- },
- "peerDependencies": {
- "react": ">=16.14.0",
- "react-dom": ">=16.14.0"
- }
- },
- "node_modules/@restart/ui/node_modules/uncontrollable": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz",
- "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==",
- "peerDependencies": {
- "react": ">=16.14.0"
- }
- },
- "node_modules/@rushstack/eslint-patch": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz",
- "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA=="
- },
- "node_modules/@sigstore/bundle": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz",
- "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==",
- "dependencies": {
- "@sigstore/protobuf-specs": "^0.3.2"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sigstore/core": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz",
- "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==",
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sigstore/protobuf-specs": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz",
- "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==",
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sigstore/sign": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz",
- "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==",
- "dependencies": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "make-fetch-happen": "^13.0.1",
- "proc-log": "^4.2.0",
- "promise-retry": "^2.0.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sigstore/tuf": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz",
- "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==",
- "dependencies": {
- "@sigstore/protobuf-specs": "^0.3.2",
- "tuf-js": "^2.2.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sigstore/verify": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz",
- "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==",
- "dependencies": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.1.0",
- "@sigstore/protobuf-specs": "^0.3.2"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
- },
- "node_modules/@sinonjs/commons": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
- "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
- "dependencies": {
- "@sinonjs/commons": "^3.0.0"
- }
- },
- "node_modules/@smithy/abort-controller": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.1.tgz",
- "integrity": "sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/chunked-blob-reader": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz",
- "integrity": "sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==",
- "dependencies": {
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/chunked-blob-reader-native": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz",
- "integrity": "sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==",
- "dependencies": {
- "@smithy/util-base64": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/config-resolver": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.5.tgz",
- "integrity": "sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA==",
- "dependencies": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/core": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.4.0.tgz",
- "integrity": "sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w==",
- "dependencies": {
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/credential-provider-imds": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz",
- "integrity": "sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA==",
- "dependencies": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/eventstream-codec": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz",
- "integrity": "sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw==",
- "dependencies": {
- "@aws-crypto/crc32": "5.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-hex-encoding": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/eventstream-serde-browser": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.6.tgz",
- "integrity": "sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ==",
- "dependencies": {
- "@smithy/eventstream-serde-universal": "^3.0.5",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/eventstream-serde-config-resolver": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz",
- "integrity": "sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/eventstream-serde-node": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.5.tgz",
- "integrity": "sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ==",
- "dependencies": {
- "@smithy/eventstream-serde-universal": "^3.0.5",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/eventstream-serde-universal": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.5.tgz",
- "integrity": "sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ==",
- "dependencies": {
- "@smithy/eventstream-codec": "^3.1.2",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/fetch-http-handler": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz",
- "integrity": "sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg==",
- "dependencies": {
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/querystring-builder": "^3.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-base64": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/hash-blob-browser": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz",
- "integrity": "sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg==",
- "dependencies": {
- "@smithy/chunked-blob-reader": "^3.0.0",
- "@smithy/chunked-blob-reader-native": "^3.0.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/hash-node": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.3.tgz",
- "integrity": "sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/hash-stream-node": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz",
- "integrity": "sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/invalid-dependency": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz",
- "integrity": "sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/is-array-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz",
- "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/md5-js": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.3.tgz",
- "integrity": "sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/middleware-content-length": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz",
- "integrity": "sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw==",
- "dependencies": {
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/middleware-endpoint": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz",
- "integrity": "sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw==",
- "dependencies": {
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-middleware": "^3.0.3",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/middleware-retry": {
- "version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.15.tgz",
- "integrity": "sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ==",
- "dependencies": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/service-error-classification": "^3.0.3",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/middleware-retry/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@smithy/middleware-serde": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz",
- "integrity": "sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/middleware-stack": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz",
- "integrity": "sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/node-config-provider": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz",
- "integrity": "sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ==",
- "dependencies": {
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/node-http-handler": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.1.4.tgz",
- "integrity": "sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg==",
- "dependencies": {
- "@smithy/abort-controller": "^3.1.1",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/querystring-builder": "^3.0.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/property-provider": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.3.tgz",
- "integrity": "sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/protocol-http": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.0.tgz",
- "integrity": "sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/querystring-builder": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz",
- "integrity": "sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-uri-escape": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/querystring-parser": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz",
- "integrity": "sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/service-error-classification": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz",
- "integrity": "sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ==",
- "dependencies": {
- "@smithy/types": "^3.3.0"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/shared-ini-file-loader": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz",
- "integrity": "sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/signature-v4": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.1.0.tgz",
- "integrity": "sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag==",
- "dependencies": {
- "@smithy/is-array-buffer": "^3.0.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-hex-encoding": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-uri-escape": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/smithy-client": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.2.0.tgz",
- "integrity": "sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw==",
- "dependencies": {
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.1.3",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/types": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.3.0.tgz",
- "integrity": "sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/url-parser": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.3.tgz",
- "integrity": "sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A==",
- "dependencies": {
- "@smithy/querystring-parser": "^3.0.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/util-base64": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz",
- "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==",
- "dependencies": {
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-body-length-browser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz",
- "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==",
- "dependencies": {
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/util-body-length-node": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz",
- "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-buffer-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz",
- "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==",
- "dependencies": {
- "@smithy/is-array-buffer": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-config-provider": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz",
- "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-defaults-mode-browser": {
- "version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.15.tgz",
- "integrity": "sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg==",
- "dependencies": {
- "@smithy/property-provider": "^3.1.3",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "bowser": "^2.11.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/@smithy/util-defaults-mode-node": {
- "version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.15.tgz",
- "integrity": "sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A==",
- "dependencies": {
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/credential-provider-imds": "^3.2.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/@smithy/util-endpoints": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz",
- "integrity": "sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg==",
- "dependencies": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-hex-encoding": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz",
- "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-middleware": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.3.tgz",
- "integrity": "sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw==",
- "dependencies": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-retry": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.3.tgz",
- "integrity": "sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w==",
- "dependencies": {
- "@smithy/service-error-classification": "^3.0.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-stream": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.1.3.tgz",
- "integrity": "sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw==",
- "dependencies": {
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-hex-encoding": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-uri-escape": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz",
- "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-utf8": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz",
- "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==",
- "dependencies": {
- "@smithy/util-buffer-from": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@smithy/util-waiter": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.2.tgz",
- "integrity": "sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw==",
- "dependencies": {
- "@smithy/abort-controller": "^3.1.1",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@swc/counter": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
- "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
- },
- "node_modules/@swc/helpers": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
- "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
- "dependencies": {
- "@swc/counter": "^0.1.3",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@tootallnate/once": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
- "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@tufjs/canonical-json": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz",
- "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==",
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@tufjs/models": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz",
- "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==",
- "dependencies": {
- "@tufjs/canonical-json": "2.0.0",
- "minimatch": "^9.0.4"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@tufjs/models/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@tufjs/models/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@tybys/wasm-util": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
- "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@types/babel__core": {
- "version": "7.20.3",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz",
- "integrity": "sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==",
- "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.6",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz",
- "integrity": "sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==",
- "dependencies": {
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__template": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.3.tgz",
- "integrity": "sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==",
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__traverse": {
- "version": "7.20.3",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.3.tgz",
- "integrity": "sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==",
- "dependencies": {
- "@babel/types": "^7.20.7"
- }
- },
- "node_modules/@types/concat-stream": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz",
- "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/form-data": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz",
- "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/graceful-fs": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz",
- "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
- "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
- "dependencies": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "node_modules/@types/jsdom": {
- "version": "20.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz",
- "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "@types/tough-cookie": "*",
- "parse5": "^7.0.0"
- }
- },
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
- },
- "node_modules/@types/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
- },
- "node_modules/@types/minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag=="
- },
- "node_modules/@types/node": {
- "version": "16.7.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.9.tgz",
- "integrity": "sha512-KktxVzS4FPDFVHUUOWyZMvRo//8vqOLITtLMhFSW9IdLsYT/sPyXj3wXtaTcR7A7olCe7R2Xy7R+q5pg2bU46g=="
- },
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.5",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
- "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
- },
- "node_modules/@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "node_modules/@types/react": {
- "version": "18.2.14",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz",
- "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==",
- "dependencies": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/react-transition-group": {
- "version": "4.4.6",
- "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz",
- "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==",
- "dependencies": {
- "@types/react": "*"
- }
- },
- "node_modules/@types/scheduler": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
- "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
- },
- "node_modules/@types/stack-utils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz",
- "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw=="
- },
- "node_modules/@types/tough-cookie": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz",
- "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==",
- "dev": true
- },
- "node_modules/@types/warning": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz",
- "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q=="
- },
- "node_modules/@types/yargs": {
- "version": "17.0.24",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz",
- "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==",
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
- },
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.6.0.tgz",
- "integrity": "sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==",
- "dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.6.0",
- "@typescript-eslint/type-utils": "8.6.0",
- "@typescript-eslint/utils": "8.6.0",
- "@typescript-eslint/visitor-keys": "8.6.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.3.1",
- "natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
- "eslint": "^8.57.0 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/parser": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.6.0.tgz",
- "integrity": "sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==",
- "dependencies": {
- "@typescript-eslint/scope-manager": "8.6.0",
- "@typescript-eslint/types": "8.6.0",
- "@typescript-eslint/typescript-estree": "8.6.0",
- "@typescript-eslint/visitor-keys": "8.6.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz",
- "integrity": "sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==",
- "dependencies": {
- "@typescript-eslint/types": "8.6.0",
- "@typescript-eslint/visitor-keys": "8.6.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/type-utils": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.6.0.tgz",
- "integrity": "sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==",
- "dependencies": {
- "@typescript-eslint/typescript-estree": "8.6.0",
- "@typescript-eslint/utils": "8.6.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/types": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.6.0.tgz",
- "integrity": "sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz",
- "integrity": "sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==",
- "dependencies": {
- "@typescript-eslint/types": "8.6.0",
- "@typescript-eslint/visitor-keys": "8.6.0",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@typescript-eslint/utils": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.6.0.tgz",
- "integrity": "sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.6.0",
- "@typescript-eslint/types": "8.6.0",
- "@typescript-eslint/typescript-estree": "8.6.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz",
- "integrity": "sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==",
- "dependencies": {
- "@typescript-eslint/types": "8.6.0",
- "eslint-visitor-keys": "^3.4.3"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
- },
- "node_modules/@xmldom/xmldom": {
- "version": "0.8.10",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
- "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
- "optional": true,
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@yarnpkg/lockfile": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
- "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
- },
- "node_modules/@yarnpkg/parsers": {
- "version": "3.0.0-rc.46",
- "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz",
- "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==",
- "dependencies": {
- "js-yaml": "^3.10.0",
- "tslib": "^2.4.0"
- },
- "engines": {
- "node": ">=14.15.0"
- }
- },
- "node_modules/@zkochan/js-yaml": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz",
- "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@zkochan/js-yaml/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/abab": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
- "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
- "dev": true
- },
- "node_modules/abbrev": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
- "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/acorn": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
- "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-globals": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz",
- "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.1.0",
- "acorn-walk": "^8.0.2"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/add-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz",
- "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ=="
- },
- "node_modules/adm-zip": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz",
- "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==",
- "dev": true,
- "engines": {
- "node": ">=12.0"
- }
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "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",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
- "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/argv": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz",
- "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=",
- "dev": true,
- "engines": {
- "node": ">=0.6.10"
- }
- },
- "node_modules/aria-query": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
- "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
- "dependencies": {
- "dequal": "^2.0.3"
- }
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
- "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",
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
- "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/array-ify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
- "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng=="
- },
- "node_modules/array-includes": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
- "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
- "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",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/array.prototype.findlastindex": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz",
- "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==",
- "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"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
- "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",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
- "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",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz",
- "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==",
- "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",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
- "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
- "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": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
- "dev": true
- },
- "node_modules/assertion-error": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/ast-types-flow": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
- },
- "node_modules/astral-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
- "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/async": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
- "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="
- },
- "node_modules/asynciterator.prototype": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
- "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
- "dependencies": {
- "has-symbols": "^1.0.3"
- }
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/axe-core": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz",
- "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/axios": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz",
- "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==",
- "dependencies": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/axobject-query": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
- "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
- "dependencies": {
- "dequal": "^2.0.3"
- }
- },
- "node_modules/babel-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
- "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
- "dependencies": {
- "@jest/transform": "^29.7.0",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^29.6.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.8.0"
- }
- },
- "node_modules/babel-jest/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/babel-jest/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/babel-jest/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/babel-jest/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/babel-jest/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-jest/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "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-istanbul/node_modules/istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "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/babel-plugin-istanbul/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/babel-plugin-jest-hoist": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
- "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
- "dependencies": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz",
- "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.4.2",
- "semver": "^6.3.1"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz",
- "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.4.2",
- "core-js-compat": "^3.31.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz",
- "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.4.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-preset-current-node-syntax": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
- "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
- "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": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
- "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
- "dependencies": {
- "babel-plugin-jest-hoist": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/before-after-hook": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
- "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
- },
- "node_modules/bids-validator": {
- "resolved": "bids-validator",
- "link": true
- },
- "node_modules/bids-validator-web": {
- "resolved": "bids-validator-web",
- "link": true
- },
- "node_modules/bin-links": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz",
- "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==",
- "dependencies": {
- "cmd-shim": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "read-cmd-shim": "^4.0.0",
- "write-file-atomic": "^5.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/bin-links/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/bin-links/node_modules/write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "node_modules/bootstrap": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
- "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/twbs"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/bootstrap"
- }
- ],
- "peerDependencies": {
- "@popperjs/core": "^2.11.8"
- }
- },
- "node_modules/bowser": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
- "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.21.9",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz",
- "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==",
- "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"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001503",
- "electron-to-chromium": "^1.4.431",
- "node-releases": "^2.0.12",
- "update-browserslist-db": "^1.0.11"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/browserslist/node_modules/node-releases": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
- "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ=="
- },
- "node_modules/bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "dependencies": {
- "node-int64": "^0.4.0"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/byte-size": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz",
- "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==",
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/cacache": {
- "version": "18.0.4",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz",
- "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==",
- "dependencies": {
- "@npmcli/fs": "^3.1.0",
- "fs-minipass": "^3.0.0",
- "glob": "^10.2.2",
- "lru-cache": "^10.0.1",
- "minipass": "^7.0.3",
- "minipass-collect": "^2.0.1",
- "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": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/cacache/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/cacache/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/cacache/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/cacache/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "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.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
- "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
- "dependencies": {
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.1",
- "set-function-length": "^1.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
- "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/caniuse-lite": {
- "version": "1.0.30001581",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz",
- "integrity": "sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==",
- "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"
- }
- ]
- },
- "node_modules/caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "dev": true
- },
- "node_modules/chai": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz",
- "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==",
- "dev": true,
- "dependencies": {
- "assertion-error": "^2.0.1",
- "check-error": "^2.1.1",
- "deep-eql": "^5.0.1",
- "loupe": "^3.1.0",
- "pathval": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
- },
- "node_modules/check-error": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
- "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
- "dev": true,
- "engines": {
- "node": ">= 16"
- }
- },
- "node_modules/chokidar": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
- "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
- "dependencies": {
- "readdirp": "^4.0.1"
- },
- "engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cjs-module-lexer": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
- "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ=="
- },
- "node_modules/classnames": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
- "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
- },
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cli": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
- "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
- "dependencies": {
- "exit": "0.1.2",
- "glob": "^7.1.1"
- },
- "engines": {
- "node": ">=0.2.5"
- }
- },
- "node_modules/cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cli-spinners": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz",
- "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/client-only": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
- "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
- },
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "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",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "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",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/cmd-shim": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz",
- "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
- "engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
- }
- },
- "node_modules/code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/codecov": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz",
- "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==",
- "dev": true,
- "dependencies": {
- "argv": "0.0.2",
- "ignore-walk": "3.0.4",
- "js-yaml": "3.14.1",
- "teeny-request": "7.1.1",
- "urlgrey": "1.0.0"
- },
- "bin": {
- "codecov": "bin/codecov"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/collect-v8-coverage": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
- "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q=="
- },
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/columnify": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz",
- "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==",
- "dependencies": {
- "strip-ansi": "^6.0.1",
- "wcwidth": "^1.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/common-ancestor-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz",
- "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w=="
- },
- "node_modules/compare-func": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
- "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
- "dependencies": {
- "array-ify": "^1.0.0",
- "dot-prop": "^5.1.0"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "node_modules/concat-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
- "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
- "engines": [
- "node >= 6.0"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.0.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/console-browserify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
- "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
- "dependencies": {
- "date-now": "^0.1.4"
- }
- },
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
- },
- "node_modules/conventional-changelog-angular": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz",
- "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
- "dependencies": {
- "compare-func": "^2.0.0"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/conventional-changelog-core": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz",
- "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==",
- "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/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/conventional-changelog-core/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/conventional-changelog-core/node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "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",
- "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz",
- "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/conventional-changelog-writer": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz",
- "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==",
- "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-commits-filter": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz",
- "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==",
- "dependencies": {
- "lodash.ismatch": "^4.4.0",
- "modify-values": "^1.0.1"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/conventional-commits-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz",
- "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==",
- "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",
- "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz",
- "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==",
- "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.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dependencies": {
- "safe-buffer": "~5.1.1"
- }
- },
- "node_modules/core-js-compat": {
- "version": "3.32.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz",
- "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.21.9"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "node_modules/cosmiconfig": {
- "version": "8.3.6",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
- "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
- "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/cosmiconfig/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/cosmiconfig/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/create-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
- "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "prompts": "^2.0.1"
- },
- "bin": {
- "create-jest": "bin/create-jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/create-jest/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/create-jest/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/create-jest/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/create-jest/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/create-jest/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/create-jest/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cross-fetch": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
- "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
- "dependencies": {
- "node-fetch": "^2.6.12"
- }
- },
- "node_modules/cross-fetch/node_modules/node-fetch": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz",
- "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/cross-fetch/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "node_modules/cross-fetch/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "node_modules/cross-fetch/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/cssom": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
- "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
- "dev": true
- },
- "node_modules/cssstyle": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
- "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
- "dev": true,
- "dependencies": {
- "cssom": "~0.3.6"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cssstyle/node_modules/cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true
- },
- "node_modules/csstype": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz",
- "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw=="
- },
- "node_modules/damerau-levenshtein": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
- "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
- },
- "node_modules/dargs": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
- "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/data-urls": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
- "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
- "dev": true,
- "dependencies": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/date-and-time": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-3.2.0.tgz",
- "integrity": "sha512-uI8c96oG3R8ZhtWeGy8SfJSN1POcwE7kjWLi7GB3+dmBqSYGG+KhGf4Vh25hUhg1Br6Kn3ikEf/mrXCxE0Pknw=="
- },
- "node_modules/date-fns": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "node_modules/date-now": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
- "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
- },
- "node_modules/dateformat": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decamelize-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
- "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
- "dependencies": {
- "decamelize": "^1.1.0",
- "map-obj": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/decamelize-keys/node_modules/map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decimal.js": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
- "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
- "dev": true
- },
- "node_modules/dedent": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
- "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
- "peerDependencies": {
- "babel-plugin-macros": "^3.1.0"
- },
- "peerDependenciesMeta": {
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/deep-eql": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.1.tgz",
- "integrity": "sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "dependencies": {
- "clone": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/define-data-property": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
- "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
- "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",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
- "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",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/deprecation": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
- "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/detect-indent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
- "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/dom-helpers": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
- "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
- "dependencies": {
- "@babel/runtime": "^7.8.7",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/dom-serializer": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
- "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
- "dependencies": {
- "domelementtype": "^2.0.1",
- "entities": "^2.0.0"
- }
- },
- "node_modules/dom-serializer/node_modules/domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
- },
- "node_modules/domexception": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
- "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
- "dev": true,
- "dependencies": {
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/domhandler": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
- "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
- "dependencies": {
- "domelementtype": "1"
- }
- },
- "node_modules/domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dependencies": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
- "node_modules/dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dependencies": {
- "is-obj": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dotenv": {
- "version": "16.4.5",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
- "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
- "node_modules/dotenv-expand": {
- "version": "11.0.6",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz",
- "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==",
- "dependencies": {
- "dotenv": "^16.4.4"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
- "node_modules/duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
- },
- "node_modules/ejs": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
- "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
- "dependencies": {
- "jake": "^10.8.5"
- },
- "bin": {
- "ejs": "bin/cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.443",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.443.tgz",
- "integrity": "sha512-QG+DKVaD7OkcCJ/0x/IHdVEcwU7cak9Vr9dXCNp7G9ojBZQWtwtRV77CBOrU49jsKygedFcNc/IHUrGljKV2Gw=="
- },
- "node_modules/emittery": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
- "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/emittery?sponsor=1"
- }
- },
- "node_modules/encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "optional": true,
- "dependencies": {
- "iconv-lite": "^0.6.2"
- }
- },
- "node_modules/encoding/node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "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",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/enhanced-resolve": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
- "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
- "dependencies": {
- "ansi-colors": "^4.1.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/envinfo": {
- "version": "7.13.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz",
- "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==",
- "bin": {
- "envinfo": "dist/cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/err-code": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
- "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA=="
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es-abstract": {
- "version": "1.22.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
- "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.2",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.5",
- "es-set-tostringtag": "^2.0.1",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.2",
- "get-symbol-description": "^1.0.0",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0",
- "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.13.1",
- "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.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-iterator-helpers": {
- "version": "1.0.15",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz",
- "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==",
- "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",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
- "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
- "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",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
- "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
- "dependencies": {
- "has": "^1.0.3"
- }
- },
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "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/esbuild": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz",
- "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==",
- "dev": true,
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.24.0",
- "@esbuild/android-arm": "0.24.0",
- "@esbuild/android-arm64": "0.24.0",
- "@esbuild/android-x64": "0.24.0",
- "@esbuild/darwin-arm64": "0.24.0",
- "@esbuild/darwin-x64": "0.24.0",
- "@esbuild/freebsd-arm64": "0.24.0",
- "@esbuild/freebsd-x64": "0.24.0",
- "@esbuild/linux-arm": "0.24.0",
- "@esbuild/linux-arm64": "0.24.0",
- "@esbuild/linux-ia32": "0.24.0",
- "@esbuild/linux-loong64": "0.24.0",
- "@esbuild/linux-mips64el": "0.24.0",
- "@esbuild/linux-ppc64": "0.24.0",
- "@esbuild/linux-riscv64": "0.24.0",
- "@esbuild/linux-s390x": "0.24.0",
- "@esbuild/linux-x64": "0.24.0",
- "@esbuild/netbsd-x64": "0.24.0",
- "@esbuild/openbsd-arm64": "0.24.0",
- "@esbuild/openbsd-x64": "0.24.0",
- "@esbuild/sunos-x64": "0.24.0",
- "@esbuild/win32-arm64": "0.24.0",
- "@esbuild/win32-ia32": "0.24.0",
- "@esbuild/win32-x64": "0.24.0"
- }
- },
- "node_modules/esbuild-plugin-globals": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/esbuild-plugin-globals/-/esbuild-plugin-globals-0.2.0.tgz",
- "integrity": "sha512-y+6utQVWrETQWs0J8EGLV5gEOP59mmjX+fKWoQHn4TYwFMaj0FxQYflc566tHuokBCzl+uNW2iIlM1o1jfNy6w==",
- "dev": true,
- "engines": {
- "node": ">=7"
- }
- },
- "node_modules/esbuild-runner": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/esbuild-runner/-/esbuild-runner-2.2.2.tgz",
- "integrity": "sha512-fRFVXcmYVmSmtYm2mL8RlUASt2TDkGh3uRcvHFOKNr/T58VrfVeKD9uT9nlgxk96u0LS0ehS/GY7Da/bXWKkhw==",
- "dev": true,
- "dependencies": {
- "source-map-support": "0.5.21",
- "tslib": "2.4.0"
- },
- "bin": {
- "esr": "bin/esr.js"
- },
- "peerDependencies": {
- "esbuild": "*"
- }
- },
- "node_modules/esbuild-runner/node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
- "dev": true
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/escodegen": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
- "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
- "dev": true,
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=6.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/eslint": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.0",
- "@humanwhocodes/config-array": "^0.11.14",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "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-next": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.13.tgz",
- "integrity": "sha512-aro1EKAoyYchnO/3Tlo91hnNBO7QO7qnv/79MAFC+4Jq8TdUVKQlht5d2F+YjrePjdpOvfL+mV9JPfyYNwkk1g==",
- "dependencies": {
- "@next/eslint-plugin-next": "14.2.13",
- "@rushstack/eslint-patch": "^1.3.3",
- "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
- "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-import-resolver-typescript": "^3.5.2",
- "eslint-plugin-import": "^2.28.1",
- "eslint-plugin-jsx-a11y": "^6.7.1",
- "eslint-plugin-react": "^7.33.2",
- "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705"
- },
- "peerDependencies": {
- "eslint": "^7.23.0 || ^8.0.0",
- "typescript": ">=3.3.1"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-config-prettier": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
- "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
- "dev": true,
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
- },
- "peerDependencies": {
- "eslint": ">=7.0.0"
- }
- },
- "node_modules/eslint-import-resolver-node": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
- "dependencies": {
- "debug": "^3.2.7",
- "is-core-module": "^2.13.0",
- "resolve": "^1.22.4"
- }
- },
- "node_modules/eslint-import-resolver-node/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-import-resolver-node/node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "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/eslint-import-resolver-typescript": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz",
- "integrity": "sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==",
- "dependencies": {
- "debug": "^4.3.4",
- "enhanced-resolve": "^5.12.0",
- "eslint-module-utils": "^2.7.4",
- "get-tsconfig": "^4.5.0",
- "globby": "^13.1.3",
- "is-core-module": "^2.11.0",
- "is-glob": "^4.0.3",
- "synckit": "^0.8.5"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts"
- },
- "peerDependencies": {
- "eslint": "*",
- "eslint-plugin-import": "*"
- }
- },
- "node_modules/eslint-import-resolver-typescript/node_modules/globby": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.0.tgz",
- "integrity": "sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==",
- "dependencies": {
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.11",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-import-resolver-typescript/node_modules/slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-module-utils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
- "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
- "dependencies": {
- "debug": "^3.2.7"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependenciesMeta": {
- "eslint": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-module-utils/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-plugin-import": {
- "version": "2.29.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz",
- "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==",
- "dependencies": {
- "array-includes": "^3.1.7",
- "array.prototype.findlastindex": "^1.2.3",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
- "debug": "^3.2.7",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.8.0",
- "hasown": "^2.0.0",
- "is-core-module": "^2.13.1",
- "is-glob": "^4.0.3",
- "minimatch": "^3.1.2",
- "object.fromentries": "^2.0.7",
- "object.groupby": "^1.0.1",
- "object.values": "^1.1.7",
- "semver": "^6.3.1",
- "tsconfig-paths": "^3.14.2"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": {
- "version": "3.14.2",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
- "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
- "dependencies": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- }
- },
- "node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz",
- "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==",
- "dependencies": {
- "@babel/runtime": "^7.20.7",
- "aria-query": "^5.1.3",
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "ast-types-flow": "^0.0.7",
- "axe-core": "^4.6.2",
- "axobject-query": "^3.1.1",
- "damerau-levenshtein": "^1.0.8",
- "emoji-regex": "^9.2.2",
- "has": "^1.0.3",
- "jsx-ast-utils": "^3.3.3",
- "language-tags": "=1.0.5",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=4.0"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
- }
- },
- "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
- },
- "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-plugin-prettier": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz",
- "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==",
- "dev": true,
- "dependencies": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.9.1"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint-plugin-prettier"
- },
- "peerDependencies": {
- "@types/eslint": ">=8.0.0",
- "eslint": ">=8.0.0",
- "eslint-config-prettier": "*",
- "prettier": ">=3.0.0"
- },
- "peerDependenciesMeta": {
- "@types/eslint": {
- "optional": true
- },
- "eslint-config-prettier": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-plugin-prettier/node_modules/synckit": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz",
- "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==",
- "dev": true,
- "dependencies": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
- "node_modules/eslint-plugin-react": {
- "version": "7.33.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
- "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
- "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-hooks": {
- "version": "5.0.0-canary-7118f5dd7-20230705",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz",
- "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==",
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
- "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/eslint-plugin-react/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "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",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/eslint/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/eslint/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/eslint/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/eslint/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "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",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/eslint/node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/eslint/node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/eslint/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/eslint/node_modules/optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
- "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/eslint/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "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",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/eslint/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/eslint/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "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",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/execa": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz",
- "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==",
- "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/exifreader": {
- "version": "4.23.7",
- "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.23.7.tgz",
- "integrity": "sha512-yvyZFaZDqOa9QFHlV5/6tdq4rYBpNMPaRttl3VqthvYaS5QKrnaQBL1FKDaaTDpYO5bQanmsWnKLkUhoA0mSsg==",
- "hasInstallScript": true,
- "optionalDependencies": {
- "@xmldom/xmldom": "^0.8.10"
- }
- },
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
- "dependencies": {
- "@jest/expect-utils": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/exponential-backoff": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz",
- "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw=="
- },
- "node_modules/external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
- "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",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dependencies": {
- "os-tmpdir": "~1.0.2"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "node_modules/fast-diff": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
- "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
- "dev": true
- },
- "node_modules/fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "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",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
- },
- "node_modules/fast-url-parser": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz",
- "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=",
- "dev": true,
- "dependencies": {
- "punycode": "^1.3.2"
- }
- },
- "node_modules/fast-url-parser/node_modules/punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
- },
- "node_modules/fast-xml-parser": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz",
- "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/NaturalIntelligence"
- },
- {
- "type": "paypal",
- "url": "https://paypal.me/naturalintelligence"
- }
- ],
- "dependencies": {
- "strnum": "^1.0.5"
- },
- "bin": {
- "fxparser": "src/cli/cli.js"
- }
- },
- "node_modules/fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fb-watchman": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
- "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
- "dependencies": {
- "bser": "2.1.1"
- }
- },
- "node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "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",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dependencies": {
- "flat-cache": "^3.0.4"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "dependencies": {
- "minimatch": "^5.0.1"
- }
- },
- "node_modules/filelist/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "dependencies": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/flatted": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
- "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg=="
- },
- "node_modules/follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
- "dependencies": {
- "is-callable": "^1.1.3"
- }
- },
- "node_modules/foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "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.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
- "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/front-matter": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz",
- "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==",
- "dependencies": {
- "js-yaml": "^3.13.1"
- }
- },
- "node_modules/fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
- },
- "node_modules/fs-extra": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/fs-minipass": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz",
- "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
- "dependencies": {
- "minipass": "^7.0.3"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/fs-minipass/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/function.prototype.name": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
- "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",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-func-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
- "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
- "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
- "dependencies": {
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/get-pkg-repo": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz",
- "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==",
- "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-pkg-repo/node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/get-pkg-repo/node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/get-pkg-repo/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/get-pkg-repo/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/get-pkg-repo/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "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/get-pkg-repo/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/get-port": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
- "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz",
- "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-tsconfig": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.6.2.tgz",
- "integrity": "sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==",
- "dependencies": {
- "resolve-pkg-maps": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
- }
- },
- "node_modules/git-raw-commits": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz",
- "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==",
- "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",
- "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
- "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==",
- "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",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/git-semver-tags": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz",
- "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==",
- "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",
- "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz",
- "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==",
- "dependencies": {
- "is-ssh": "^1.4.0",
- "parse-url": "^8.1.0"
- }
- },
- "node_modules/git-url-parse": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-14.0.0.tgz",
- "integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==",
- "dependencies": {
- "git-up": "^7.0.0"
- }
- },
- "node_modules/gitconfiglocal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
- "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==",
- "dependencies": {
- "ini": "^1.3.2"
- }
- },
- "node_modules/glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "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": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "dependencies": {
- "define-properties": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "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",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
- },
- "node_modules/handlebars": {
- "version": "4.7.8",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
- "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
- "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",
- "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
- "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
- "dependencies": {
- "get-intrinsic": "^1.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
- "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",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
- },
- "node_modules/hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/hed-validator": {
- "version": "3.15.4",
- "resolved": "https://registry.npmjs.org/hed-validator/-/hed-validator-3.15.4.tgz",
- "integrity": "sha512-40Jbd5CQ3mShQtJKQyYUiNB8Ym4FrLq21zzaQ067Mxj/9ILSJanx+Pmab4G1vVBl45NPLU9wLFvo+5YDomzlWA==",
- "dependencies": {
- "buffer": "^6.0.3",
- "cross-fetch": "^4.0.0",
- "date-and-time": "^3.1.1",
- "date-fns": "^3.6.0",
- "events": "^3.3.0",
- "lodash": "^4.17.21",
- "path": "^0.12.7",
- "pluralize": "^8.0.0",
- "semver": "^7.6.0",
- "string_decoder": "^1.3.0",
- "xml2js": "^0.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/hed-validator/node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "node_modules/hosted-git-info": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
- "dependencies": {
- "lru-cache": "^10.0.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/html-encoding-sniffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
- "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
- "dev": true,
- "dependencies": {
- "whatwg-encoding": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
- },
- "node_modules/htmlparser2": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
- "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
- "dependencies": {
- "domelementtype": "1",
- "domhandler": "2.3",
- "domutils": "1.5",
- "entities": "1.0",
- "readable-stream": "1.1"
- }
- },
- "node_modules/htmlparser2/node_modules/entities": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
- "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
- },
- "node_modules/htmlparser2/node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "node_modules/htmlparser2/node_modules/readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "node_modules/htmlparser2/node_modules/string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "node_modules/http-basic": {
- "version": "8.1.3",
- "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz",
- "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==",
- "dev": true,
- "dependencies": {
- "caseless": "^0.12.0",
- "concat-stream": "^1.6.2",
- "http-response-object": "^3.0.1",
- "parse-cache-control": "^1.0.1"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/http-basic/node_modules/concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "dev": true,
- "engines": [
- "node >= 0.8"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/http-basic/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "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/http-basic/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
- },
- "node_modules/http-proxy-agent": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
- "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
- "dev": true,
- "dependencies": {
- "@tootallnate/once": "1",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/http-response-object": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz",
- "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==",
- "dev": true,
- "dependencies": {
- "@types/node": "^10.0.3"
- }
- },
- "node_modules/http-response-object/node_modules/@types/node": {
- "version": "10.17.60",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
- "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
- "dev": true
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/husky": {
- "version": "9.1.6",
- "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz",
- "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==",
- "dev": true,
- "bin": {
- "husky": "bin.js"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/typicode"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/ignore-walk": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz",
- "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==",
- "dev": true,
- "dependencies": {
- "minimatch": "^3.0.4"
- }
- },
- "node_modules/immutable": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz",
- "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg=="
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "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",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
- "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",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
- },
- "node_modules/init-package-json": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-6.0.3.tgz",
- "integrity": "sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==",
- "dependencies": {
- "@npmcli/package-json": "^5.0.0",
- "npm-package-arg": "^11.0.0",
- "promzard": "^1.0.0",
- "read": "^3.0.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4",
- "validate-npm-package-name": "^5.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/inquirer": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz",
- "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==",
- "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/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/inquirer/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/inquirer/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/inquirer/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/inquirer/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inquirer/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inquirer/node_modules/wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "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",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
- "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
- "dependencies": {
- "get-intrinsic": "^1.2.0",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/invariant": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
- "dependencies": {
- "loose-envify": "^1.0.0"
- }
- },
- "node_modules/invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ip-address": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
- "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
- "dependencies": {
- "jsbn": "1.1.0",
- "sprintf-js": "^1.1.3"
- },
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/ip-address/node_modules/sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="
- },
- "node_modules/is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
- "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-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
- "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",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
- },
- "node_modules/is-async-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
- "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
- "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",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
- "dependencies": {
- "has-bigints": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
- "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",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-ci": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
- "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
- "dependencies": {
- "ci-info": "^3.2.0"
- },
- "bin": {
- "is-ci": "bin.js"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
- "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",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-finalizationregistry": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
- "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-generator-function": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
- "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-interactive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-lambda": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
- "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ=="
- },
- "node_modules/is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
- "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",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true
- },
- "node_modules/is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
- "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",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-ssh": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz",
- "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==",
- "dependencies": {
- "protocols": "^2.0.1"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
- "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
- "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",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "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",
- "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
- "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==",
- "dependencies": {
- "text-extensions": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-typed-array": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
- "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
- "dependencies": {
- "which-typed-array": "^1.1.11"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
- },
- "node_modules/is-weakmap": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
- "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakset": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
- "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "dependencies": {
- "is-docker": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
- "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz",
- "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==",
- "dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
- "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^4.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "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",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
- "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/iterator.prototype": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
- "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
- "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",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "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.9.2",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
- "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
- "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/jake/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jake/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jake/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jake/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jake/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jake/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jake/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
- "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/types": "^29.6.3",
- "import-local": "^3.0.2",
- "jest-cli": "^29.7.0"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.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": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
- "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
- "dependencies": {
- "execa": "^5.0.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-changed-files/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-circus": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
- "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^1.0.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^29.7.0",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0",
- "pretty-format": "^29.7.0",
- "pure-rand": "^6.0.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-circus/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-circus/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-circus/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-circus/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-circus/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-circus/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-circus/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-cli": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
- "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "create-jest": "^29.7.0",
- "exit": "^0.1.2",
- "import-local": "^3.0.2",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "yargs": "^17.3.1"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-cli/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-cli/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-cli/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-cli/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-cli/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-cli/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-config": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-jest": "^29.7.0",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@types/node": "*",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/jest-config/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-config/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-config/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-config/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-config/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-config/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
- "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": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-diff/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-diff/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-diff/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-diff/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-diff/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-docblock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
- "dependencies": {
- "detect-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-each": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "jest-util": "^29.7.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-each/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-each/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-each/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-each/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-each/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-each/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-environment-jsdom": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz",
- "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/jsdom": "^20.0.0",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0",
- "jsdom": "^20.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "canvas": "^2.5.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/jest-environment-node": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
- "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-get-type": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
- "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-haste-map": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/graceful-fs": "^4.1.3",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^2.3.2"
- }
- },
- "node_modules/jest-leak-detector": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
- "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
- "dependencies": {
- "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-matcher-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
- "dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^29.7.0",
- "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-matcher-utils/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-matcher-utils/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-matcher-utils/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-matcher-utils/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-matcher-utils/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-matcher-utils/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-message-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
- "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
- "dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.6.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-message-util/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-message-util/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-message-util/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-message-util/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-message-util/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-message-util/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-mock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
- "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-pnp-resolver": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
- "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "jest-resolve": "*"
- },
- "peerDependenciesMeta": {
- "jest-resolve": {
- "optional": true
- }
- }
- },
- "node_modules/jest-regex-util": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
- "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
- "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
- "dependencies": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "resolve": "^1.20.0",
- "resolve.exports": "^2.0.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve-dependencies": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
- "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
- "dependencies": {
- "jest-regex-util": "^29.6.3",
- "jest-snapshot": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-resolve/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-resolve/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-resolve/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-resolve/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-resolve/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runner": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
- "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/environment": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-leak-detector": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-resolve": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "jest-worker": "^29.7.0",
- "p-limit": "^3.1.0",
- "source-map-support": "0.5.13"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runner/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-runner/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-runner/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-runner/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-runner/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runner/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-runner/node_modules/source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/jest-runner/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runtime": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
- "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/globals": "^29.7.0",
- "@jest/source-map": "^29.6.3",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runtime/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-runtime/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-runtime/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-runtime/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-runtime/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runtime/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-snapshot": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
- "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-jsx": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "natural-compare": "^1.4.0",
- "pretty-format": "^29.7.0",
- "semver": "^7.5.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-snapshot/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-snapshot/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-snapshot/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-snapshot/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-snapshot/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-snapshot/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-util/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-util/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-util/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-util/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-util/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-util/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-validate": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
- "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "leven": "^3.1.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-validate/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-validate/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-validate/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-validate/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-validate/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-validate/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-validate/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-watcher": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
- "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "jest-util": "^29.7.0",
- "string-length": "^4.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-watcher/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-watcher/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/jest-watcher/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-watcher/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-watcher/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-watcher/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
- "dependencies": {
- "@types/node": "*",
- "jest-util": "^29.7.0",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "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",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsbn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
- "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="
- },
- "node_modules/jsdom": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
- "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
- "dev": true,
- "dependencies": {
- "abab": "^2.0.6",
- "acorn": "^8.8.1",
- "acorn-globals": "^7.0.0",
- "cssom": "^0.5.0",
- "cssstyle": "^2.3.0",
- "data-urls": "^3.0.2",
- "decimal.js": "^10.4.2",
- "domexception": "^4.0.0",
- "escodegen": "^2.0.0",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.1",
- "is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.2",
- "parse5": "^7.1.1",
- "saxes": "^6.0.0",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^4.1.2",
- "w3c-xmlserializer": "^4.0.0",
- "webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0",
- "ws": "^8.11.0",
- "xml-name-validator": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "canvas": "^2.5.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/jsdom/node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/jsdom/node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
- "dev": true,
- "dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/jshint": {
- "version": "2.13.6",
- "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.6.tgz",
- "integrity": "sha512-IVdB4G0NTTeQZrBoM8C5JFVLjV2KtZ9APgybDA1MK73xb09qFs0jCXyQLnCOp1cSZZZbvhq/6mfXHUTaDkffuQ==",
- "dependencies": {
- "cli": "~1.0.0",
- "console-browserify": "1.1.x",
- "exit": "0.1.x",
- "htmlparser2": "3.8.x",
- "lodash": "~4.17.21",
- "minimatch": "~3.0.2",
- "strip-json-comments": "1.0.x"
- },
- "bin": {
- "jshint": "bin/jshint"
- }
- },
- "node_modules/jshint/node_modules/strip-json-comments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
- "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
- "bin": {
- "strip-json-comments": "cli.js"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
- },
- "node_modules/json-stringify-nice": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz",
- "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==",
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jsonc-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
- "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "engines": [
- "node >= 0.2.0"
- ]
- },
- "node_modules/JSONStream": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "dependencies": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
- },
- "bin": {
- "JSONStream": "bin.js"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jsx-ast-utils": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz",
- "integrity": "sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==",
- "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/just-diff": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz",
- "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA=="
- },
- "node_modules/just-diff-apply": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz",
- "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw=="
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/language-subtag-registry": {
- "version": "0.3.22",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
- "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w=="
- },
- "node_modules/language-tags": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
- "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==",
- "dependencies": {
- "language-subtag-registry": "~0.3.2"
- }
- },
- "node_modules/lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "optional": true,
- "dependencies": {
- "invert-kv": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/lerna": {
- "version": "8.1.8",
- "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.1.8.tgz",
- "integrity": "sha512-Rmo5ShMx73xM2CUcRixjmpZIXB7ZFlWEul1YvJyx/rH4onAwDHtUGD7Rx4NZYL8QSRiQHroglM2Oyq+WqA4BYg==",
- "dependencies": {
- "@lerna/create": "8.1.8",
- "@npmcli/arborist": "7.5.4",
- "@npmcli/package-json": "5.2.0",
- "@npmcli/run-script": "8.1.0",
- "@nx/devkit": ">=17.1.2 < 20",
- "@octokit/plugin-enterprise-rest": "6.0.1",
- "@octokit/rest": "19.0.11",
- "aproba": "2.0.0",
- "byte-size": "8.1.1",
- "chalk": "4.1.0",
- "clone-deep": "4.0.1",
- "cmd-shim": "6.0.3",
- "color-support": "1.1.3",
- "columnify": "1.6.0",
- "console-control-strings": "^1.1.0",
- "conventional-changelog-angular": "7.0.0",
- "conventional-changelog-core": "5.0.1",
- "conventional-recommended-bump": "7.0.1",
- "cosmiconfig": "^8.2.0",
- "dedent": "1.5.3",
- "envinfo": "7.13.0",
- "execa": "5.0.0",
- "fs-extra": "^11.2.0",
- "get-port": "5.1.1",
- "get-stream": "6.0.0",
- "git-url-parse": "14.0.0",
- "glob-parent": "6.0.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": "6.0.3",
- "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": "8.0.6",
- "libnpmpublish": "9.0.9",
- "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": "11.0.2",
- "npm-packlist": "8.0.2",
- "npm-registry-fetch": "^17.1.0",
- "nx": ">=17.1.2 < 20",
- "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": "^18.0.6",
- "pify": "5.0.0",
- "read-cmd-shim": "4.0.0",
- "resolve-from": "5.0.0",
- "rimraf": "^4.4.1",
- "semver": "^7.3.8",
- "set-blocking": "^2.0.0",
- "signal-exit": "3.0.7",
- "slash": "3.0.0",
- "ssri": "^10.0.6",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "strong-log-transformer": "2.1.0",
- "tar": "6.2.1",
- "temp-dir": "1.0.0",
- "typescript": ">=3 < 6",
- "upath": "2.0.1",
- "uuid": "^10.0.0",
- "validate-npm-package-license": "3.0.4",
- "validate-npm-package-name": "5.0.1",
- "wide-align": "1.1.5",
- "write-file-atomic": "5.0.1",
- "write-pkg": "4.0.0",
- "yargs": "17.7.2",
- "yargs-parser": "21.1.1"
- },
- "bin": {
- "lerna": "dist/cli.js"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/lerna/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/lerna/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/lerna/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/lerna/node_modules/chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "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/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/lerna/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/lerna/node_modules/glob": {
- "version": "9.3.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
- "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
- "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/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/lerna/node_modules/glob/node_modules/minimatch": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
- "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/lerna/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lerna/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/lerna/node_modules/minipass": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
- "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lerna/node_modules/rimraf": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
- "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
- "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/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lerna/node_modules/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/lerna/node_modules/write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/lerna/node_modules/write-file-atomic/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/libnpmaccess": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-8.0.6.tgz",
- "integrity": "sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==",
- "dependencies": {
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/libnpmpublish": {
- "version": "9.0.9",
- "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-9.0.9.tgz",
- "integrity": "sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==",
- "dependencies": {
- "ci-info": "^4.0.0",
- "normalize-package-data": "^6.0.1",
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1",
- "proc-log": "^4.2.0",
- "semver": "^7.3.7",
- "sigstore": "^2.2.0",
- "ssri": "^10.0.6"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/libnpmpublish/node_modules/ci-info": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
- "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
- "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/load-json-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz",
- "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==",
- "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/load-json-file/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lockfile": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz",
- "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==",
- "dev": true,
- "dependencies": {
- "signal-exit": "^3.0.2"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true
- },
- "node_modules/lodash.ismatch": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
- "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g=="
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
- },
- "node_modules/lodash.truncate": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
- },
- "node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-symbols/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/log-symbols/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/log-symbols/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/log-symbols/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/log-symbols/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/log-symbols/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/loupe": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.0.tgz",
- "integrity": "sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==",
- "dev": true,
- "dependencies": {
- "get-func-name": "^2.0.1"
- }
- },
- "node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
- },
- "node_modules/make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
- "dependencies": {
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-fetch-happen": {
- "version": "13.0.1",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz",
- "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==",
- "dependencies": {
- "@npmcli/agent": "^2.0.0",
- "cacache": "^18.0.0",
- "http-cache-semantics": "^4.1.1",
- "is-lambda": "^1.0.1",
- "minipass": "^7.0.2",
- "minipass-fetch": "^3.0.0",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "proc-log": "^4.2.0",
- "promise-retry": "^2.0.1",
- "ssri": "^10.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/make-fetch-happen/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "dependencies": {
- "tmpl": "1.0.5"
- }
- },
- "node_modules/map-obj": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
- "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/meow": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
- "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
- "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/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/meow/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/meow/node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "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",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "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",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "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",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
- },
- "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "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",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/meow/node_modules/type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/meow/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime-db": {
- "version": "1.49.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
- "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.32",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
- "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
- "dependencies": {
- "mime-db": "1.49.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minimist-options": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
- "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
- "dependencies": {
- "arrify": "^1.0.1",
- "is-plain-obj": "^1.1.0",
- "kind-of": "^6.0.3"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-collect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz",
- "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==",
- "dependencies": {
- "minipass": "^7.0.3"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/minipass-collect/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/minipass-fetch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz",
- "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==",
- "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.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/minipass-flush": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minipass-flush/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-pipeline": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
- "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-pipeline/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-sized": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
- "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-sized/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/modify-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
- "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/multimatch": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
- "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
- "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/multimatch/node_modules/arrify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
- "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
- },
- "node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
- },
- "node_modules/next": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/next/-/next-14.2.13.tgz",
- "integrity": "sha512-BseY9YNw8QJSwLYD7hlZzl6QVDoSFHL/URN5K64kVEVpCsSOWeyjbIGK+dZUaRViHTaMQX8aqmnn0PHBbGZezg==",
- "dependencies": {
- "@next/env": "14.2.13",
- "@swc/helpers": "0.5.5",
- "busboy": "1.6.0",
- "caniuse-lite": "^1.0.30001579",
- "graceful-fs": "^4.2.11",
- "postcss": "8.4.31",
- "styled-jsx": "5.1.1"
- },
- "bin": {
- "next": "dist/bin/next"
- },
- "engines": {
- "node": ">=18.17.0"
- },
- "optionalDependencies": {
- "@next/swc-darwin-arm64": "14.2.13",
- "@next/swc-darwin-x64": "14.2.13",
- "@next/swc-linux-arm64-gnu": "14.2.13",
- "@next/swc-linux-arm64-musl": "14.2.13",
- "@next/swc-linux-x64-gnu": "14.2.13",
- "@next/swc-linux-x64-musl": "14.2.13",
- "@next/swc-win32-arm64-msvc": "14.2.13",
- "@next/swc-win32-ia32-msvc": "14.2.13",
- "@next/swc-win32-x64-msvc": "14.2.13"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.1.0",
- "@playwright/test": "^1.41.2",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "sass": "^1.3.0"
- },
- "peerDependenciesMeta": {
- "@opentelemetry/api": {
- "optional": true
- },
- "@playwright/test": {
- "optional": true
- },
- "sass": {
- "optional": true
- }
- }
- },
- "node_modules/nifti-js": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/nifti-js/-/nifti-js-1.0.1.tgz",
- "integrity": "sha1-cDmi788bzyASUgrdhIXt2YtRSvo=",
- "optionalDependencies": {
- "yargs": "^3.29.0"
- }
- },
- "node_modules/nifti-js/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nifti-js/node_modules/camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nifti-js/node_modules/cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "optional": true,
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "node_modules/nifti-js/node_modules/is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "optional": true,
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nifti-js/node_modules/string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "optional": true,
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nifti-js/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "optional": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nifti-js/node_modules/wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "optional": true,
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nifti-js/node_modules/yargs": {
- "version": "3.32.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
- "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
- "optional": true,
- "dependencies": {
- "camelcase": "^2.0.1",
- "cliui": "^3.0.3",
- "decamelize": "^1.1.1",
- "os-locale": "^1.4.0",
- "string-width": "^1.0.1",
- "window-size": "^0.1.4",
- "y18n": "^3.2.0"
- }
- },
- "node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "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-fetch/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
- },
- "node_modules/node-fetch/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
- },
- "node_modules/node-fetch/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/node-gyp": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz",
- "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==",
- "dependencies": {
- "env-paths": "^2.2.0",
- "exponential-backoff": "^3.1.1",
- "glob": "^10.3.10",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^13.0.0",
- "nopt": "^7.0.0",
- "proc-log": "^4.1.0",
- "semver": "^7.3.5",
- "tar": "^6.2.1",
- "which": "^4.0.0"
- },
- "bin": {
- "node-gyp": "bin/node-gyp.js"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/node-gyp/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/node-gyp/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/node-gyp/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/node-gyp/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/node-gyp/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/node-gyp/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/node-gyp/node_modules/which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "dependencies": {
- "isexe": "^3.1.1"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
- },
- "node_modules/node-machine-id": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz",
- "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ=="
- },
- "node_modules/nopt": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
- "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
- "dependencies": {
- "abbrev": "^2.0.0"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/normalize-package-data": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
- "dependencies": {
- "hosted-git-info": "^7.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-bundled": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz",
- "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==",
- "dependencies": {
- "npm-normalize-package-bin": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-install-checks": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz",
- "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==",
- "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",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
- "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-package-arg": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz",
- "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==",
- "dependencies": {
- "hosted-git-info": "^7.0.0",
- "proc-log": "^4.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^5.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/npm-packlist": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz",
- "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==",
- "dependencies": {
- "ignore-walk": "^6.0.4"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-packlist/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/npm-packlist/node_modules/ignore-walk": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz",
- "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==",
- "dependencies": {
- "minimatch": "^9.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-packlist/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm-pick-manifest": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz",
- "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==",
- "dependencies": {
- "npm-install-checks": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "npm-package-arg": "^11.0.0",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/npm-registry-fetch": {
- "version": "17.1.0",
- "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz",
- "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==",
- "dependencies": {
- "@npmcli/redact": "^2.0.0",
- "jsonparse": "^1.3.1",
- "make-fetch-happen": "^13.0.0",
- "minipass": "^7.0.2",
- "minipass-fetch": "^3.0.0",
- "minizlib": "^2.1.2",
- "npm-package-arg": "^11.0.0",
- "proc-log": "^4.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/npm-registry-fetch/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nwsapi": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.5.tgz",
- "integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==",
- "dev": true
- },
- "node_modules/nx": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/nx/-/nx-19.6.2.tgz",
- "integrity": "sha512-uUC9glC/QDsDhfOSzWl1id9rfUVepVwLhwBGRMeO5K6+Tju7qAsRGZ2NGPoUz6J1AZuWtlKZcr+MOSK2U4+2wQ==",
- "hasInstallScript": true,
- "dependencies": {
- "@napi-rs/wasm-runtime": "0.2.4",
- "@nrwl/tao": "19.6.2",
- "@yarnpkg/lockfile": "^1.1.0",
- "@yarnpkg/parsers": "3.0.0-rc.46",
- "@zkochan/js-yaml": "0.0.7",
- "axios": "^1.7.4",
- "chalk": "^4.1.0",
- "cli-cursor": "3.1.0",
- "cli-spinners": "2.6.1",
- "cliui": "^8.0.1",
- "dotenv": "~16.4.5",
- "dotenv-expand": "~11.0.6",
- "enquirer": "~2.3.6",
- "figures": "3.2.0",
- "flat": "^5.0.2",
- "front-matter": "^4.0.2",
- "fs-extra": "^11.1.0",
- "ignore": "^5.0.4",
- "jest-diff": "^29.4.1",
- "jsonc-parser": "3.2.0",
- "lines-and-columns": "~2.0.3",
- "minimatch": "9.0.3",
- "node-machine-id": "1.1.12",
- "npm-run-path": "^4.0.1",
- "open": "^8.4.0",
- "ora": "5.3.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",
- "yargs": "^17.6.2",
- "yargs-parser": "21.1.1"
- },
- "bin": {
- "nx": "bin/nx.js",
- "nx-cloud": "bin/nx-cloud.js"
- },
- "optionalDependencies": {
- "@nx/nx-darwin-arm64": "19.6.2",
- "@nx/nx-darwin-x64": "19.6.2",
- "@nx/nx-freebsd-x64": "19.6.2",
- "@nx/nx-linux-arm-gnueabihf": "19.6.2",
- "@nx/nx-linux-arm64-gnu": "19.6.2",
- "@nx/nx-linux-arm64-musl": "19.6.2",
- "@nx/nx-linux-x64-gnu": "19.6.2",
- "@nx/nx-linux-x64-musl": "19.6.2",
- "@nx/nx-win32-arm64-msvc": "19.6.2",
- "@nx/nx-win32-x64-msvc": "19.6.2"
- },
- "peerDependencies": {
- "@swc-node/register": "^1.8.0",
- "@swc/core": "^1.3.85"
- },
- "peerDependenciesMeta": {
- "@swc-node/register": {
- "optional": true
- },
- "@swc/core": {
- "optional": true
- }
- }
- },
- "node_modules/nx/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/nx/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/nx/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/nx/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/nx/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/nx/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nx/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/nx/node_modules/ora": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz",
- "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==",
- "dependencies": {
- "bl": "^4.0.3",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-spinners": "^2.5.0",
- "is-interactive": "^1.0.0",
- "log-symbols": "^4.0.0",
- "strip-ansi": "^6.0.0",
- "wcwidth": "^1.0.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/nx/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
- "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
- "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.6",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
- "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.fromentries": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
- "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
- "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.groupby": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz",
- "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1"
- }
- },
- "node_modules/object.hasown": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
- "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
- "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",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
- "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
- "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",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
- "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.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "dev": true,
- "dependencies": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/ora": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
- "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
- "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/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/ora/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "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/ora/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/ora/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/ora/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ora/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "optional": true,
- "dependencies": {
- "lcid": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "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",
- "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz",
- "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-pipe": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz",
- "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-queue": {
- "version": "6.6.2",
- "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
- "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
- "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",
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz",
- "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-timeout": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
- "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
- "dependencies": {
- "p-finally": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/p-waterfall": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz",
- "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==",
- "dependencies": {
- "p-reduce": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/package-json-from-dist": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
- "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw=="
- },
- "node_modules/pacote": {
- "version": "18.0.6",
- "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz",
- "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==",
- "dependencies": {
- "@npmcli/git": "^5.0.0",
- "@npmcli/installed-package-contents": "^2.0.1",
- "@npmcli/package-json": "^5.1.0",
- "@npmcli/promise-spawn": "^7.0.0",
- "@npmcli/run-script": "^8.0.0",
- "cacache": "^18.0.0",
- "fs-minipass": "^3.0.0",
- "minipass": "^7.0.2",
- "npm-package-arg": "^11.0.0",
- "npm-packlist": "^8.0.0",
- "npm-pick-manifest": "^9.0.0",
- "npm-registry-fetch": "^17.0.0",
- "proc-log": "^4.0.0",
- "promise-retry": "^2.0.1",
- "sigstore": "^2.2.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11"
- },
- "bin": {
- "pacote": "bin/index.js"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/pacote/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-cache-control": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
- "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=",
- "dev": true
- },
- "node_modules/parse-conflict-json": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz",
- "integrity": "sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==",
- "dependencies": {
- "json-parse-even-better-errors": "^3.0.0",
- "just-diff": "^6.0.0",
- "just-diff-apply": "^5.2.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/parse-conflict-json/node_modules/json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "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/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
- },
- "node_modules/parse-path": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz",
- "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==",
- "dependencies": {
- "protocols": "^2.0.0"
- }
- },
- "node_modules/parse-url": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz",
- "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==",
- "dependencies": {
- "parse-path": "^7.0.0"
- }
- },
- "node_modules/parse5": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
- "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
- "dev": true,
- "dependencies": {
- "entities": "^4.4.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/parse5/node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "dev": true,
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/path": {
- "version": "0.12.7",
- "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
- "dependencies": {
- "process": "^0.11.1",
- "util": "^0.10.3"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- },
- "node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "node_modules/path/node_modules/util": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
- "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
- "dependencies": {
- "inherits": "2.0.3"
- }
- },
- "node_modules/pathval": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
- "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
- "dev": true,
- "engines": {
- "node": ">= 14.16"
- }
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
- "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/prettier": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
- "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
- "dev": true,
- "bin": {
- "prettier": "bin/prettier.cjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
- }
- },
- "node_modules/prettier-linter-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
- "dev": true,
- "dependencies": {
- "fast-diff": "^1.1.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "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/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/pretty-format/node_modules/react-is": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
- },
- "node_modules/pretty-quick": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-4.0.0.tgz",
- "integrity": "sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==",
- "dev": true,
- "dependencies": {
- "execa": "^5.1.1",
- "find-up": "^5.0.0",
- "ignore": "^5.3.0",
- "mri": "^1.2.0",
- "picocolors": "^1.0.0",
- "picomatch": "^3.0.1",
- "tslib": "^2.6.2"
- },
- "bin": {
- "pretty-quick": "lib/cli.mjs"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "prettier": "^3.0.0"
- }
- },
- "node_modules/pretty-quick/node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "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/pretty-quick/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pretty-quick/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pretty-quick/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pretty-quick/node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pretty-quick/node_modules/picomatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
- "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/proc-log": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
- "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "node_modules/proggy": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz",
- "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/promise": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz",
- "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==",
- "dev": true,
- "dependencies": {
- "asap": "~2.0.6"
- }
- },
- "node_modules/promise-all-reject-late": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz",
- "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==",
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/promise-call-limit": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.1.tgz",
- "integrity": "sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg==",
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/promise-inflight": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="
- },
- "node_modules/promise-retry": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
- "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
- "dependencies": {
- "err-code": "^2.0.2",
- "retry": "^0.12.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/promzard": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/promzard/-/promzard-1.0.2.tgz",
- "integrity": "sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==",
- "dependencies": {
- "read": "^3.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "node_modules/prop-types-extra": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
- "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==",
- "dependencies": {
- "react-is": "^16.3.2",
- "warning": "^4.0.0"
- },
- "peerDependencies": {
- "react": ">=0.14.0"
- }
- },
- "node_modules/protocols": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz",
- "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q=="
- },
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
- },
- "node_modules/psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
- "node_modules/punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pure-rand": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz",
- "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/dubzzz"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fast-check"
- }
- ]
- },
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
- "dev": true
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-bootstrap": {
- "version": "2.10.5",
- "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.5.tgz",
- "integrity": "sha512-XueAOEn64RRkZ0s6yzUTdpFtdUXs5L5491QU//8ZcODKJNDLt/r01tNyriZccjgRImH1REynUc9pqjiRMpDLWQ==",
- "dependencies": {
- "@babel/runtime": "^7.24.7",
- "@restart/hooks": "^0.4.9",
- "@restart/ui": "^1.6.9",
- "@types/react-transition-group": "^4.4.6",
- "classnames": "^2.3.2",
- "dom-helpers": "^5.2.1",
- "invariant": "^2.2.4",
- "prop-types": "^15.8.1",
- "prop-types-extra": "^1.1.0",
- "react-transition-group": "^4.4.5",
- "uncontrollable": "^7.2.1",
- "warning": "^4.0.3"
- },
- "peerDependencies": {
- "@types/react": ">=16.14.8",
- "react": ">=16.14.0",
- "react-dom": ">=16.14.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
- },
- "peerDependencies": {
- "react": "^18.3.1"
- }
- },
- "node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
- "node_modules/react-lifecycles-compat": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
- "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
- },
- "node_modules/react-transition-group": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
- "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
- "dependencies": {
- "@babel/runtime": "^7.5.5",
- "dom-helpers": "^5.0.1",
- "loose-envify": "^1.4.0",
- "prop-types": "^15.6.2"
- },
- "peerDependencies": {
- "react": ">=16.6.0",
- "react-dom": ">=16.6.0"
- }
- },
- "node_modules/read": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/read/-/read-3.0.1.tgz",
- "integrity": "sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==",
- "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",
- "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz",
- "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/read-package-json-fast": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
- "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
- "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-fast/node_modules/json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
- "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",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==",
- "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",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
- "dependencies": {
- "locate-path": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/read-pkg-up/node_modules/locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
- "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",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dependencies": {
- "p-try": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
- "dependencies": {
- "p-limit": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/read-pkg-up/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/read-pkg/node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
- },
- "node_modules/read-pkg/node_modules/load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
- "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/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "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/read-pkg/node_modules/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "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",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dependencies": {
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/read-pkg/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/read-pkg/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/read-pkg/node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/read/node_modules/mute-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz",
- "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/readdirp": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
- "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
- "engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
- "dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/reflect.getprototypeof": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz",
- "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==",
- "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/regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
- },
- "node_modules/regenerate-unicode-properties": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz",
- "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==",
- "dev": true,
- "dependencies": {
- "regenerate": "^1.4.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
- "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
- },
- "node_modules/regenerator-transform": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
- "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.8.4"
- }
- },
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
- "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
- "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/regexpu-core": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
- "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
- "dev": true,
- "dependencies": {
- "@babel/regjsgen": "^0.8.0",
- "regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.1.0",
- "regjsparser": "^0.9.1",
- "unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regjsparser": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
- "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
- "dev": true,
- "dependencies": {
- "jsesc": "~0.5.0"
- },
- "bin": {
- "regjsparser": "bin/parser"
- }
- },
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true
- },
- "node_modules/resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dependencies": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-pkg-maps": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
- "funding": {
- "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
- }
- },
- "node_modules/resolve.exports": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
- "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
- "node_modules/safe-array-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz",
- "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==",
- "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-array-concat/node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
- },
- "node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/safe-regex-test": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
- "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
- "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",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "node_modules/sass": {
- "version": "1.79.4",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.4.tgz",
- "integrity": "sha512-K0QDSNPXgyqO4GZq2HO5Q70TLxTH6cIT59RdoCHMivrC8rqzaTw5ab9prjz9KUN1El4FLXrBXJhik61JR4HcGg==",
- "dependencies": {
- "chokidar": "^4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
- "bin": {
- "sass": "sass.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
- "node_modules/saxes": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
- "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
- "dev": true,
- "dependencies": {
- "xmlchars": "^2.2.0"
- },
- "engines": {
- "node": ">=v12.22.7"
- }
- },
- "node_modules/scheduler": {
- "version": "0.23.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
- "node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
- },
- "node_modules/set-function-length": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
- "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
- "dependencies": {
- "define-data-property": "^1.1.1",
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/set-function-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
- "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
- "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",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "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",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
- "node_modules/sigstore": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz",
- "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==",
- "dependencies": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "@sigstore/sign": "^2.3.2",
- "@sigstore/tuf": "^2.3.4",
- "@sigstore/verify": "^1.2.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/slice-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
- "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "astral-regex": "^2.0.0",
- "is-fullwidth-code-point": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
- }
- },
- "node_modules/slice-ansi/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/slice-ansi/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/slice-ansi/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
- "engines": {
- "node": ">= 6.0.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/socks": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
- "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
- "dependencies": {
- "ip-address": "^9.0.5",
- "smart-buffer": "^4.2.0"
- },
- "engines": {
- "node": ">= 10.0.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/socks-proxy-agent": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz",
- "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==",
- "dependencies": {
- "agent-base": "^7.1.1",
- "debug": "^4.3.4",
- "socks": "^2.8.3"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/socks-proxy-agent/node_modules/agent-base": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
- "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
- "dependencies": {
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/sort-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
- "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==",
- "dependencies": {
- "is-plain-obj": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-exceptions": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
- "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-license-ids": {
- "version": "3.0.20",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz",
- "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw=="
- },
- "node_modules/split": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
- "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
- "dependencies": {
- "through": "2"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "dependencies": {
- "readable-stream": "^3.0.0"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
- },
- "node_modules/ssri": {
- "version": "10.0.6",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
- "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
- "dependencies": {
- "minipass": "^7.0.3"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/ssri/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/stack-utils": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
- "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/stack-utils/node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/stream-browserify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
- "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
- "dependencies": {
- "inherits": "~2.0.4",
- "readable-stream": "^3.5.0"
- }
- },
- "node_modules/stream-events": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz",
- "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==",
- "dev": true,
- "dependencies": {
- "stubs": "^3.0.0"
- }
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "dependencies": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "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",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "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/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/string-width/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/string.prototype.matchall": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
- "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
- "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.trim": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
- "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
- "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",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
- "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
- "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",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
- "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
- "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",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "dependencies": {
- "min-indent": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/strnum": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
- "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
- },
- "node_modules/strong-log-transformer": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz",
- "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==",
- "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/stubs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz",
- "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=",
- "dev": true
- },
- "node_modules/styled-jsx": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
- "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
- "dependencies": {
- "client-only": "0.0.1"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "peerDependencies": {
- "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/symbol-tree": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true
- },
- "node_modules/sync-request": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz",
- "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==",
- "dev": true,
- "dependencies": {
- "http-response-object": "^3.0.1",
- "sync-rpc": "^1.2.1",
- "then-request": "^6.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/sync-rpc": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz",
- "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==",
- "dev": true,
- "dependencies": {
- "get-port": "^3.1.0"
- }
- },
- "node_modules/sync-rpc/node_modules/get-port": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
- "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/synckit": {
- "version": "0.8.8",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz",
- "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
- "dependencies": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
- "node_modules/table": {
- "version": "6.8.2",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
- "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
- "dependencies": {
- "ajv": "^8.0.1",
- "lodash.truncate": "^4.4.2",
- "slice-ansi": "^4.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/table/node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
- "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/table/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- },
- "node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tar": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
- "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-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
- "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/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/teeny-request": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz",
- "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==",
- "dev": true,
- "dependencies": {
- "http-proxy-agent": "^4.0.0",
- "https-proxy-agent": "^5.0.0",
- "node-fetch": "^2.6.1",
- "stream-events": "^1.0.5",
- "uuid": "^8.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/temp-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "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",
- "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz",
- "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
- },
- "node_modules/then-request": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz",
- "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==",
- "dev": true,
- "dependencies": {
- "@types/concat-stream": "^1.6.0",
- "@types/form-data": "0.0.33",
- "@types/node": "^8.0.0",
- "@types/qs": "^6.2.31",
- "caseless": "~0.12.0",
- "concat-stream": "^1.6.0",
- "form-data": "^2.2.0",
- "http-basic": "^8.1.1",
- "http-response-object": "^3.0.1",
- "promise": "^8.0.0",
- "qs": "^6.4.0"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/then-request/node_modules/@types/node": {
- "version": "8.10.66",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
- "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==",
- "dev": true
- },
- "node_modules/then-request/node_modules/concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "dev": true,
- "engines": [
- "node >= 0.8"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/then-request/node_modules/form-data": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
- "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
- "dev": true,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
- "node_modules/then-request/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "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/then-request/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
- },
- "node_modules/through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "node_modules/through2/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "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",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/tmp": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
- "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/tough-cookie": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
- "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
- "dev": true,
- "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",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
- "dev": true,
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/treeverse": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz",
- "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ts-api-utils": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
- "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
- "engines": {
- "node": ">=16"
- },
- "peerDependencies": {
- "typescript": ">=4.2.0"
- }
- },
- "node_modules/tsconfig-paths": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
- "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
- "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",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
- "node_modules/tuf-js": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz",
- "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==",
- "dependencies": {
- "@tufjs/models": "2.0.1",
- "debug": "^4.3.4",
- "make-fetch-happen": "^13.0.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/typed-array-buffer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
- "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
- "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",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
- "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
- "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",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
- "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
- "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",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
- "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",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
- "node_modules/typescript": {
- "version": "4.9.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
- "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=4.2.0"
- }
- },
- "node_modules/uglify-js": {
- "version": "3.19.2",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz",
- "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==",
- "optional": true,
- "bin": {
- "uglifyjs": "bin/uglifyjs"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
- "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/uncontrollable": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
- "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
- "dependencies": {
- "@babel/runtime": "^7.6.3",
- "@types/react": ">=16.9.11",
- "invariant": "^2.2.4",
- "react-lifecycles-compat": "^3.0.4"
- },
- "peerDependencies": {
- "react": ">=15.0.0"
- }
- },
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "dev": true,
- "dependencies": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
- "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-property-aliases-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
- "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unique-filename": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
- "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==",
- "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",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz",
- "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==",
- "dependencies": {
- "imurmurhash": "^0.1.4"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/universal-user-agent": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
- "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ=="
- },
- "node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/upath": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
- "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==",
- "engines": {
- "node": ">=4",
- "yarn": "*"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
- "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"
- }
- ],
- "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",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dev": true,
- "dependencies": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
- "node_modules/urlgrey": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz",
- "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==",
- "dev": true,
- "dependencies": {
- "fast-url-parser": "^1.1.3"
- }
- },
- "node_modules/util": {
- "version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "is-arguments": "^1.0.4",
- "is-generator-function": "^1.0.7",
- "is-typed-array": "^1.1.3",
- "which-typed-array": "^1.1.2"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true,
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/v8-to-istanbul": {
- "version": "9.1.3",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz",
- "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^2.0.0"
- },
- "engines": {
- "node": ">=10.12.0"
- }
- },
- "node_modules/v8-to-istanbul/node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
- },
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "node_modules/validate-npm-package-name": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
- "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/w3c-xmlserializer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
- "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
- "dev": true,
- "dependencies": {
- "xml-name-validator": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/walk-up-path": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
- "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA=="
- },
- "node_modules/walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "dependencies": {
- "makeerror": "1.0.12"
- }
- },
- "node_modules/warning": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
- "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
- "dependencies": {
- "loose-envify": "^1.0.0"
- }
- },
- "node_modules/wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "dependencies": {
- "defaults": "^1.0.3"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/whatwg-encoding": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
- "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
- "dev": true,
- "dependencies": {
- "iconv-lite": "0.6.3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/whatwg-encoding/node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/whatwg-mimetype": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
- "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
- "dev": true,
- "dependencies": {
- "tr46": "^3.0.0",
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
- "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",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
- "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
- "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-builtin-type/node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
- },
- "node_modules/which-collection": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
- "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
- "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.13",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
- "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
- "dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.4",
- "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",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "node_modules/window-size": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
- "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
- "optional": true,
- "bin": {
- "window-size": "cli.js"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
- "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "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",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "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/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/wrap-ansi/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "node_modules/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/write-json-file": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz",
- "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==",
- "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/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/write-json-file/node_modules/pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/write-json-file/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/write-json-file/node_modules/write-file-atomic": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
- "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- },
- "node_modules/write-pkg": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz",
- "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==",
- "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",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz",
- "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ws": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
- "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
- "dev": true,
- "engines": {
- "node": ">=10.0.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": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/xml2js": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
- "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/xmlchars": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/y18n": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
- "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==",
- "optional": true
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "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/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- }
- },
- "dependencies": {
- "@aashutoshrathi/word-wrap": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
- "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA=="
- },
- "@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
- "requires": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@aws-crypto/crc32": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
- "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
- "requires": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-crypto/crc32c": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz",
- "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==",
- "requires": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-crypto/sha1-browser": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz",
- "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==",
- "requires": {
- "@aws-crypto/supports-web-crypto": "^5.2.0",
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "@aws-sdk/util-locate-window": "^3.0.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
- },
- "dependencies": {
- "@smithy/is-array-buffer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
- "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-buffer-from": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
- "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
- "requires": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-utf8": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
- "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
- "requires": {
- "@smithy/util-buffer-from": "^2.2.0",
- "tslib": "^2.6.2"
- }
- }
- }
- },
- "@aws-crypto/sha256-browser": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
- "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
- "requires": {
- "@aws-crypto/sha256-js": "^5.2.0",
- "@aws-crypto/supports-web-crypto": "^5.2.0",
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "@aws-sdk/util-locate-window": "^3.0.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
- },
- "dependencies": {
- "@smithy/is-array-buffer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
- "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-buffer-from": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
- "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
- "requires": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-utf8": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
- "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
- "requires": {
- "@smithy/util-buffer-from": "^2.2.0",
- "tslib": "^2.6.2"
- }
- }
- }
- },
- "@aws-crypto/sha256-js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
- "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
- "requires": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-crypto/supports-web-crypto": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
- "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@aws-crypto/util": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz",
- "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
- "requires": {
- "@aws-sdk/types": "^3.222.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
- },
- "dependencies": {
- "@smithy/is-array-buffer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
- "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-buffer-from": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
- "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
- "requires": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-utf8": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
- "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
- "requires": {
- "@smithy/util-buffer-from": "^2.2.0",
- "tslib": "^2.6.2"
- }
- }
- }
- },
- "@aws-sdk/client-s3": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.637.0.tgz",
- "integrity": "sha512-y6UC94fsMvhKbf0dzfnjVP1HePeGjplfcYfilZU1COIJLyTkMcUv4XcT4I407CGIrvgEafONHkiC09ygqUauNA==",
- "requires": {
- "@aws-crypto/sha1-browser": "5.2.0",
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/client-sso-oidc": "3.637.0",
- "@aws-sdk/client-sts": "3.637.0",
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/credential-provider-node": "3.637.0",
- "@aws-sdk/middleware-bucket-endpoint": "3.620.0",
- "@aws-sdk/middleware-expect-continue": "3.620.0",
- "@aws-sdk/middleware-flexible-checksums": "3.620.0",
- "@aws-sdk/middleware-host-header": "3.620.0",
- "@aws-sdk/middleware-location-constraint": "3.609.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.620.0",
- "@aws-sdk/middleware-sdk-s3": "3.635.0",
- "@aws-sdk/middleware-ssec": "3.609.0",
- "@aws-sdk/middleware-user-agent": "3.637.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/signature-v4-multi-region": "3.635.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@aws-sdk/xml-builder": "3.609.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.4.0",
- "@smithy/eventstream-serde-browser": "^3.0.6",
- "@smithy/eventstream-serde-config-resolver": "^3.0.3",
- "@smithy/eventstream-serde-node": "^3.0.5",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/hash-blob-browser": "^3.1.2",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/hash-stream-node": "^3.1.2",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/md5-js": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.5",
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.15",
- "@smithy/util-defaults-mode-node": "^3.0.15",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-stream": "^3.1.3",
- "@smithy/util-utf8": "^3.0.0",
- "@smithy/util-waiter": "^3.1.2",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/client-sso": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.637.0.tgz",
- "integrity": "sha512-+KjLvgX5yJYROWo3TQuwBJlHCY0zz9PsLuEolmXQn0BVK1L/m9GteZHtd+rEdAoDGBpE0Xqjy1oz5+SmtsaRUw==",
- "requires": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/middleware-host-header": "3.620.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.620.0",
- "@aws-sdk/middleware-user-agent": "3.637.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.4.0",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.5",
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.15",
- "@smithy/util-defaults-mode-node": "^3.0.15",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/client-sso-oidc": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.637.0.tgz",
- "integrity": "sha512-27bHALN6Qb6m6KZmPvRieJ/QRlj1lyac/GT2Rn5kJpre8Mpp+yxrtvp3h9PjNBty4lCeFEENfY4dGNSozBuBcw==",
- "requires": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/credential-provider-node": "3.637.0",
- "@aws-sdk/middleware-host-header": "3.620.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.620.0",
- "@aws-sdk/middleware-user-agent": "3.637.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.4.0",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.5",
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.15",
- "@smithy/util-defaults-mode-node": "^3.0.15",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/client-sts": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.637.0.tgz",
- "integrity": "sha512-xUi7x4qDubtA8QREtlblPuAcn91GS/09YVEY/RwU7xCY0aqGuFwgszAANlha4OUIqva8oVj2WO4gJuG+iaSnhw==",
- "requires": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/client-sso-oidc": "3.637.0",
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/credential-provider-node": "3.637.0",
- "@aws-sdk/middleware-host-header": "3.620.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.620.0",
- "@aws-sdk/middleware-user-agent": "3.637.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.4.0",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.5",
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.15",
- "@smithy/util-defaults-mode-node": "^3.0.15",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/core": {
- "version": "3.635.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.635.0.tgz",
- "integrity": "sha512-i1x/E/sgA+liUE1XJ7rj1dhyXpAKO1UKFUcTTHXok2ARjWTvszHnSXMOsB77aPbmn0fUp1JTx2kHUAZ1LVt5Bg==",
- "requires": {
- "@smithy/core": "^2.4.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/signature-v4": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-middleware": "^3.0.3",
- "fast-xml-parser": "4.4.1",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/credential-provider-env": {
- "version": "3.620.1",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz",
- "integrity": "sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/credential-provider-http": {
- "version": "3.635.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.635.0.tgz",
- "integrity": "sha512-iJyRgEjOCQlBMXqtwPLIKYc7Bsc6nqjrZybdMDenPDa+kmLg7xh8LxHsu9088e+2/wtLicE34FsJJIfzu3L82g==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.1.3",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/credential-provider-ini": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.637.0.tgz",
- "integrity": "sha512-h+PFCWfZ0Q3Dx84SppET/TFpcQHmxFW8/oV9ArEvMilw4EBN+IlxgbL0CnHwjHW64szcmrM0mbebjEfHf4FXmw==",
- "requires": {
- "@aws-sdk/credential-provider-env": "3.620.1",
- "@aws-sdk/credential-provider-http": "3.635.0",
- "@aws-sdk/credential-provider-process": "3.620.1",
- "@aws-sdk/credential-provider-sso": "3.637.0",
- "@aws-sdk/credential-provider-web-identity": "3.621.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/credential-provider-imds": "^3.2.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/credential-provider-node": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.637.0.tgz",
- "integrity": "sha512-yoEhoxJJfs7sPVQ6Is939BDQJZpZCoUgKr/ySse4YKOZ24t4VqgHA6+wV7rYh+7IW24Rd91UTvEzSuHYTlxlNA==",
- "requires": {
- "@aws-sdk/credential-provider-env": "3.620.1",
- "@aws-sdk/credential-provider-http": "3.635.0",
- "@aws-sdk/credential-provider-ini": "3.637.0",
- "@aws-sdk/credential-provider-process": "3.620.1",
- "@aws-sdk/credential-provider-sso": "3.637.0",
- "@aws-sdk/credential-provider-web-identity": "3.621.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/credential-provider-imds": "^3.2.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/credential-provider-process": {
- "version": "3.620.1",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz",
- "integrity": "sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/credential-provider-sso": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.637.0.tgz",
- "integrity": "sha512-Mvz+h+e62/tl+dVikLafhv+qkZJ9RUb8l2YN/LeKMWkxQylPT83CPk9aimVhCV89zth1zpREArl97+3xsfgQvA==",
- "requires": {
- "@aws-sdk/client-sso": "3.637.0",
- "@aws-sdk/token-providers": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/credential-provider-web-identity": {
- "version": "3.621.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz",
- "integrity": "sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-bucket-endpoint": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.620.0.tgz",
- "integrity": "sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-arn-parser": "3.568.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-expect-continue": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.620.0.tgz",
- "integrity": "sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-flexible-checksums": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.620.0.tgz",
- "integrity": "sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA==",
- "requires": {
- "@aws-crypto/crc32": "5.2.0",
- "@aws-crypto/crc32c": "5.2.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/is-array-buffer": "^3.0.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-host-header": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz",
- "integrity": "sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-location-constraint": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz",
- "integrity": "sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-logger": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz",
- "integrity": "sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-recursion-detection": {
- "version": "3.620.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz",
- "integrity": "sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-sdk-s3": {
- "version": "3.635.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.635.0.tgz",
- "integrity": "sha512-RLdYJPEV4JL/7NBoFUs7VlP90X++5FlJdxHz0DzCjmiD3qCviKy+Cym3qg1gBgHwucs5XisuClxDrGokhAdTQw==",
- "requires": {
- "@aws-sdk/core": "3.635.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-arn-parser": "3.568.0",
- "@smithy/core": "^2.4.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/signature-v4": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-stream": "^3.1.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-ssec": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.609.0.tgz",
- "integrity": "sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/middleware-user-agent": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.637.0.tgz",
- "integrity": "sha512-EYo0NE9/da/OY8STDsK2LvM4kNa79DBsf4YVtaG4P5pZ615IeFsD8xOHZeuJmUrSMlVQ8ywPRX7WMucUybsKug==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.637.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/region-config-resolver": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz",
- "integrity": "sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/signature-v4-multi-region": {
- "version": "3.635.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.635.0.tgz",
- "integrity": "sha512-J6QY4/invOkpogCHjSaDON1hF03viPpOnsrzVuCvJMmclS/iG62R4EY0wq1alYll0YmSdmKlpJwHMWwGtqK63Q==",
- "requires": {
- "@aws-sdk/middleware-sdk-s3": "3.635.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/signature-v4": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/token-providers": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz",
- "integrity": "sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/types": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.609.0.tgz",
- "integrity": "sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/util-arn-parser": {
- "version": "3.568.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz",
- "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/util-endpoints": {
- "version": "3.637.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.637.0.tgz",
- "integrity": "sha512-pAqOKUHeVWHEXXDIp/qoMk/6jyxIb6GGjnK1/f8dKHtKIEs4tKsnnL563gceEvdad53OPXIt86uoevCcCzmBnw==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-endpoints": "^2.0.5",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/util-locate-window": {
- "version": "3.568.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz",
- "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/util-user-agent-browser": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz",
- "integrity": "sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "bowser": "^2.11.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/util-user-agent-node": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz",
- "integrity": "sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA==",
- "requires": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@aws-sdk/xml-builder": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz",
- "integrity": "sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
- "requires": {
- "@babel/highlight": "^7.22.13",
- "chalk": "^2.4.2"
- }
- },
- "@babel/compat-data": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz",
- "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ=="
- },
- "@babel/core": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz",
- "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==",
- "requires": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.10",
- "@babel/generator": "^7.22.10",
- "@babel/helper-compilation-targets": "^7.22.10",
- "@babel/helper-module-transforms": "^7.22.9",
- "@babel/helpers": "^7.22.10",
- "@babel/parser": "^7.22.10",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.10",
- "@babel/types": "^7.22.10",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
- "semver": "^6.3.1"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
- }
- }
- },
- "@babel/generator": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
- "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
- "requires": {
- "@babel/types": "^7.23.0",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- }
- },
- "@babel/helper-annotate-as-pure": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
- "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz",
- "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-compilation-targets": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz",
- "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==",
- "requires": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-validator-option": "^7.22.5",
- "browserslist": "^4.21.9",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
- },
- "dependencies": {
- "lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "requires": {
- "yallist": "^3.0.2"
- }
- },
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
- },
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- }
- }
- },
- "@babel/helper-create-class-features-plugin": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz",
- "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "@babel/helper-create-regexp-features-plugin": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz",
- "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "regexpu-core": "^5.3.1",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "@babel/helper-define-polyfill-provider": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz",
- "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==",
- "dev": true,
- "requires": {
- "@babel/helper-compilation-targets": "^7.22.6",
- "@babel/helper-plugin-utils": "^7.22.5",
- "debug": "^4.1.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2"
- }
- },
- "@babel/helper-environment-visitor": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
- "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA=="
- },
- "@babel/helper-function-name": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
- "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
- "requires": {
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.23.0"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-member-expression-to-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz",
- "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-module-imports": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
- "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-module-transforms": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz",
- "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==",
- "requires": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.5"
- }
- },
- "@babel/helper-optimise-call-expression": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
- "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg=="
- },
- "@babel/helper-remap-async-to-generator": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz",
- "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-wrap-function": "^7.22.9"
- }
- },
- "@babel/helper-replace-supers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz",
- "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==",
- "dev": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
- "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
- },
- "@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
- },
- "@babel/helper-validator-option": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
- "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw=="
- },
- "@babel/helper-wrap-function": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz",
- "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==",
- "dev": true,
- "requires": {
- "@babel/helper-function-name": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.10"
- }
- },
- "@babel/helpers": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz",
- "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==",
- "requires": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.10",
- "@babel/types": "^7.22.10"
- }
- },
- "@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
- "requires": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw=="
- },
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz",
- "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz",
- "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.5"
- }
- },
- "@babel/plugin-proposal-private-property-in-object": {
- "version": "7.21.0-placeholder-for-preset-env.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
- "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
- "dev": true,
- "requires": {}
- },
- "@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.12.13"
- }
- },
- "@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.3"
- }
- },
- "@babel/plugin-syntax-import-assertions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
- "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-syntax-import-attributes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
- "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-jsx": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz",
- "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-typescript": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz",
- "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-syntax-unicode-sets-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
- "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-arrow-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
- "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-async-generator-functions": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz",
- "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==",
- "dev": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.9",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- }
- },
- "@babel/plugin-transform-async-to-generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
- "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
- "dev": true,
- "requires": {
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.5"
- }
- },
- "@babel/plugin-transform-block-scoped-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
- "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-block-scoping": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz",
- "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-class-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
- "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
- "dev": true,
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-class-static-block": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz",
- "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==",
- "dev": true,
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- }
- },
- "@babel/plugin-transform-classes": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz",
- "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.6",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "globals": "^11.1.0"
- }
- },
- "@babel/plugin-transform-computed-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
- "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/template": "^7.22.5"
- }
- },
- "@babel/plugin-transform-destructuring": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz",
- "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-dotall-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
- "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-duplicate-keys": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
- "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-dynamic-import": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz",
- "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- }
- },
- "@babel/plugin-transform-exponentiation-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
- "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
- "dev": true,
- "requires": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-export-namespace-from": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz",
- "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
- }
- },
- "@babel/plugin-transform-for-of": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz",
- "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
- "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
- "dev": true,
- "requires": {
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-json-strings": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz",
- "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- }
- },
- "@babel/plugin-transform-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
- "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz",
- "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- }
- },
- "@babel/plugin-transform-member-expression-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
- "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-modules-amd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz",
- "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==",
- "dev": true,
- "requires": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-modules-commonjs": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz",
- "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==",
- "dev": true,
- "requires": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5"
- }
- },
- "@babel/plugin-transform-modules-systemjs": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz",
- "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==",
- "dev": true,
- "requires": {
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5"
- }
- },
- "@babel/plugin-transform-modules-umd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
- "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
- "dev": true,
- "requires": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
- "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-new-target": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
- "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz",
- "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- }
- },
- "@babel/plugin-transform-numeric-separator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz",
- "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- }
- },
- "@babel/plugin-transform-object-rest-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz",
- "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.22.5"
- }
- },
- "@babel/plugin-transform-object-super": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
- "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5"
- }
- },
- "@babel/plugin-transform-optional-catch-binding": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz",
- "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
- }
- },
- "@babel/plugin-transform-optional-chaining": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz",
- "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- }
- },
- "@babel/plugin-transform-parameters": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz",
- "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-private-methods": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
- "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
- "dev": true,
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-private-property-in-object": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz",
- "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- }
- },
- "@babel/plugin-transform-property-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
- "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-regenerator": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz",
- "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "regenerator-transform": "^0.15.2"
- }
- },
- "@babel/plugin-transform-reserved-words": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
- "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-shorthand-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
- "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
- "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
- }
- },
- "@babel/plugin-transform-sticky-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
- "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-template-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
- "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-typeof-symbol": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
- "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-unicode-escapes": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz",
- "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-unicode-property-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
- "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-unicode-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
- "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
- "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- }
- },
- "@babel/preset-env": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz",
- "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-compilation-targets": "^7.22.10",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5",
- "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.22.5",
- "@babel/plugin-syntax-import-attributes": "^7.22.5",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@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-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.22.5",
- "@babel/plugin-transform-async-generator-functions": "^7.22.10",
- "@babel/plugin-transform-async-to-generator": "^7.22.5",
- "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
- "@babel/plugin-transform-block-scoping": "^7.22.10",
- "@babel/plugin-transform-class-properties": "^7.22.5",
- "@babel/plugin-transform-class-static-block": "^7.22.5",
- "@babel/plugin-transform-classes": "^7.22.6",
- "@babel/plugin-transform-computed-properties": "^7.22.5",
- "@babel/plugin-transform-destructuring": "^7.22.10",
- "@babel/plugin-transform-dotall-regex": "^7.22.5",
- "@babel/plugin-transform-duplicate-keys": "^7.22.5",
- "@babel/plugin-transform-dynamic-import": "^7.22.5",
- "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
- "@babel/plugin-transform-export-namespace-from": "^7.22.5",
- "@babel/plugin-transform-for-of": "^7.22.5",
- "@babel/plugin-transform-function-name": "^7.22.5",
- "@babel/plugin-transform-json-strings": "^7.22.5",
- "@babel/plugin-transform-literals": "^7.22.5",
- "@babel/plugin-transform-logical-assignment-operators": "^7.22.5",
- "@babel/plugin-transform-member-expression-literals": "^7.22.5",
- "@babel/plugin-transform-modules-amd": "^7.22.5",
- "@babel/plugin-transform-modules-commonjs": "^7.22.5",
- "@babel/plugin-transform-modules-systemjs": "^7.22.5",
- "@babel/plugin-transform-modules-umd": "^7.22.5",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
- "@babel/plugin-transform-new-target": "^7.22.5",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5",
- "@babel/plugin-transform-numeric-separator": "^7.22.5",
- "@babel/plugin-transform-object-rest-spread": "^7.22.5",
- "@babel/plugin-transform-object-super": "^7.22.5",
- "@babel/plugin-transform-optional-catch-binding": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.10",
- "@babel/plugin-transform-parameters": "^7.22.5",
- "@babel/plugin-transform-private-methods": "^7.22.5",
- "@babel/plugin-transform-private-property-in-object": "^7.22.5",
- "@babel/plugin-transform-property-literals": "^7.22.5",
- "@babel/plugin-transform-regenerator": "^7.22.10",
- "@babel/plugin-transform-reserved-words": "^7.22.5",
- "@babel/plugin-transform-shorthand-properties": "^7.22.5",
- "@babel/plugin-transform-spread": "^7.22.5",
- "@babel/plugin-transform-sticky-regex": "^7.22.5",
- "@babel/plugin-transform-template-literals": "^7.22.5",
- "@babel/plugin-transform-typeof-symbol": "^7.22.5",
- "@babel/plugin-transform-unicode-escapes": "^7.22.10",
- "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
- "@babel/preset-modules": "0.1.6-no-external-plugins",
- "@babel/types": "^7.22.10",
- "babel-plugin-polyfill-corejs2": "^0.4.5",
- "babel-plugin-polyfill-corejs3": "^0.8.3",
- "babel-plugin-polyfill-regenerator": "^0.5.2",
- "core-js-compat": "^3.31.0",
- "semver": "^6.3.1"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
- }
- }
- },
- "@babel/preset-modules": {
- "version": "0.1.6-no-external-plugins",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
- "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- }
- },
- "@babel/regjsgen": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
- "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
- "dev": true
- },
- "@babel/runtime": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz",
- "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==",
- "requires": {
- "regenerator-runtime": "^0.14.0"
- }
- },
- "@babel/template": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
- "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
- "requires": {
- "@babel/code-frame": "^7.22.13",
- "@babel/parser": "^7.22.15",
- "@babel/types": "^7.22.15"
- }
- },
- "@babel/traverse": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
- "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
- "requires": {
- "@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"
- }
- },
- "@babel/types": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
- "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
- "requires": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.20",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
- },
- "@emnapi/core": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.2.0.tgz",
- "integrity": "sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==",
- "requires": {
- "@emnapi/wasi-threads": "1.0.1",
- "tslib": "^2.4.0"
- }
- },
- "@emnapi/runtime": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz",
- "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==",
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "@emnapi/wasi-threads": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz",
- "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==",
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "@esbuild/aix-ppc64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz",
- "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==",
- "dev": true,
- "optional": true
- },
- "@esbuild/android-arm": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz",
- "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==",
- "dev": true,
- "optional": true
- },
- "@esbuild/android-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz",
- "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==",
- "dev": true,
- "optional": true
- },
- "@esbuild/android-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz",
- "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/darwin-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz",
- "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==",
- "dev": true,
- "optional": true
- },
- "@esbuild/darwin-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz",
- "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/freebsd-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz",
- "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/freebsd-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz",
- "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-arm": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz",
- "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz",
- "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-ia32": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz",
- "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-loong64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz",
- "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-mips64el": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz",
- "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-ppc64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz",
- "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-riscv64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz",
- "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-s390x": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz",
- "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz",
- "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/netbsd-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz",
- "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==",
- "dev": true,
- "optional": true
- },
- "@esbuild/openbsd-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz",
- "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==",
- "dev": true,
- "optional": true
- },
- "@esbuild/openbsd-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz",
- "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==",
- "dev": true,
- "optional": true
- },
- "@esbuild/sunos-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz",
- "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/win32-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz",
- "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/win32-ia32": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz",
- "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==",
- "dev": true,
- "optional": true
- },
- "@esbuild/win32-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz",
- "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==",
- "dev": true,
- "optional": true
- },
- "@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
- "requires": {
- "eslint-visitor-keys": "^3.3.0"
- }
- },
- "@eslint-community/regexpp": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
- "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q=="
- },
- "@eslint/eslintrc": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
- "requires": {
- "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"
- },
- "dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "globals": {
- "version": "13.23.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
- "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
- }
- }
- },
- "@eslint/js": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g=="
- },
- "@humanwhocodes/config-array": {
- "version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
- "requires": {
- "@humanwhocodes/object-schema": "^2.0.2",
- "debug": "^4.3.1",
- "minimatch": "^3.0.5"
- }
- },
- "@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
- },
- "@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw=="
- },
- "@hutson/parse-repository-url": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz",
- "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q=="
- },
- "@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "requires": {
- "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"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
- },
- "ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="
- },
- "emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
- },
- "string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "requires": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- }
- },
- "strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "requires": {
- "ansi-regex": "^6.0.1"
- }
- },
- "wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "requires": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- }
- }
- }
- },
- "@isaacs/string-locale-compare": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz",
- "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ=="
- },
- "@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "requires": {
- "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"
- }
- },
- "@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="
- },
- "@jest/console": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
- "requires": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "@jest/core": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
- "requires": {
- "@jest/console": "^29.7.0",
- "@jest/reporters": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.7.0",
- "jest-config": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-resolve-dependencies": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "@jest/environment": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
- "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
- "requires": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0"
- }
- },
- "@jest/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
- "requires": {
- "expect": "^29.7.0",
- "jest-snapshot": "^29.7.0"
- }
- },
- "@jest/expect-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
- "requires": {
- "jest-get-type": "^29.6.3"
- }
- },
- "@jest/fake-timers": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
- "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
- "requires": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
- "@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- }
- },
- "@jest/globals": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
- "requires": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/types": "^29.6.3",
- "jest-mock": "^29.7.0"
- }
- },
- "@jest/reporters": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
- "requires": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^6.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "requires": {
- "@sinclair/typebox": "^0.27.8"
- }
- },
- "@jest/source-map": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- }
- },
- "@jest/test-result": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
- "requires": {
- "@jest/console": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- }
- },
- "@jest/test-sequencer": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
- "requires": {
- "@jest/test-result": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "slash": "^3.0.0"
- }
- },
- "@jest/transform": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
- "requires": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
- "convert-source-map": "^2.0.0",
- "fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
- "requires": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
- },
- "@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
- },
- "@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
- },
- "@jridgewell/trace-mapping": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
- "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
- "requires": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- },
- "dependencies": {
- "@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
- }
- }
- },
- "@lerna/create": {
- "version": "8.1.8",
- "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.1.8.tgz",
- "integrity": "sha512-wi72R01tgjBjzG2kjRyTHl4yCTKDfDMIXRyKz9E/FBa9SkFvUOAE4bdyY9MhEsRZmSWL7+CYE8Flv/HScRpBbA==",
- "requires": {
- "@npmcli/arborist": "7.5.4",
- "@npmcli/package-json": "5.2.0",
- "@npmcli/run-script": "8.1.0",
- "@nx/devkit": ">=17.1.2 < 20",
- "@octokit/plugin-enterprise-rest": "6.0.1",
- "@octokit/rest": "19.0.11",
- "aproba": "2.0.0",
- "byte-size": "8.1.1",
- "chalk": "4.1.0",
- "clone-deep": "4.0.1",
- "cmd-shim": "6.0.3",
- "color-support": "1.1.3",
- "columnify": "1.6.0",
- "console-control-strings": "^1.1.0",
- "conventional-changelog-core": "5.0.1",
- "conventional-recommended-bump": "7.0.1",
- "cosmiconfig": "^8.2.0",
- "dedent": "1.5.3",
- "execa": "5.0.0",
- "fs-extra": "^11.2.0",
- "get-stream": "6.0.0",
- "git-url-parse": "14.0.0",
- "glob-parent": "6.0.2",
- "globby": "11.1.0",
- "graceful-fs": "4.2.11",
- "has-unicode": "2.0.1",
- "ini": "^1.3.8",
- "init-package-json": "6.0.3",
- "inquirer": "^8.2.4",
- "is-ci": "3.0.1",
- "is-stream": "2.0.0",
- "js-yaml": "4.1.0",
- "libnpmpublish": "9.0.9",
- "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": "11.0.2",
- "npm-packlist": "8.0.2",
- "npm-registry-fetch": "^17.1.0",
- "nx": ">=17.1.2 < 20",
- "p-map": "4.0.0",
- "p-map-series": "2.1.0",
- "p-queue": "6.6.2",
- "p-reduce": "^2.1.0",
- "pacote": "^18.0.6",
- "pify": "5.0.0",
- "read-cmd-shim": "4.0.0",
- "resolve-from": "5.0.0",
- "rimraf": "^4.4.1",
- "semver": "^7.3.4",
- "set-blocking": "^2.0.0",
- "signal-exit": "3.0.7",
- "slash": "^3.0.0",
- "ssri": "^10.0.6",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "strong-log-transformer": "2.1.0",
- "tar": "6.2.1",
- "temp-dir": "1.0.0",
- "upath": "2.0.1",
- "uuid": "^10.0.0",
- "validate-npm-package-license": "^3.0.4",
- "validate-npm-package-name": "5.0.1",
- "wide-align": "1.1.5",
- "write-file-atomic": "5.0.1",
- "write-pkg": "4.0.0",
- "yargs": "17.7.2",
- "yargs-parser": "21.1.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "glob": {
- "version": "9.3.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
- "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "minimatch": "^8.0.2",
- "minipass": "^4.2.4",
- "path-scurry": "^1.6.1"
- },
- "dependencies": {
- "minimatch": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
- "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "minipass": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
- "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ=="
- },
- "rimraf": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
- "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
- "requires": {
- "glob": "^9.2.0"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ=="
- },
- "write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
- "requires": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "dependencies": {
- "signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
- }
- }
- }
- }
- },
- "@napi-rs/wasm-runtime": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz",
- "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==",
- "requires": {
- "@emnapi/core": "^1.1.0",
- "@emnapi/runtime": "^1.1.0",
- "@tybys/wasm-util": "^0.9.0"
- }
- },
- "@next/env": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.13.tgz",
- "integrity": "sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw=="
- },
- "@next/eslint-plugin-next": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.13.tgz",
- "integrity": "sha512-z8Mk0VljxhIzsSiZUSdt3wp+t2lKd+jk5a9Jsvh3zDGkItgDMfjv/ZbET6HsxEl/fSihVoHGsXV6VLyDH0lfTQ==",
- "requires": {
- "glob": "10.3.10"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "requires": {
- "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"
- }
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "@next/swc-darwin-arm64": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.13.tgz",
- "integrity": "sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==",
- "optional": true
- },
- "@next/swc-darwin-x64": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.13.tgz",
- "integrity": "sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==",
- "optional": true
- },
- "@next/swc-linux-arm64-gnu": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.13.tgz",
- "integrity": "sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==",
- "optional": true
- },
- "@next/swc-linux-arm64-musl": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.13.tgz",
- "integrity": "sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==",
- "optional": true
- },
- "@next/swc-linux-x64-gnu": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.13.tgz",
- "integrity": "sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA==",
- "optional": true
- },
- "@next/swc-linux-x64-musl": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.13.tgz",
- "integrity": "sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg==",
- "optional": true
- },
- "@next/swc-win32-arm64-msvc": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.13.tgz",
- "integrity": "sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==",
- "optional": true
- },
- "@next/swc-win32-ia32-msvc": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.13.tgz",
- "integrity": "sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==",
- "optional": true
- },
- "@next/swc-win32-x64-msvc": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.13.tgz",
- "integrity": "sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==",
- "optional": true
- },
- "@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "requires": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- }
- },
- "@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
- },
- "@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "requires": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- }
- },
- "@npmcli/agent": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz",
- "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==",
- "requires": {
- "agent-base": "^7.1.0",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.1",
- "lru-cache": "^10.0.1",
- "socks-proxy-agent": "^8.0.3"
- },
- "dependencies": {
- "agent-base": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
- "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
- "requires": {
- "debug": "^4.3.4"
- }
- },
- "http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "requires": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- }
- },
- "https-proxy-agent": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
- "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
- "requires": {
- "agent-base": "^7.0.2",
- "debug": "4"
- }
- }
- }
- },
- "@npmcli/arborist": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz",
- "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==",
- "requires": {
- "@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/fs": "^3.1.1",
- "@npmcli/installed-package-contents": "^2.1.0",
- "@npmcli/map-workspaces": "^3.0.2",
- "@npmcli/metavuln-calculator": "^7.1.1",
- "@npmcli/name-from-folder": "^2.0.0",
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.1.0",
- "@npmcli/query": "^3.1.0",
- "@npmcli/redact": "^2.0.0",
- "@npmcli/run-script": "^8.1.0",
- "bin-links": "^4.0.4",
- "cacache": "^18.0.3",
- "common-ancestor-path": "^1.0.1",
- "hosted-git-info": "^7.0.2",
- "json-parse-even-better-errors": "^3.0.2",
- "json-stringify-nice": "^1.1.4",
- "lru-cache": "^10.2.2",
- "minimatch": "^9.0.4",
- "nopt": "^7.2.1",
- "npm-install-checks": "^6.2.0",
- "npm-package-arg": "^11.0.2",
- "npm-pick-manifest": "^9.0.1",
- "npm-registry-fetch": "^17.0.1",
- "pacote": "^18.0.6",
- "parse-conflict-json": "^3.0.0",
- "proc-log": "^4.2.0",
- "proggy": "^2.0.0",
- "promise-all-reject-late": "^1.0.0",
- "promise-call-limit": "^3.0.1",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.7",
- "ssri": "^10.0.6",
- "treeverse": "^3.0.0",
- "walk-up-path": "^3.0.1"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ=="
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "@npmcli/fs": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz",
- "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==",
- "requires": {
- "semver": "^7.3.5"
- }
- },
- "@npmcli/git": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz",
- "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==",
- "requires": {
- "@npmcli/promise-spawn": "^7.0.0",
- "ini": "^4.1.3",
- "lru-cache": "^10.0.1",
- "npm-pick-manifest": "^9.0.0",
- "proc-log": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "promise-retry": "^2.0.1",
- "semver": "^7.3.5",
- "which": "^4.0.0"
- },
- "dependencies": {
- "ini": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
- "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg=="
- },
- "isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="
- },
- "which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "requires": {
- "isexe": "^3.1.1"
- }
- }
- }
- },
- "@npmcli/installed-package-contents": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz",
- "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==",
- "requires": {
- "npm-bundled": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- }
- },
- "@npmcli/map-workspaces": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz",
- "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==",
- "requires": {
- "@npmcli/name-from-folder": "^2.0.0",
- "glob": "^10.2.2",
- "minimatch": "^9.0.0",
- "read-package-json-fast": "^3.0.0"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "requires": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- }
- },
- "jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "requires": {
- "@isaacs/cliui": "^8.0.2",
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "@npmcli/metavuln-calculator": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz",
- "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==",
- "requires": {
- "cacache": "^18.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "pacote": "^18.0.0",
- "proc-log": "^4.1.0",
- "semver": "^7.3.5"
- },
- "dependencies": {
- "json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ=="
- }
- }
- },
- "@npmcli/name-from-folder": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz",
- "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg=="
- },
- "@npmcli/node-gyp": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz",
- "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA=="
- },
- "@npmcli/package-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz",
- "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==",
- "requires": {
- "@npmcli/git": "^5.0.0",
- "glob": "^10.2.2",
- "hosted-git-info": "^7.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "normalize-package-data": "^6.0.0",
- "proc-log": "^4.0.0",
- "semver": "^7.5.3"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "requires": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- }
- },
- "jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "requires": {
- "@isaacs/cliui": "^8.0.2",
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ=="
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "@npmcli/promise-spawn": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz",
- "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==",
- "requires": {
- "which": "^4.0.0"
- },
- "dependencies": {
- "isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="
- },
- "which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "requires": {
- "isexe": "^3.1.1"
- }
- }
- }
- },
- "@npmcli/query": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz",
- "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==",
- "requires": {
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "@npmcli/redact": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz",
- "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw=="
- },
- "@npmcli/run-script": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz",
- "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==",
- "requires": {
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.0.0",
- "@npmcli/promise-spawn": "^7.0.0",
- "node-gyp": "^10.0.0",
- "proc-log": "^4.0.0",
- "which": "^4.0.0"
- },
- "dependencies": {
- "isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="
- },
- "which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "requires": {
- "isexe": "^3.1.1"
- }
- }
- }
- },
- "@nrwl/devkit": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.6.2.tgz",
- "integrity": "sha512-1caQTLJBcvOLDZpB3yHY0zczcaaOh044MeegS0oyllPYYbCi6PiJK33HC8qoH1TGiahT6+VxSFN7OYnD3QK4vQ==",
- "requires": {
- "@nx/devkit": "19.6.2"
- }
- },
- "@nrwl/tao": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.6.2.tgz",
- "integrity": "sha512-DcqpaKpkUbF+J2kVRoLtYZOFpr8mu4+fHiKIjrdliKVabSOzekwRAx0DN+VZdpUoaZ2+5W+F8RFhSak1216ZCg==",
- "requires": {
- "nx": "19.6.2",
- "tslib": "^2.3.0"
- }
- },
- "@nx/devkit": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.6.2.tgz",
- "integrity": "sha512-fyZ+z0CnpXsGbnOTgsxwjOJH/K1cgSkhyHSOW3BcIvncx4Q4o8Y74flRz2mrZLJeURBs+IelYI2REkCPdba2cg==",
- "requires": {
- "@nrwl/devkit": "19.6.2",
- "ejs": "^3.1.7",
- "enquirer": "~2.3.6",
- "ignore": "^5.0.4",
- "minimatch": "9.0.3",
- "semver": "^7.5.3",
- "tmp": "~0.2.1",
- "tslib": "^2.3.0",
- "yargs-parser": "21.1.1"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "@nx/nx-darwin-arm64": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.6.2.tgz",
- "integrity": "sha512-WCt9bK5CiuXiiE/8ivoeOEy3J2xYx2Eduea+8PdyK+21FzWakSV4GK0DUfC/dmLPyc+osx2kpmVO+l4HVBIEJw==",
- "optional": true
- },
- "@nx/nx-darwin-x64": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.6.2.tgz",
- "integrity": "sha512-jCB4yTE97/UkUd1V7ttFLJkVRx2vkQgHAqcmU0l8pAPRWKplYkO43J4g4M3M8SyLsX6arPIlfIT3uBh8TzqxXA==",
- "optional": true
- },
- "@nx/nx-freebsd-x64": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.6.2.tgz",
- "integrity": "sha512-ZBFTHO9vhaSpzuopAww9xznseNjE2CUXGSq5be0CUBoIvGn4TWvjOfv+tinIbKSYiWdfL1PYMqnE2FIqyxscNA==",
- "optional": true
- },
- "@nx/nx-linux-arm-gnueabihf": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.6.2.tgz",
- "integrity": "sha512-Aubnlvx/47zAOIlp+ZWxe6Xq3cX9sSMRsB7xZhLkGnpcKwsKEh+uDWi6yfdnmLBp02ZY16qwcpAeYlyBRHZRUA==",
- "optional": true
- },
- "@nx/nx-linux-arm64-gnu": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.6.2.tgz",
- "integrity": "sha512-LorZsjhaz7vajwzGVAGUMtMpu5232UvJceB7XzUXF1TEWM2FZfSUCdLKdQgR2YZHeALYzVoEQgU/j6zKldMqpw==",
- "optional": true
- },
- "@nx/nx-linux-arm64-musl": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.6.2.tgz",
- "integrity": "sha512-+s4BD6NkmsrnxYHWpJ84Lm49rsTa5tY4Zpz09kpMCc7NNQdIYtWimexGmaHGiIY9FmwqaQCx54lCxSXUXQ3hoQ==",
- "optional": true
- },
- "@nx/nx-linux-x64-gnu": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.6.2.tgz",
- "integrity": "sha512-O7ao0x7j7mwgPS8DkWmMtewTRyharQSURq2kUgWwyCJgVbr5ggV8RySmt/uLT9Tv/2LUDerWdBnd30oDr70M5g==",
- "optional": true
- },
- "@nx/nx-linux-x64-musl": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.6.2.tgz",
- "integrity": "sha512-7tVOQoorw8o1n5CAtLTlJx9oI/py+V3NX0PTdX/Pa7tA6gxyrZW51HlpODssRZ5PM9171G8VAZVROP9eDLfntQ==",
- "optional": true
- },
- "@nx/nx-win32-arm64-msvc": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.6.2.tgz",
- "integrity": "sha512-l12NsHLaCAYdZPOP8KrXnSWxrytcJuifBJTejy7Xu9rFQMEDWI7dKap8vKJrYIRUtJjOsF8Yjq38064noZkLdw==",
- "optional": true
- },
- "@nx/nx-win32-x64-msvc": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.6.2.tgz",
- "integrity": "sha512-B+80FY1kDWHMCOZubt786BtQOZn+LJ6CzjDGHSocqVMVqJDvBzrlf4qwmHeOIACWAsbZtJmWu+do3FriZ53ovA==",
- "optional": true
- },
- "@octokit/auth-token": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz",
- "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ=="
- },
- "@octokit/core": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz",
- "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==",
- "requires": {
- "@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"
- }
- },
- "@octokit/endpoint": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz",
- "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==",
- "requires": {
- "@octokit/types": "^9.0.0",
- "is-plain-object": "^5.0.0",
- "universal-user-agent": "^6.0.0"
- }
- },
- "@octokit/graphql": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz",
- "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==",
- "requires": {
- "@octokit/request": "^6.0.0",
- "@octokit/types": "^9.0.0",
- "universal-user-agent": "^6.0.0"
- }
- },
- "@octokit/openapi-types": {
- "version": "18.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz",
- "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw=="
- },
- "@octokit/plugin-enterprise-rest": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz",
- "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw=="
- },
- "@octokit/plugin-paginate-rest": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz",
- "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==",
- "requires": {
- "@octokit/tsconfig": "^1.0.2",
- "@octokit/types": "^9.2.3"
- }
- },
- "@octokit/plugin-request-log": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz",
- "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==",
- "requires": {}
- },
- "@octokit/plugin-rest-endpoint-methods": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz",
- "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==",
- "requires": {
- "@octokit/types": "^10.0.0"
- },
- "dependencies": {
- "@octokit/types": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz",
- "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==",
- "requires": {
- "@octokit/openapi-types": "^18.0.0"
- }
- }
- }
- },
- "@octokit/request": {
- "version": "6.2.8",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz",
- "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==",
- "requires": {
- "@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"
- }
- },
- "@octokit/request-error": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz",
- "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==",
- "requires": {
- "@octokit/types": "^9.0.0",
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
- }
- },
- "@octokit/rest": {
- "version": "19.0.11",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.11.tgz",
- "integrity": "sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==",
- "requires": {
- "@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"
- }
- },
- "@octokit/tsconfig": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz",
- "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA=="
- },
- "@octokit/types": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz",
- "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==",
- "requires": {
- "@octokit/openapi-types": "^18.0.0"
- }
- },
- "@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "optional": true
- },
- "@pkgr/core": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz",
- "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ=="
- },
- "@popperjs/core": {
- "version": "2.11.8",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
- "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A=="
- },
- "@react-aria/ssr": {
- "version": "3.9.4",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.4.tgz",
- "integrity": "sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ==",
- "requires": {
- "@swc/helpers": "^0.5.0"
- }
- },
- "@restart/hooks": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz",
- "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==",
- "requires": {
- "dequal": "^2.0.3"
- }
- },
- "@restart/ui": {
- "version": "1.6.9",
- "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.6.9.tgz",
- "integrity": "sha512-mUbygUsJcRurjZCt1f77gg4DpheD1D+Sc7J3JjAkysUj7t8m4EBJVOqWC9788Qtbc69cJ+HlJc6jBguKwS8Mcw==",
- "requires": {
- "@babel/runtime": "^7.21.0",
- "@popperjs/core": "^2.11.6",
- "@react-aria/ssr": "^3.5.0",
- "@restart/hooks": "^0.4.9",
- "@types/warning": "^3.0.0",
- "dequal": "^2.0.3",
- "dom-helpers": "^5.2.0",
- "uncontrollable": "^8.0.1",
- "warning": "^4.0.3"
- },
- "dependencies": {
- "uncontrollable": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz",
- "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==",
- "requires": {}
- }
- }
- },
- "@rushstack/eslint-patch": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz",
- "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA=="
- },
- "@sigstore/bundle": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz",
- "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==",
- "requires": {
- "@sigstore/protobuf-specs": "^0.3.2"
- }
- },
- "@sigstore/core": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz",
- "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg=="
- },
- "@sigstore/protobuf-specs": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz",
- "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw=="
- },
- "@sigstore/sign": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz",
- "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==",
- "requires": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "make-fetch-happen": "^13.0.1",
- "proc-log": "^4.2.0",
- "promise-retry": "^2.0.1"
- }
- },
- "@sigstore/tuf": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz",
- "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==",
- "requires": {
- "@sigstore/protobuf-specs": "^0.3.2",
- "tuf-js": "^2.2.1"
- }
- },
- "@sigstore/verify": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz",
- "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==",
- "requires": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.1.0",
- "@sigstore/protobuf-specs": "^0.3.2"
- }
- },
- "@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
- },
- "@sinonjs/commons": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
- "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
- "requires": {
- "type-detect": "4.0.8"
- }
- },
- "@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
- "requires": {
- "@sinonjs/commons": "^3.0.0"
- }
- },
- "@smithy/abort-controller": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.1.tgz",
- "integrity": "sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/chunked-blob-reader": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz",
- "integrity": "sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/chunked-blob-reader-native": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz",
- "integrity": "sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==",
- "requires": {
- "@smithy/util-base64": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/config-resolver": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.5.tgz",
- "integrity": "sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA==",
- "requires": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/core": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.4.0.tgz",
- "integrity": "sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w==",
- "requires": {
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-retry": "^3.0.15",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/credential-provider-imds": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz",
- "integrity": "sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA==",
- "requires": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/eventstream-codec": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz",
- "integrity": "sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw==",
- "requires": {
- "@aws-crypto/crc32": "5.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-hex-encoding": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/eventstream-serde-browser": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.6.tgz",
- "integrity": "sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ==",
- "requires": {
- "@smithy/eventstream-serde-universal": "^3.0.5",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/eventstream-serde-config-resolver": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz",
- "integrity": "sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/eventstream-serde-node": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.5.tgz",
- "integrity": "sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ==",
- "requires": {
- "@smithy/eventstream-serde-universal": "^3.0.5",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/eventstream-serde-universal": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.5.tgz",
- "integrity": "sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ==",
- "requires": {
- "@smithy/eventstream-codec": "^3.1.2",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/fetch-http-handler": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz",
- "integrity": "sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg==",
- "requires": {
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/querystring-builder": "^3.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-base64": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/hash-blob-browser": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz",
- "integrity": "sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg==",
- "requires": {
- "@smithy/chunked-blob-reader": "^3.0.0",
- "@smithy/chunked-blob-reader-native": "^3.0.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/hash-node": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.3.tgz",
- "integrity": "sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/hash-stream-node": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz",
- "integrity": "sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/invalid-dependency": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz",
- "integrity": "sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/is-array-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz",
- "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/md5-js": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.3.tgz",
- "integrity": "sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/middleware-content-length": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz",
- "integrity": "sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw==",
- "requires": {
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/middleware-endpoint": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz",
- "integrity": "sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw==",
- "requires": {
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-middleware": "^3.0.3",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/middleware-retry": {
- "version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.15.tgz",
- "integrity": "sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ==",
- "requires": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/service-error-classification": "^3.0.3",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
- },
- "dependencies": {
- "uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="
- }
- }
- },
- "@smithy/middleware-serde": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz",
- "integrity": "sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/middleware-stack": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz",
- "integrity": "sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/node-config-provider": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz",
- "integrity": "sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ==",
- "requires": {
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/node-http-handler": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.1.4.tgz",
- "integrity": "sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg==",
- "requires": {
- "@smithy/abort-controller": "^3.1.1",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/querystring-builder": "^3.0.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/property-provider": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.3.tgz",
- "integrity": "sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/protocol-http": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.0.tgz",
- "integrity": "sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/querystring-builder": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz",
- "integrity": "sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-uri-escape": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/querystring-parser": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz",
- "integrity": "sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/service-error-classification": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz",
- "integrity": "sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ==",
- "requires": {
- "@smithy/types": "^3.3.0"
- }
- },
- "@smithy/shared-ini-file-loader": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz",
- "integrity": "sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/signature-v4": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.1.0.tgz",
- "integrity": "sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag==",
- "requires": {
- "@smithy/is-array-buffer": "^3.0.0",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-hex-encoding": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-uri-escape": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/smithy-client": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.2.0.tgz",
- "integrity": "sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw==",
- "requires": {
- "@smithy/middleware-endpoint": "^3.1.0",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.1.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.1.3",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/types": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.3.0.tgz",
- "integrity": "sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/url-parser": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.3.tgz",
- "integrity": "sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A==",
- "requires": {
- "@smithy/querystring-parser": "^3.0.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-base64": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz",
- "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==",
- "requires": {
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-body-length-browser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz",
- "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-body-length-node": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz",
- "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-buffer-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz",
- "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==",
- "requires": {
- "@smithy/is-array-buffer": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-config-provider": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz",
- "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-defaults-mode-browser": {
- "version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.15.tgz",
- "integrity": "sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg==",
- "requires": {
- "@smithy/property-provider": "^3.1.3",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "bowser": "^2.11.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-defaults-mode-node": {
- "version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.15.tgz",
- "integrity": "sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A==",
- "requires": {
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/credential-provider-imds": "^3.2.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/smithy-client": "^3.2.0",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-endpoints": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz",
- "integrity": "sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg==",
- "requires": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-hex-encoding": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz",
- "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-middleware": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.3.tgz",
- "integrity": "sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw==",
- "requires": {
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-retry": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.3.tgz",
- "integrity": "sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w==",
- "requires": {
- "@smithy/service-error-classification": "^3.0.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-stream": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.1.3.tgz",
- "integrity": "sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw==",
- "requires": {
- "@smithy/fetch-http-handler": "^3.2.4",
- "@smithy/node-http-handler": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-hex-encoding": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-uri-escape": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz",
- "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==",
- "requires": {
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-utf8": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz",
- "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==",
- "requires": {
- "@smithy/util-buffer-from": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "@smithy/util-waiter": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.2.tgz",
- "integrity": "sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw==",
- "requires": {
- "@smithy/abort-controller": "^3.1.1",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- }
- },
- "@swc/counter": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
- "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
- },
- "@swc/helpers": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
- "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
- "requires": {
- "@swc/counter": "^0.1.3",
- "tslib": "^2.4.0"
- }
- },
- "@tootallnate/once": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
- "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
- "dev": true
- },
- "@tufjs/canonical-json": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz",
- "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA=="
- },
- "@tufjs/models": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz",
- "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==",
- "requires": {
- "@tufjs/canonical-json": "2.0.0",
- "minimatch": "^9.0.4"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "@tybys/wasm-util": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
- "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "@types/babel__core": {
- "version": "7.20.3",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz",
- "integrity": "sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==",
- "requires": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "@types/babel__generator": {
- "version": "7.6.6",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz",
- "integrity": "sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==",
- "requires": {
- "@babel/types": "^7.0.0"
- }
- },
- "@types/babel__template": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.3.tgz",
- "integrity": "sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==",
- "requires": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "@types/babel__traverse": {
- "version": "7.20.3",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.3.tgz",
- "integrity": "sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==",
- "requires": {
- "@babel/types": "^7.20.7"
- }
- },
- "@types/concat-stream": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz",
- "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/form-data": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz",
- "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/graceful-fs": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz",
- "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/istanbul-lib-coverage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
- },
- "@types/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
- "requires": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "@types/istanbul-reports": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
- "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
- "requires": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "@types/jsdom": {
- "version": "20.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz",
- "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "@types/tough-cookie": "*",
- "parse5": "^7.0.0"
- }
- },
- "@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
- },
- "@types/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
- },
- "@types/minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag=="
- },
- "@types/node": {
- "version": "16.7.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.9.tgz",
- "integrity": "sha512-KktxVzS4FPDFVHUUOWyZMvRo//8vqOLITtLMhFSW9IdLsYT/sPyXj3wXtaTcR7A7olCe7R2Xy7R+q5pg2bU46g=="
- },
- "@types/normalize-package-data": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="
- },
- "@types/prop-types": {
- "version": "15.7.5",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
- "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
- },
- "@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "@types/react": {
- "version": "18.2.14",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz",
- "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==",
- "requires": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
- }
- },
- "@types/react-transition-group": {
- "version": "4.4.6",
- "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz",
- "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==",
- "requires": {
- "@types/react": "*"
- }
- },
- "@types/scheduler": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
- "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
- },
- "@types/stack-utils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz",
- "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw=="
- },
- "@types/tough-cookie": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz",
- "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==",
- "dev": true
- },
- "@types/warning": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz",
- "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q=="
- },
- "@types/yargs": {
- "version": "17.0.24",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz",
- "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==",
- "requires": {
- "@types/yargs-parser": "*"
- }
- },
- "@types/yargs-parser": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
- },
- "@typescript-eslint/eslint-plugin": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.6.0.tgz",
- "integrity": "sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==",
- "requires": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.6.0",
- "@typescript-eslint/type-utils": "8.6.0",
- "@typescript-eslint/utils": "8.6.0",
- "@typescript-eslint/visitor-keys": "8.6.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.3.1",
- "natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
- }
- },
- "@typescript-eslint/parser": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.6.0.tgz",
- "integrity": "sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==",
- "requires": {
- "@typescript-eslint/scope-manager": "8.6.0",
- "@typescript-eslint/types": "8.6.0",
- "@typescript-eslint/typescript-estree": "8.6.0",
- "@typescript-eslint/visitor-keys": "8.6.0",
- "debug": "^4.3.4"
- }
- },
- "@typescript-eslint/scope-manager": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz",
- "integrity": "sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==",
- "requires": {
- "@typescript-eslint/types": "8.6.0",
- "@typescript-eslint/visitor-keys": "8.6.0"
- }
- },
- "@typescript-eslint/type-utils": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.6.0.tgz",
- "integrity": "sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==",
- "requires": {
- "@typescript-eslint/typescript-estree": "8.6.0",
- "@typescript-eslint/utils": "8.6.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
- }
- },
- "@typescript-eslint/types": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.6.0.tgz",
- "integrity": "sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw=="
- },
- "@typescript-eslint/typescript-estree": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz",
- "integrity": "sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==",
- "requires": {
- "@typescript-eslint/types": "8.6.0",
- "@typescript-eslint/visitor-keys": "8.6.0",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "@typescript-eslint/utils": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.6.0.tgz",
- "integrity": "sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==",
- "requires": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.6.0",
- "@typescript-eslint/types": "8.6.0",
- "@typescript-eslint/typescript-estree": "8.6.0"
- }
- },
- "@typescript-eslint/visitor-keys": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz",
- "integrity": "sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==",
- "requires": {
- "@typescript-eslint/types": "8.6.0",
- "eslint-visitor-keys": "^3.4.3"
- }
- },
- "@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
- },
- "@xmldom/xmldom": {
- "version": "0.8.10",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
- "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
- "optional": true
- },
- "@yarnpkg/lockfile": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
- "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
- },
- "@yarnpkg/parsers": {
- "version": "3.0.0-rc.46",
- "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz",
- "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==",
- "requires": {
- "js-yaml": "^3.10.0",
- "tslib": "^2.4.0"
- }
- },
- "@zkochan/js-yaml": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz",
- "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==",
- "requires": {
- "argparse": "^2.0.1"
- },
- "dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- }
- }
- },
- "abab": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
- "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
- "dev": true
- },
- "abbrev": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
- "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ=="
- },
- "acorn": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
- "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ=="
- },
- "acorn-globals": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz",
- "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==",
- "dev": true,
- "requires": {
- "acorn": "^8.1.0",
- "acorn-walk": "^8.0.2"
- }
- },
- "acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "requires": {}
- },
- "acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "dev": true
- },
- "add-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz",
- "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ=="
- },
- "adm-zip": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz",
- "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==",
- "dev": true
- },
- "agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "requires": {
- "debug": "4"
- }
- },
- "aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "requires": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- }
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ansi-colors": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
- "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="
- },
- "ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "requires": {
- "type-fest": "^0.21.3"
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "argv": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz",
- "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=",
- "dev": true
- },
- "aria-query": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
- "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
- "requires": {
- "dequal": "^2.0.3"
- }
- },
- "array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
- "requires": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
- }
- },
- "array-differ": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
- "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg=="
- },
- "array-ify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
- "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng=="
- },
- "array-includes": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
- "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
- "requires": {
- "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"
- }
- },
- "array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
- },
- "array.prototype.findlastindex": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz",
- "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==",
- "requires": {
- "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"
- }
- },
- "array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- }
- },
- "array.prototype.flatmap": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- }
- },
- "array.prototype.tosorted": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz",
- "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==",
- "requires": {
- "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"
- }
- },
- "arraybuffer.prototype.slice": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
- "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
- "requires": {
- "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"
- }
- },
- "arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA=="
- },
- "asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
- "dev": true
- },
- "assertion-error": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dev": true
- },
- "ast-types-flow": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
- },
- "astral-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
- "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
- },
- "async": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
- "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="
- },
- "asynciterator.prototype": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
- "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
- "requires": {
- "has-symbols": "^1.0.3"
- }
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "available-typed-arrays": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
- },
- "axe-core": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz",
- "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g=="
- },
- "axios": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz",
- "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==",
- "requires": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "axobject-query": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
- "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
- "requires": {
- "dequal": "^2.0.3"
- }
- },
- "babel-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
- "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
- "requires": {
- "@jest/transform": "^29.7.0",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^29.6.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "requires": {
- "@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"
- },
- "dependencies": {
- "istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "requires": {
- "@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"
- }
- },
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
- }
- }
- },
- "babel-plugin-jest-hoist": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
- "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
- "requires": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
- }
- },
- "babel-plugin-polyfill-corejs2": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz",
- "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.4.2",
- "semver": "^6.3.1"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
- }
- }
- },
- "babel-plugin-polyfill-corejs3": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz",
- "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==",
- "dev": true,
- "requires": {
- "@babel/helper-define-polyfill-provider": "^0.4.2",
- "core-js-compat": "^3.31.0"
- }
- },
- "babel-plugin-polyfill-regenerator": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz",
- "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==",
- "dev": true,
- "requires": {
- "@babel/helper-define-polyfill-provider": "^0.4.2"
- }
- },
- "babel-preset-current-node-syntax": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
- "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
- "requires": {
- "@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"
- }
- },
- "babel-preset-jest": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
- "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
- "requires": {
- "babel-plugin-jest-hoist": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- }
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
- },
- "before-after-hook": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
- "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
- },
- "bids-validator": {
- "version": "file:bids-validator",
- "requires": {
- "@aws-sdk/client-s3": "^3.637.0",
- "adm-zip": "",
- "ajv": "^6.5.2",
- "bytes": "^3.1.2",
- "chai": "",
- "colors": "^1.4.0",
- "cross-fetch": "^4.0.0",
- "date-fns": "^4.1.0",
- "esbuild": "^0.24.0",
- "esbuild-plugin-globals": "^0.2.0",
- "esbuild-runner": "^2.2.2",
- "eslint": "^8.57.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
- "events": "^3.3.0",
- "exifreader": "^4.23.7",
- "hed-validator": "^3.15.4",
- "husky": "^9.1.6",
- "ignore": "^6.0.2",
- "is-utf8": "^0.2.1",
- "jest": "^29.7.0",
- "jshint": "^2.13.6",
- "lerna": "^8.1.8",
- "lockfile": "^1.0.4",
- "lodash": "^4.17.21",
- "minimatch": "3.0.5",
- "next": "14.2.13",
- "nifti-js": "^1.0.1",
- "p-limit": "^2.1.0",
- "pako": "^1.0.6",
- "path": "^0.12.7",
- "pluralize": "^8.0.0",
- "semver": "^7.6.3",
- "stream-browserify": "^3.0.0",
- "sync-request": "6.1.0",
- "table": "^6.8.2",
- "util": "^0.12.5",
- "xml2js": "^0.6.2",
- "yaml": "^2.3.1",
- "yargs": "^17.7.2"
- },
- "dependencies": {
- "date-fns": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
- "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg=="
- },
- "ignore": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz",
- "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A=="
- },
- "yaml": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
- "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ=="
- }
- }
- },
- "bids-validator-web": {
- "version": "file:bids-validator-web",
- "requires": {
- "@babel/runtime": "^7.22.10",
- "@next/eslint-plugin-next": "^14.2.13",
- "bootstrap": "^5.3.3",
- "eslint-config-next": "^14.2.13",
- "next": "^14.0.0",
- "pluralize": "^8.0.0",
- "react": "^18.3.1",
- "react-bootstrap": "^2.10.5",
- "react-dom": "^18.3.1",
- "sass": "^1.79.4"
- }
- },
- "bin-links": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz",
- "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==",
- "requires": {
- "cmd-shim": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "read-cmd-shim": "^4.0.0",
- "write-file-atomic": "^5.0.0"
- },
- "dependencies": {
- "signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
- },
- "write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
- "requires": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- }
- }
- }
- },
- "bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "bootstrap": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
- "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
- "requires": {}
- },
- "bowser": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
- "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "requires": {
- "fill-range": "^7.1.1"
- }
- },
- "browserslist": {
- "version": "4.21.9",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz",
- "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==",
- "requires": {
- "caniuse-lite": "^1.0.30001503",
- "electron-to-chromium": "^1.4.431",
- "node-releases": "^2.0.12",
- "update-browserslist-db": "^1.0.11"
- },
- "dependencies": {
- "node-releases": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
- "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ=="
- }
- }
- },
- "bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "requires": {
- "node-int64": "^0.4.0"
- }
- },
- "buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "requires": {
- "streamsearch": "^1.1.0"
- }
- },
- "byte-size": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz",
- "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg=="
- },
- "bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
- },
- "cacache": {
- "version": "18.0.4",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz",
- "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==",
- "requires": {
- "@npmcli/fs": "^3.1.0",
- "fs-minipass": "^3.0.0",
- "glob": "^10.2.2",
- "lru-cache": "^10.0.1",
- "minipass": "^7.0.3",
- "minipass-collect": "^2.0.1",
- "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"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "requires": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- }
- },
- "jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "requires": {
- "@isaacs/cliui": "^8.0.2",
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "call-bind": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
- "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
- "requires": {
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.1",
- "set-function-length": "^1.1.1"
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
- },
- "camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
- "requires": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
- }
- },
- "caniuse-lite": {
- "version": "1.0.30001581",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz",
- "integrity": "sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ=="
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "dev": true
- },
- "chai": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz",
- "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==",
- "dev": true,
- "requires": {
- "assertion-error": "^2.0.1",
- "check-error": "^2.1.1",
- "deep-eql": "^5.0.1",
- "loupe": "^3.1.0",
- "pathval": "^2.0.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="
- },
- "chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
- },
- "check-error": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
- "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
- "dev": true
- },
- "chokidar": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
- "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
- "requires": {
- "readdirp": "^4.0.1"
- }
- },
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
- },
- "ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="
- },
- "cjs-module-lexer": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
- "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ=="
- },
- "classnames": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
- "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
- },
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
- },
- "cli": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
- "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
- "requires": {
- "exit": "0.1.2",
- "glob": "^7.1.1"
- }
- },
- "cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "requires": {
- "restore-cursor": "^3.1.0"
- }
- },
- "cli-spinners": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz",
- "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g=="
- },
- "cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw=="
- },
- "client-only": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
- "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
- },
- "cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- }
- },
- "clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="
- },
- "clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "requires": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- },
- "dependencies": {
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "requires": {
- "isobject": "^3.0.1"
- }
- }
- }
- },
- "cmd-shim": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz",
- "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA=="
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "optional": true
- },
- "codecov": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz",
- "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==",
- "dev": true,
- "requires": {
- "argv": "0.0.2",
- "ignore-walk": "3.0.4",
- "js-yaml": "3.14.1",
- "teeny-request": "7.1.1",
- "urlgrey": "1.0.0"
- }
- },
- "collect-v8-coverage": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
- "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q=="
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
- },
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
- },
- "columnify": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz",
- "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==",
- "requires": {
- "strip-ansi": "^6.0.1",
- "wcwidth": "^1.0.0"
- }
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "common-ancestor-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz",
- "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w=="
- },
- "compare-func": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
- "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
- "requires": {
- "array-ify": "^1.0.0",
- "dot-prop": "^5.1.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "concat-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
- "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.0.2",
- "typedarray": "^0.0.6"
- }
- },
- "console-browserify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
- "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
- "requires": {
- "date-now": "^0.1.4"
- }
- },
- "console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
- },
- "conventional-changelog-angular": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz",
- "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
- "requires": {
- "compare-func": "^2.0.0"
- }
- },
- "conventional-changelog-core": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz",
- "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==",
- "requires": {
- "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"
- },
- "dependencies": {
- "hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "requires": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- }
- }
- }
- },
- "conventional-changelog-preset-loader": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz",
- "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA=="
- },
- "conventional-changelog-writer": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz",
- "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==",
- "requires": {
- "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"
- }
- },
- "conventional-commits-filter": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz",
- "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==",
- "requires": {
- "lodash.ismatch": "^4.4.0",
- "modify-values": "^1.0.1"
- }
- },
- "conventional-commits-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz",
- "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==",
- "requires": {
- "is-text-path": "^1.0.1",
- "JSONStream": "^1.3.5",
- "meow": "^8.1.2",
- "split2": "^3.2.2"
- }
- },
- "conventional-recommended-bump": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz",
- "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==",
- "requires": {
- "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"
- }
- },
- "convert-source-map": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "requires": {
- "safe-buffer": "~5.1.1"
- }
- },
- "core-js-compat": {
- "version": "3.32.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz",
- "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==",
- "dev": true,
- "requires": {
- "browserslist": "^4.21.9"
- }
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "cosmiconfig": {
- "version": "8.3.6",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
- "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
- "requires": {
- "import-fresh": "^3.3.0",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.2.0",
- "path-type": "^4.0.0"
- },
- "dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- }
- }
- },
- "create-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
- "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
- "requires": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "prompts": "^2.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "cross-fetch": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
- "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
- "requires": {
- "node-fetch": "^2.6.12"
- },
- "dependencies": {
- "node-fetch": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz",
- "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==",
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- }
- }
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
- },
- "cssom": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
- "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
- "dev": true
- },
- "cssstyle": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
- "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
- "dev": true,
- "requires": {
- "cssom": "~0.3.6"
- },
- "dependencies": {
- "cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true
- }
- }
- },
- "csstype": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz",
- "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw=="
- },
- "damerau-levenshtein": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
- "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
- },
- "dargs": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
- "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg=="
- },
- "data-urls": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
- "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
- "dev": true,
- "requires": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0"
- }
- },
- "date-and-time": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-3.2.0.tgz",
- "integrity": "sha512-uI8c96oG3R8ZhtWeGy8SfJSN1POcwE7kjWLi7GB3+dmBqSYGG+KhGf4Vh25hUhg1Br6Kn3ikEf/mrXCxE0Pknw=="
- },
- "date-fns": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww=="
- },
- "date-now": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
- "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
- },
- "dateformat": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "decamelize-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
- "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
- "requires": {
- "decamelize": "^1.1.0",
- "map-obj": "^1.0.0"
- },
- "dependencies": {
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg=="
- }
- }
- },
- "decimal.js": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
- "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
- "dev": true
- },
- "dedent": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
- "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
- "requires": {}
- },
- "deep-eql": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.1.tgz",
- "integrity": "sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==",
- "dev": true
- },
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
- },
- "deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
- },
- "defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "requires": {
- "clone": "^1.0.2"
- }
- },
- "define-data-property": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
- "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
- "requires": {
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
- }
- },
- "define-lazy-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="
- },
- "define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
- "requires": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "deprecation": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
- "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
- },
- "dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
- },
- "detect-indent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
- "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g=="
- },
- "detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="
- },
- "diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q=="
- },
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "requires": {
- "path-type": "^4.0.0"
- }
- },
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "dom-helpers": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
- "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
- "requires": {
- "@babel/runtime": "^7.8.7",
- "csstype": "^3.0.2"
- }
- },
- "dom-serializer": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
- "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
- "requires": {
- "domelementtype": "^2.0.1",
- "entities": "^2.0.0"
- },
- "dependencies": {
- "domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
- }
- }
- },
- "domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
- },
- "domexception": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
- "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
- "dev": true,
- "requires": {
- "webidl-conversions": "^7.0.0"
- }
- },
- "domhandler": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
- "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
- "dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "requires": {
- "is-obj": "^2.0.0"
- }
- },
- "dotenv": {
- "version": "16.4.5",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
- "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg=="
- },
- "dotenv-expand": {
- "version": "11.0.6",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz",
- "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==",
- "requires": {
- "dotenv": "^16.4.4"
- }
- },
- "duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
- },
- "eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
- },
- "ejs": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
- "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
- "requires": {
- "jake": "^10.8.5"
- }
- },
- "electron-to-chromium": {
- "version": "1.4.443",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.443.tgz",
- "integrity": "sha512-QG+DKVaD7OkcCJ/0x/IHdVEcwU7cak9Vr9dXCNp7G9ojBZQWtwtRV77CBOrU49jsKygedFcNc/IHUrGljKV2Gw=="
- },
- "emittery": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
- "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="
- },
- "encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "optional": true,
- "requires": {
- "iconv-lite": "^0.6.2"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "optional": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- }
- }
- }
- },
- "end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "requires": {
- "once": "^1.4.0"
- }
- },
- "enhanced-resolve": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
- "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
- "requires": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- }
- },
- "enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
- "requires": {
- "ansi-colors": "^4.1.1"
- }
- },
- "entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
- },
- "env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
- },
- "envinfo": {
- "version": "7.13.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz",
- "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q=="
- },
- "err-code": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
- "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA=="
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "es-abstract": {
- "version": "1.22.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
- "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
- "requires": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.2",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.5",
- "es-set-tostringtag": "^2.0.1",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.2",
- "get-symbol-description": "^1.0.0",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0",
- "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.13.1",
- "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.13"
- }
- },
- "es-iterator-helpers": {
- "version": "1.0.15",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz",
- "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==",
- "requires": {
- "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"
- }
- },
- "es-set-tostringtag": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
- "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
- "requires": {
- "get-intrinsic": "^1.1.3",
- "has": "^1.0.3",
- "has-tostringtag": "^1.0.0"
- }
- },
- "es-shim-unscopables": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
- "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
- "requires": {
- "has": "^1.0.3"
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "esbuild": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz",
- "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==",
- "dev": true,
- "requires": {
- "@esbuild/aix-ppc64": "0.24.0",
- "@esbuild/android-arm": "0.24.0",
- "@esbuild/android-arm64": "0.24.0",
- "@esbuild/android-x64": "0.24.0",
- "@esbuild/darwin-arm64": "0.24.0",
- "@esbuild/darwin-x64": "0.24.0",
- "@esbuild/freebsd-arm64": "0.24.0",
- "@esbuild/freebsd-x64": "0.24.0",
- "@esbuild/linux-arm": "0.24.0",
- "@esbuild/linux-arm64": "0.24.0",
- "@esbuild/linux-ia32": "0.24.0",
- "@esbuild/linux-loong64": "0.24.0",
- "@esbuild/linux-mips64el": "0.24.0",
- "@esbuild/linux-ppc64": "0.24.0",
- "@esbuild/linux-riscv64": "0.24.0",
- "@esbuild/linux-s390x": "0.24.0",
- "@esbuild/linux-x64": "0.24.0",
- "@esbuild/netbsd-x64": "0.24.0",
- "@esbuild/openbsd-arm64": "0.24.0",
- "@esbuild/openbsd-x64": "0.24.0",
- "@esbuild/sunos-x64": "0.24.0",
- "@esbuild/win32-arm64": "0.24.0",
- "@esbuild/win32-ia32": "0.24.0",
- "@esbuild/win32-x64": "0.24.0"
- }
- },
- "esbuild-plugin-globals": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/esbuild-plugin-globals/-/esbuild-plugin-globals-0.2.0.tgz",
- "integrity": "sha512-y+6utQVWrETQWs0J8EGLV5gEOP59mmjX+fKWoQHn4TYwFMaj0FxQYflc566tHuokBCzl+uNW2iIlM1o1jfNy6w==",
- "dev": true
- },
- "esbuild-runner": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/esbuild-runner/-/esbuild-runner-2.2.2.tgz",
- "integrity": "sha512-fRFVXcmYVmSmtYm2mL8RlUASt2TDkGh3uRcvHFOKNr/T58VrfVeKD9uT9nlgxk96u0LS0ehS/GY7Da/bXWKkhw==",
- "dev": true,
- "requires": {
- "source-map-support": "0.5.21",
- "tslib": "2.4.0"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
- "dev": true
- }
- }
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "escodegen": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
- "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
- "dev": true,
- "requires": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.6.1"
- }
- },
- "eslint": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
- "requires": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.0",
- "@humanwhocodes/config-array": "^0.11.14",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "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"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- }
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
- "requires": {
- "@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"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "requires": {
- "prelude-ls": "^1.2.1"
- }
- },
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
- }
- }
- },
- "eslint-config-next": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.13.tgz",
- "integrity": "sha512-aro1EKAoyYchnO/3Tlo91hnNBO7QO7qnv/79MAFC+4Jq8TdUVKQlht5d2F+YjrePjdpOvfL+mV9JPfyYNwkk1g==",
- "requires": {
- "@next/eslint-plugin-next": "14.2.13",
- "@rushstack/eslint-patch": "^1.3.3",
- "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
- "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-import-resolver-typescript": "^3.5.2",
- "eslint-plugin-import": "^2.28.1",
- "eslint-plugin-jsx-a11y": "^6.7.1",
- "eslint-plugin-react": "^7.33.2",
- "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705"
- }
- },
- "eslint-config-prettier": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
- "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
- "dev": true,
- "requires": {}
- },
- "eslint-import-resolver-node": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
- "requires": {
- "debug": "^3.2.7",
- "is-core-module": "^2.13.0",
- "resolve": "^1.22.4"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "requires": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- }
- }
- },
- "eslint-import-resolver-typescript": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz",
- "integrity": "sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==",
- "requires": {
- "debug": "^4.3.4",
- "enhanced-resolve": "^5.12.0",
- "eslint-module-utils": "^2.7.4",
- "get-tsconfig": "^4.5.0",
- "globby": "^13.1.3",
- "is-core-module": "^2.11.0",
- "is-glob": "^4.0.3",
- "synckit": "^0.8.5"
- },
- "dependencies": {
- "globby": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.0.tgz",
- "integrity": "sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==",
- "requires": {
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.11",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
- }
- },
- "slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew=="
- }
- }
- },
- "eslint-module-utils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
- "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
- "requires": {
- "debug": "^3.2.7"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "requires": {
- "ms": "^2.1.1"
- }
- }
- }
- },
- "eslint-plugin-import": {
- "version": "2.29.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz",
- "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==",
- "requires": {
- "array-includes": "^3.1.7",
- "array.prototype.findlastindex": "^1.2.3",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
- "debug": "^3.2.7",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.8.0",
- "hasown": "^2.0.0",
- "is-core-module": "^2.13.1",
- "is-glob": "^4.0.3",
- "minimatch": "^3.1.2",
- "object.fromentries": "^2.0.7",
- "object.groupby": "^1.0.1",
- "object.values": "^1.1.7",
- "semver": "^6.3.1",
- "tsconfig-paths": "^3.14.2"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "requires": {
- "minimist": "^1.2.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
- },
- "tsconfig-paths": {
- "version": "3.14.2",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
- "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
- "requires": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- }
- }
- }
- },
- "eslint-plugin-jsx-a11y": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz",
- "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==",
- "requires": {
- "@babel/runtime": "^7.20.7",
- "aria-query": "^5.1.3",
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "ast-types-flow": "^0.0.7",
- "axe-core": "^4.6.2",
- "axobject-query": "^3.1.1",
- "damerau-levenshtein": "^1.0.8",
- "emoji-regex": "^9.2.2",
- "has": "^1.0.3",
- "jsx-ast-utils": "^3.3.3",
- "language-tags": "=1.0.5",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
- }
- },
- "eslint-plugin-prettier": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz",
- "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==",
- "dev": true,
- "requires": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.9.1"
- },
- "dependencies": {
- "synckit": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz",
- "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==",
- "dev": true,
- "requires": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
- }
- }
- }
- },
- "eslint-plugin-react": {
- "version": "7.33.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
- "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
- "requires": {
- "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"
- },
- "dependencies": {
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
- "requires": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
- }
- }
- },
- "eslint-plugin-react-hooks": {
- "version": "5.0.0-canary-7118f5dd7-20230705",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz",
- "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==",
- "requires": {}
- },
- "eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="
- },
- "espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "requires": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- }
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
- },
- "esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
- "requires": {
- "estraverse": "^5.1.0"
- }
- },
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "requires": {
- "estraverse": "^5.2.0"
- }
- },
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
- },
- "eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
- },
- "events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
- },
- "execa": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz",
- "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==",
- "requires": {
- "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"
- }
- },
- "exifreader": {
- "version": "4.23.7",
- "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.23.7.tgz",
- "integrity": "sha512-yvyZFaZDqOa9QFHlV5/6tdq4rYBpNMPaRttl3VqthvYaS5QKrnaQBL1FKDaaTDpYO5bQanmsWnKLkUhoA0mSsg==",
- "requires": {
- "@xmldom/xmldom": "^0.8.10"
- }
- },
- "exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw="
- },
- "expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
- "requires": {
- "@jest/expect-utils": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0"
- }
- },
- "exponential-backoff": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz",
- "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw=="
- },
- "external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
- "requires": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
- },
- "dependencies": {
- "tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "requires": {
- "os-tmpdir": "~1.0.2"
- }
- }
- }
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "fast-diff": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
- "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
- "dev": true
- },
- "fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "requires": {
- "@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"
- }
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
- },
- "fast-url-parser": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz",
- "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=",
- "dev": true,
- "requires": {
- "punycode": "^1.3.2"
- },
- "dependencies": {
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
- }
- }
- },
- "fast-xml-parser": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz",
- "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==",
- "requires": {
- "strnum": "^1.0.5"
- }
- },
- "fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
- "requires": {
- "reusify": "^1.0.4"
- }
- },
- "fb-watchman": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
- "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
- "requires": {
- "bser": "2.1.1"
- }
- },
- "figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "requires": {
- "flat-cache": "^3.0.4"
- }
- },
- "filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "requires": {
- "minimatch": "^5.0.1"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="
- },
- "flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "requires": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- }
- },
- "flatted": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
- "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg=="
- },
- "follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
- },
- "for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
- "requires": {
- "is-callable": "^1.1.3"
- }
- },
- "foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "requires": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "dependencies": {
- "signal-exit": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
- "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q=="
- }
- }
- },
- "form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- },
- "front-matter": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz",
- "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==",
- "requires": {
- "js-yaml": "^3.13.1"
- }
- },
- "fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
- },
- "fs-extra": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- }
- },
- "fs-minipass": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz",
- "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
- "requires": {
- "minipass": "^7.0.3"
- },
- "dependencies": {
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "optional": true
- },
- "function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
- },
- "function.prototype.name": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "functions-have-names": "^1.2.3"
- }
- },
- "functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
- },
- "gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
- },
- "get-func-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
- "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
- "dev": true
- },
- "get-intrinsic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
- "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
- "requires": {
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- }
- },
- "get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="
- },
- "get-pkg-repo": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz",
- "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==",
- "requires": {
- "@hutson/parse-repository-url": "^3.0.0",
- "hosted-git-info": "^4.0.0",
- "through2": "^2.0.0",
- "yargs": "^16.2.0"
- },
- "dependencies": {
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "requires": {
- "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"
- }
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
- }
- }
- },
- "get-port": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
- "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ=="
- },
- "get-stream": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz",
- "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg=="
- },
- "get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- }
- },
- "get-tsconfig": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.6.2.tgz",
- "integrity": "sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==",
- "requires": {
- "resolve-pkg-maps": "^1.0.0"
- }
- },
- "git-raw-commits": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz",
- "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==",
- "requires": {
- "dargs": "^7.0.0",
- "meow": "^8.1.2",
- "split2": "^3.2.2"
- }
- },
- "git-remote-origin-url": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
- "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==",
- "requires": {
- "gitconfiglocal": "^1.0.0",
- "pify": "^2.3.0"
- },
- "dependencies": {
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
- }
- }
- },
- "git-semver-tags": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz",
- "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==",
- "requires": {
- "meow": "^8.1.2",
- "semver": "^7.0.0"
- }
- },
- "git-up": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz",
- "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==",
- "requires": {
- "is-ssh": "^1.4.0",
- "parse-url": "^8.1.0"
- }
- },
- "git-url-parse": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-14.0.0.tgz",
- "integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==",
- "requires": {
- "git-up": "^7.0.0"
- }
- },
- "gitconfiglocal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
- "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==",
- "requires": {
- "ini": "^1.3.2"
- }
- },
- "glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "requires": {
- "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"
- }
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
- },
- "globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "requires": {
- "define-properties": "^1.1.3"
- }
- },
- "globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "requires": {
- "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"
- }
- },
- "gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "requires": {
- "get-intrinsic": "^1.1.3"
- }
- },
- "graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
- },
- "graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
- },
- "handlebars": {
- "version": "4.7.8",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
- "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
- "requires": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.2",
- "source-map": "^0.6.1",
- "uglify-js": "^3.1.4",
- "wordwrap": "^1.0.0"
- }
- },
- "hard-rejection": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
- "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA=="
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
- },
- "has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
- "requires": {
- "get-intrinsic": "^1.1.1"
- }
- },
- "has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
- },
- "has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
- "requires": {
- "has-symbols": "^1.0.2"
- }
- },
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
- },
- "hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
- "requires": {
- "function-bind": "^1.1.2"
- }
- },
- "hed-validator": {
- "version": "3.15.4",
- "resolved": "https://registry.npmjs.org/hed-validator/-/hed-validator-3.15.4.tgz",
- "integrity": "sha512-40Jbd5CQ3mShQtJKQyYUiNB8Ym4FrLq21zzaQ067Mxj/9ILSJanx+Pmab4G1vVBl45NPLU9wLFvo+5YDomzlWA==",
- "requires": {
- "buffer": "^6.0.3",
- "cross-fetch": "^4.0.0",
- "date-and-time": "^3.1.1",
- "date-fns": "^3.6.0",
- "events": "^3.3.0",
- "lodash": "^4.17.21",
- "path": "^0.12.7",
- "pluralize": "^8.0.0",
- "semver": "^7.6.0",
- "string_decoder": "^1.3.0",
- "xml2js": "^0.6.2"
- },
- "dependencies": {
- "buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- }
- }
- },
- "hosted-git-info": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
- "requires": {
- "lru-cache": "^10.0.1"
- }
- },
- "html-encoding-sniffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
- "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
- "dev": true,
- "requires": {
- "whatwg-encoding": "^2.0.0"
- }
- },
- "html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
- },
- "htmlparser2": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
- "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
- "requires": {
- "domelementtype": "1",
- "domhandler": "2.3",
- "domutils": "1.5",
- "entities": "1.0",
- "readable-stream": "1.1"
- },
- "dependencies": {
- "entities": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
- "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- }
- }
- },
- "http-basic": {
- "version": "8.1.3",
- "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz",
- "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==",
- "dev": true,
- "requires": {
- "caseless": "^0.12.0",
- "concat-stream": "^1.6.2",
- "http-response-object": "^3.0.1",
- "parse-cache-control": "^1.0.1"
- },
- "dependencies": {
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "requires": {
- "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"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
- },
- "http-proxy-agent": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
- "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
- "dev": true,
- "requires": {
- "@tootallnate/once": "1",
- "agent-base": "6",
- "debug": "4"
- }
- },
- "http-response-object": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz",
- "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==",
- "dev": true,
- "requires": {
- "@types/node": "^10.0.3"
- },
- "dependencies": {
- "@types/node": {
- "version": "10.17.60",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
- "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
- "dev": true
- }
- }
- },
- "https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "requires": {
- "agent-base": "6",
- "debug": "4"
- }
- },
- "human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
- },
- "husky": {
- "version": "9.1.6",
- "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz",
- "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==",
- "dev": true
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
- },
- "ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="
- },
- "ignore-walk": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz",
- "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==",
- "dev": true,
- "requires": {
- "minimatch": "^3.0.4"
- }
- },
- "immutable": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz",
- "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg=="
- },
- "import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "dependencies": {
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
- }
- }
- },
- "import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
- "requires": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- }
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
- },
- "init-package-json": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-6.0.3.tgz",
- "integrity": "sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==",
- "requires": {
- "@npmcli/package-json": "^5.0.0",
- "npm-package-arg": "^11.0.0",
- "promzard": "^1.0.0",
- "read": "^3.0.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4",
- "validate-npm-package-name": "^5.0.0"
- }
- },
- "inquirer": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz",
- "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==",
- "requires": {
- "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"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- }
- }
- },
- "internal-slot": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
- "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
- "requires": {
- "get-intrinsic": "^1.2.0",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
- }
- },
- "invariant": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
- "requires": {
- "loose-envify": "^1.0.0"
- }
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
- "optional": true
- },
- "ip-address": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
- "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
- "requires": {
- "jsbn": "1.1.0",
- "sprintf-js": "^1.1.3"
- },
- "dependencies": {
- "sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="
- }
- }
- },
- "is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
- }
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
- },
- "is-async-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
- "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
- "requires": {
- "has-bigints": "^1.0.1"
- }
- },
- "is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
- },
- "is-ci": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
- "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
- "requires": {
- "ci-info": "^3.2.0"
- }
- },
- "is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "requires": {
- "hasown": "^2.0.0"
- }
- },
- "is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
- },
- "is-finalizationregistry": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
- "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
- "requires": {
- "call-bind": "^1.0.2"
- }
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="
- },
- "is-generator-function": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
- "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-interactive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="
- },
- "is-lambda": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
- "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ=="
- },
- "is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg=="
- },
- "is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
- },
- "is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
- },
- "is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
- },
- "is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg=="
- },
- "is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
- },
- "is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-set": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g=="
- },
- "is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
- "requires": {
- "call-bind": "^1.0.2"
- }
- },
- "is-ssh": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz",
- "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==",
- "requires": {
- "protocols": "^2.0.1"
- }
- },
- "is-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
- "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
- },
- "is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "requires": {
- "has-symbols": "^1.0.2"
- }
- },
- "is-text-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
- "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==",
- "requires": {
- "text-extensions": "^1.0.0"
- }
- },
- "is-typed-array": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
- "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
- "requires": {
- "which-typed-array": "^1.1.11"
- }
- },
- "is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
- },
- "is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
- },
- "is-weakmap": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
- "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA=="
- },
- "is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
- "requires": {
- "call-bind": "^1.0.2"
- }
- },
- "is-weakset": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
- "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- }
- },
- "is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "requires": {
- "is-docker": "^2.0.0"
- }
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
- },
- "istanbul-lib-coverage": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
- "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
- },
- "istanbul-lib-instrument": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz",
- "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==",
- "requires": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^7.5.4"
- }
- },
- "istanbul-lib-report": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
- "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
- "requires": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^4.0.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- }
- },
- "istanbul-reports": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
- "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
- "requires": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- }
- },
- "iterator.prototype": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
- "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
- "requires": {
- "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"
- }
- },
- "jackspeak": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "requires": {
- "@isaacs/cliui": "^8.0.2",
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "jake": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
- "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
- "requires": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.4",
- "minimatch": "^3.1.2"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
- "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
- "requires": {
- "@jest/core": "^29.7.0",
- "@jest/types": "^29.6.3",
- "import-local": "^3.0.2",
- "jest-cli": "^29.7.0"
- }
- },
- "jest-changed-files": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
- "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
- "requires": {
- "execa": "^5.0.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0"
- },
- "dependencies": {
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- }
- }
- },
- "jest-circus": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
- "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
- "requires": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^1.0.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^29.7.0",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0",
- "pretty-format": "^29.7.0",
- "pure-rand": "^6.0.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-cli": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
- "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
- "requires": {
- "@jest/core": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "create-jest": "^29.7.0",
- "exit": "^0.1.2",
- "import-local": "^3.0.2",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "yargs": "^17.3.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-config": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
- "requires": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-jest": "^29.7.0",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
- "requires": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.6.3",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-docblock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
- "requires": {
- "detect-newline": "^3.0.0"
- }
- },
- "jest-each": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
- "requires": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "jest-util": "^29.7.0",
- "pretty-format": "^29.7.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-environment-jsdom": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz",
- "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==",
- "dev": true,
- "requires": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/jsdom": "^20.0.0",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0",
- "jsdom": "^20.0.0"
- }
- },
- "jest-environment-node": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
- "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
- "requires": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- }
- },
- "jest-get-type": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
- "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw=="
- },
- "jest-haste-map": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
- "requires": {
- "@jest/types": "^29.6.3",
- "@types/graceful-fs": "^4.1.3",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "fsevents": "^2.3.2",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- }
- },
- "jest-leak-detector": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
- "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
- "requires": {
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- }
- },
- "jest-matcher-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
- "requires": {
- "chalk": "^4.0.0",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-message-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
- "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
- "requires": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.6.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-mock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
- "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
- "requires": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-util": "^29.7.0"
- }
- },
- "jest-pnp-resolver": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
- "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
- "requires": {}
- },
- "jest-regex-util": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
- "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg=="
- },
- "jest-resolve": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
- "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
- "requires": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "resolve": "^1.20.0",
- "resolve.exports": "^2.0.0",
- "slash": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-resolve-dependencies": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
- "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
- "requires": {
- "jest-regex-util": "^29.6.3",
- "jest-snapshot": "^29.7.0"
- }
- },
- "jest-runner": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
- "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
- "requires": {
- "@jest/console": "^29.7.0",
- "@jest/environment": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-leak-detector": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-resolve": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "jest-worker": "^29.7.0",
- "p-limit": "^3.1.0",
- "source-map-support": "0.5.13"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-runtime": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
- "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
- "requires": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/globals": "^29.7.0",
- "@jest/source-map": "^29.6.3",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-snapshot": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
- "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
- "requires": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-jsx": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "natural-compare": "^1.4.0",
- "pretty-format": "^29.7.0",
- "semver": "^7.5.3"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
- "requires": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-validate": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
- "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
- "requires": {
- "@jest/types": "^29.6.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "leven": "^3.1.0",
- "pretty-format": "^29.7.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-watcher": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
- "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
- "requires": {
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "jest-util": "^29.7.0",
- "string-length": "^4.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
- "requires": {
- "@types/node": "*",
- "jest-util": "^29.7.0",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "jsbn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
- "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="
- },
- "jsdom": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
- "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
- "dev": true,
- "requires": {
- "abab": "^2.0.6",
- "acorn": "^8.8.1",
- "acorn-globals": "^7.0.0",
- "cssom": "^0.5.0",
- "cssstyle": "^2.3.0",
- "data-urls": "^3.0.2",
- "decimal.js": "^10.4.2",
- "domexception": "^4.0.0",
- "escodegen": "^2.0.0",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.1",
- "is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.2",
- "parse5": "^7.1.1",
- "saxes": "^6.0.0",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^4.1.2",
- "w3c-xmlserializer": "^4.0.0",
- "webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0",
- "ws": "^8.11.0",
- "xml-name-validator": "^4.0.0"
- },
- "dependencies": {
- "@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true
- },
- "http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
- "dev": true,
- "requires": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- }
- }
- }
- },
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
- },
- "jshint": {
- "version": "2.13.6",
- "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.6.tgz",
- "integrity": "sha512-IVdB4G0NTTeQZrBoM8C5JFVLjV2KtZ9APgybDA1MK73xb09qFs0jCXyQLnCOp1cSZZZbvhq/6mfXHUTaDkffuQ==",
- "requires": {
- "cli": "~1.0.0",
- "console-browserify": "1.1.x",
- "exit": "0.1.x",
- "htmlparser2": "3.8.x",
- "lodash": "~4.17.21",
- "minimatch": "~3.0.2",
- "strip-json-comments": "1.0.x"
- },
- "dependencies": {
- "strip-json-comments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
- "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E="
- }
- }
- },
- "json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
- },
- "json-stringify-nice": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz",
- "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw=="
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
- "json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
- },
- "jsonc-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
- "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
- },
- "jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^2.0.0"
- }
- },
- "jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg=="
- },
- "JSONStream": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "requires": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
- }
- },
- "jsx-ast-utils": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz",
- "integrity": "sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==",
- "requires": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "object.assign": "^4.1.4",
- "object.values": "^1.1.6"
- }
- },
- "just-diff": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz",
- "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA=="
- },
- "just-diff-apply": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz",
- "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw=="
- },
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
- },
- "kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
- },
- "language-subtag-registry": {
- "version": "0.3.22",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
- "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w=="
- },
- "language-tags": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
- "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==",
- "requires": {
- "language-subtag-registry": "~0.3.2"
- }
- },
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "optional": true,
- "requires": {
- "invert-kv": "^1.0.0"
- }
- },
- "lerna": {
- "version": "8.1.8",
- "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.1.8.tgz",
- "integrity": "sha512-Rmo5ShMx73xM2CUcRixjmpZIXB7ZFlWEul1YvJyx/rH4onAwDHtUGD7Rx4NZYL8QSRiQHroglM2Oyq+WqA4BYg==",
- "requires": {
- "@lerna/create": "8.1.8",
- "@npmcli/arborist": "7.5.4",
- "@npmcli/package-json": "5.2.0",
- "@npmcli/run-script": "8.1.0",
- "@nx/devkit": ">=17.1.2 < 20",
- "@octokit/plugin-enterprise-rest": "6.0.1",
- "@octokit/rest": "19.0.11",
- "aproba": "2.0.0",
- "byte-size": "8.1.1",
- "chalk": "4.1.0",
- "clone-deep": "4.0.1",
- "cmd-shim": "6.0.3",
- "color-support": "1.1.3",
- "columnify": "1.6.0",
- "console-control-strings": "^1.1.0",
- "conventional-changelog-angular": "7.0.0",
- "conventional-changelog-core": "5.0.1",
- "conventional-recommended-bump": "7.0.1",
- "cosmiconfig": "^8.2.0",
- "dedent": "1.5.3",
- "envinfo": "7.13.0",
- "execa": "5.0.0",
- "fs-extra": "^11.2.0",
- "get-port": "5.1.1",
- "get-stream": "6.0.0",
- "git-url-parse": "14.0.0",
- "glob-parent": "6.0.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": "6.0.3",
- "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": "8.0.6",
- "libnpmpublish": "9.0.9",
- "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": "11.0.2",
- "npm-packlist": "8.0.2",
- "npm-registry-fetch": "^17.1.0",
- "nx": ">=17.1.2 < 20",
- "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": "^18.0.6",
- "pify": "5.0.0",
- "read-cmd-shim": "4.0.0",
- "resolve-from": "5.0.0",
- "rimraf": "^4.4.1",
- "semver": "^7.3.8",
- "set-blocking": "^2.0.0",
- "signal-exit": "3.0.7",
- "slash": "3.0.0",
- "ssri": "^10.0.6",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "strong-log-transformer": "2.1.0",
- "tar": "6.2.1",
- "temp-dir": "1.0.0",
- "typescript": ">=3 < 6",
- "upath": "2.0.1",
- "uuid": "^10.0.0",
- "validate-npm-package-license": "3.0.4",
- "validate-npm-package-name": "5.0.1",
- "wide-align": "1.1.5",
- "write-file-atomic": "5.0.1",
- "write-pkg": "4.0.0",
- "yargs": "17.7.2",
- "yargs-parser": "21.1.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "glob": {
- "version": "9.3.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
- "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "minimatch": "^8.0.2",
- "minipass": "^4.2.4",
- "path-scurry": "^1.6.1"
- },
- "dependencies": {
- "minimatch": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
- "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "minipass": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
- "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ=="
- },
- "rimraf": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
- "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
- "requires": {
- "glob": "^9.2.0"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ=="
- },
- "write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
- "requires": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "dependencies": {
- "signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
- }
- }
- }
- }
- },
- "leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
- },
- "levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
- "dev": true,
- "requires": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- }
- },
- "libnpmaccess": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-8.0.6.tgz",
- "integrity": "sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==",
- "requires": {
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1"
- }
- },
- "libnpmpublish": {
- "version": "9.0.9",
- "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-9.0.9.tgz",
- "integrity": "sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==",
- "requires": {
- "ci-info": "^4.0.0",
- "normalize-package-data": "^6.0.1",
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1",
- "proc-log": "^4.2.0",
- "semver": "^7.3.7",
- "sigstore": "^2.2.0",
- "ssri": "^10.0.6"
- },
- "dependencies": {
- "ci-info": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
- "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg=="
- }
- }
- },
- "lines-and-columns": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
- "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A=="
- },
- "load-json-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz",
- "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==",
- "requires": {
- "graceful-fs": "^4.1.15",
- "parse-json": "^5.0.0",
- "strip-bom": "^4.0.0",
- "type-fest": "^0.6.0"
- },
- "dependencies": {
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg=="
- }
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "lockfile": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz",
- "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==",
- "dev": true,
- "requires": {
- "signal-exit": "^3.0.2"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true
- },
- "lodash.ismatch": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
- "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g=="
- },
- "lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
- },
- "lodash.truncate": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
- },
- "log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "requires": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "requires": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- }
- },
- "loupe": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.0.tgz",
- "integrity": "sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==",
- "dev": true,
- "requires": {
- "get-func-name": "^2.0.1"
- }
- },
- "lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
- },
- "make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
- "requires": {
- "semver": "^7.5.3"
- }
- },
- "make-fetch-happen": {
- "version": "13.0.1",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz",
- "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==",
- "requires": {
- "@npmcli/agent": "^2.0.0",
- "cacache": "^18.0.0",
- "http-cache-semantics": "^4.1.1",
- "is-lambda": "^1.0.1",
- "minipass": "^7.0.2",
- "minipass-fetch": "^3.0.0",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "proc-log": "^4.2.0",
- "promise-retry": "^2.0.1",
- "ssri": "^10.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "requires": {
- "tmpl": "1.0.5"
- }
- },
- "map-obj": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
- "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ=="
- },
- "meow": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
- "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
- "requires": {
- "@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"
- },
- "dependencies": {
- "hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "requires": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "requires": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "dependencies": {
- "hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
- },
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "requires": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
- },
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg=="
- }
- }
- },
- "read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "requires": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
- },
- "dependencies": {
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
- }
- }
- },
- "type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw=="
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
- }
- }
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
- },
- "merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
- },
- "micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "requires": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- }
- },
- "mime-db": {
- "version": "1.49.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
- "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA=="
- },
- "mime-types": {
- "version": "2.1.32",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
- "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
- "requires": {
- "mime-db": "1.49.0"
- }
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
- },
- "min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="
- },
- "minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
- },
- "minimist-options": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
- "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
- "requires": {
- "arrify": "^1.0.1",
- "is-plain-obj": "^1.1.0",
- "kind-of": "^6.0.3"
- }
- },
- "minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="
- },
- "minipass-collect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz",
- "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==",
- "requires": {
- "minipass": "^7.0.3"
- },
- "dependencies": {
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "minipass-fetch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz",
- "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==",
- "requires": {
- "encoding": "^0.1.13",
- "minipass": "^7.0.3",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
- },
- "dependencies": {
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "minipass-flush": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
- "requires": {
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "minipass-pipeline": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
- "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
- "requires": {
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "minipass-sized": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
- "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
- "requires": {
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
- },
- "modify-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
- "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw=="
- },
- "mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "multimatch": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
- "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
- "requires": {
- "@types/minimatch": "^3.0.3",
- "array-differ": "^3.0.0",
- "array-union": "^2.1.0",
- "arrify": "^2.0.1",
- "minimatch": "^3.0.4"
- },
- "dependencies": {
- "arrify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
- "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug=="
- }
- }
- },
- "mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
- },
- "nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
- },
- "negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
- },
- "neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
- },
- "next": {
- "version": "14.2.13",
- "resolved": "https://registry.npmjs.org/next/-/next-14.2.13.tgz",
- "integrity": "sha512-BseY9YNw8QJSwLYD7hlZzl6QVDoSFHL/URN5K64kVEVpCsSOWeyjbIGK+dZUaRViHTaMQX8aqmnn0PHBbGZezg==",
- "requires": {
- "@next/env": "14.2.13",
- "@next/swc-darwin-arm64": "14.2.13",
- "@next/swc-darwin-x64": "14.2.13",
- "@next/swc-linux-arm64-gnu": "14.2.13",
- "@next/swc-linux-arm64-musl": "14.2.13",
- "@next/swc-linux-x64-gnu": "14.2.13",
- "@next/swc-linux-x64-musl": "14.2.13",
- "@next/swc-win32-arm64-msvc": "14.2.13",
- "@next/swc-win32-ia32-msvc": "14.2.13",
- "@next/swc-win32-x64-msvc": "14.2.13",
- "@swc/helpers": "0.5.5",
- "busboy": "1.6.0",
- "caniuse-lite": "^1.0.30001579",
- "graceful-fs": "^4.2.11",
- "postcss": "8.4.31",
- "styled-jsx": "5.1.1"
- }
- },
- "nifti-js": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/nifti-js/-/nifti-js-1.0.1.tgz",
- "integrity": "sha1-cDmi788bzyASUgrdhIXt2YtRSvo=",
- "requires": {
- "yargs": "^3.29.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "optional": true
- },
- "camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
- "optional": true
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "optional": true,
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "optional": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "optional": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "optional": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "optional": true,
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- }
- },
- "yargs": {
- "version": "3.32.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
- "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
- "optional": true,
- "requires": {
- "camelcase": "^2.0.1",
- "cliui": "^3.0.3",
- "decamelize": "^1.1.1",
- "os-locale": "^1.4.0",
- "string-width": "^1.0.1",
- "window-size": "^0.1.4",
- "y18n": "^3.2.0"
- }
- }
- }
- },
- "node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "requires": {
- "whatwg-url": "^5.0.0"
- },
- "dependencies": {
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- }
- }
- },
- "node-gyp": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz",
- "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==",
- "requires": {
- "env-paths": "^2.2.0",
- "exponential-backoff": "^3.1.1",
- "glob": "^10.3.10",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^13.0.0",
- "nopt": "^7.0.0",
- "proc-log": "^4.1.0",
- "semver": "^7.3.5",
- "tar": "^6.2.1",
- "which": "^4.0.0"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "requires": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- }
- },
- "isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="
- },
- "jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "requires": {
- "@isaacs/cliui": "^8.0.2",
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- },
- "which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "requires": {
- "isexe": "^3.1.1"
- }
- }
- }
- },
- "node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
- },
- "node-machine-id": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz",
- "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ=="
- },
- "nopt": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
- "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
- "requires": {
- "abbrev": "^2.0.0"
- }
- },
- "normalize-package-data": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
- "requires": {
- "hosted-git-info": "^7.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- }
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
- },
- "npm-bundled": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz",
- "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==",
- "requires": {
- "npm-normalize-package-bin": "^3.0.0"
- }
- },
- "npm-install-checks": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz",
- "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==",
- "requires": {
- "semver": "^7.1.1"
- }
- },
- "npm-normalize-package-bin": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
- "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ=="
- },
- "npm-package-arg": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz",
- "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==",
- "requires": {
- "hosted-git-info": "^7.0.0",
- "proc-log": "^4.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^5.0.0"
- }
- },
- "npm-packlist": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz",
- "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==",
- "requires": {
- "ignore-walk": "^6.0.4"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "ignore-walk": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz",
- "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==",
- "requires": {
- "minimatch": "^9.0.0"
- }
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "npm-pick-manifest": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz",
- "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==",
- "requires": {
- "npm-install-checks": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "npm-package-arg": "^11.0.0",
- "semver": "^7.3.5"
- }
- },
- "npm-registry-fetch": {
- "version": "17.1.0",
- "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz",
- "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==",
- "requires": {
- "@npmcli/redact": "^2.0.0",
- "jsonparse": "^1.3.1",
- "make-fetch-happen": "^13.0.0",
- "minipass": "^7.0.2",
- "minipass-fetch": "^3.0.0",
- "minizlib": "^2.1.2",
- "npm-package-arg": "^11.0.0",
- "proc-log": "^4.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "requires": {
- "path-key": "^3.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "optional": true
- },
- "nwsapi": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.5.tgz",
- "integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==",
- "dev": true
- },
- "nx": {
- "version": "19.6.2",
- "resolved": "https://registry.npmjs.org/nx/-/nx-19.6.2.tgz",
- "integrity": "sha512-uUC9glC/QDsDhfOSzWl1id9rfUVepVwLhwBGRMeO5K6+Tju7qAsRGZ2NGPoUz6J1AZuWtlKZcr+MOSK2U4+2wQ==",
- "requires": {
- "@napi-rs/wasm-runtime": "0.2.4",
- "@nrwl/tao": "19.6.2",
- "@nx/nx-darwin-arm64": "19.6.2",
- "@nx/nx-darwin-x64": "19.6.2",
- "@nx/nx-freebsd-x64": "19.6.2",
- "@nx/nx-linux-arm-gnueabihf": "19.6.2",
- "@nx/nx-linux-arm64-gnu": "19.6.2",
- "@nx/nx-linux-arm64-musl": "19.6.2",
- "@nx/nx-linux-x64-gnu": "19.6.2",
- "@nx/nx-linux-x64-musl": "19.6.2",
- "@nx/nx-win32-arm64-msvc": "19.6.2",
- "@nx/nx-win32-x64-msvc": "19.6.2",
- "@yarnpkg/lockfile": "^1.1.0",
- "@yarnpkg/parsers": "3.0.0-rc.46",
- "@zkochan/js-yaml": "0.0.7",
- "axios": "^1.7.4",
- "chalk": "^4.1.0",
- "cli-cursor": "3.1.0",
- "cli-spinners": "2.6.1",
- "cliui": "^8.0.1",
- "dotenv": "~16.4.5",
- "dotenv-expand": "~11.0.6",
- "enquirer": "~2.3.6",
- "figures": "3.2.0",
- "flat": "^5.0.2",
- "front-matter": "^4.0.2",
- "fs-extra": "^11.1.0",
- "ignore": "^5.0.4",
- "jest-diff": "^29.4.1",
- "jsonc-parser": "3.2.0",
- "lines-and-columns": "~2.0.3",
- "minimatch": "9.0.3",
- "node-machine-id": "1.1.12",
- "npm-run-path": "^4.0.1",
- "open": "^8.4.0",
- "ora": "5.3.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",
- "yargs": "^17.6.2",
- "yargs-parser": "21.1.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "ora": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz",
- "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==",
- "requires": {
- "bl": "^4.0.3",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-spinners": "^2.5.0",
- "is-interactive": "^1.0.0",
- "log-symbols": "^4.0.0",
- "strip-ansi": "^6.0.0",
- "wcwidth": "^1.0.1"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "object-inspect": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
- "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
- },
- "object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- }
- },
- "object.entries": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
- "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
- }
- },
- "object.fromentries": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
- "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "object.groupby": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz",
- "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1"
- }
- },
- "object.hasown": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
- "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
- "requires": {
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "object.values": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
- "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "requires": {
- "mimic-fn": "^2.1.0"
- }
- },
- "open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
- "requires": {
- "define-lazy-prop": "^2.0.0",
- "is-docker": "^2.1.1",
- "is-wsl": "^2.2.0"
- }
- },
- "optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "dev": true,
- "requires": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
- }
- },
- "ora": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
- "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
- "requires": {
- "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"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "optional": true,
- "requires": {
- "lcid": "^1.0.0"
- }
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="
- },
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "requires": {
- "aggregate-error": "^3.0.0"
- }
- },
- "p-map-series": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz",
- "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q=="
- },
- "p-pipe": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz",
- "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw=="
- },
- "p-queue": {
- "version": "6.6.2",
- "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
- "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
- "requires": {
- "eventemitter3": "^4.0.4",
- "p-timeout": "^3.2.0"
- }
- },
- "p-reduce": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz",
- "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw=="
- },
- "p-timeout": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
- "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
- "requires": {
- "p-finally": "^1.0.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
- },
- "p-waterfall": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz",
- "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==",
- "requires": {
- "p-reduce": "^2.0.0"
- }
- },
- "package-json-from-dist": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
- "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw=="
- },
- "pacote": {
- "version": "18.0.6",
- "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz",
- "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==",
- "requires": {
- "@npmcli/git": "^5.0.0",
- "@npmcli/installed-package-contents": "^2.0.1",
- "@npmcli/package-json": "^5.1.0",
- "@npmcli/promise-spawn": "^7.0.0",
- "@npmcli/run-script": "^8.0.0",
- "cacache": "^18.0.0",
- "fs-minipass": "^3.0.0",
- "minipass": "^7.0.2",
- "npm-package-arg": "^11.0.0",
- "npm-packlist": "^8.0.0",
- "npm-pick-manifest": "^9.0.0",
- "npm-registry-fetch": "^17.0.0",
- "proc-log": "^4.0.0",
- "promise-retry": "^2.0.1",
- "sigstore": "^2.2.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11"
- },
- "dependencies": {
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
- },
- "parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "requires": {
- "callsites": "^3.0.0"
- }
- },
- "parse-cache-control": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
- "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=",
- "dev": true
- },
- "parse-conflict-json": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz",
- "integrity": "sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==",
- "requires": {
- "json-parse-even-better-errors": "^3.0.0",
- "just-diff": "^6.0.0",
- "just-diff-apply": "^5.2.0"
- },
- "dependencies": {
- "json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ=="
- }
- }
- },
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "requires": {
- "@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"
- },
- "dependencies": {
- "lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
- }
- }
- },
- "parse-path": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz",
- "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==",
- "requires": {
- "protocols": "^2.0.0"
- }
- },
- "parse-url": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz",
- "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==",
- "requires": {
- "parse-path": "^7.0.0"
- }
- },
- "parse5": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
- "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
- "dev": true,
- "requires": {
- "entities": "^4.4.0"
- },
- "dependencies": {
- "entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "dev": true
- }
- }
- },
- "path": {
- "version": "0.12.7",
- "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
- "requires": {
- "process": "^0.11.1",
- "util": "^0.10.3"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "util": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
- "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
- "requires": {
- "inherits": "2.0.3"
- }
- }
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- },
- "path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "requires": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- }
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
- },
- "pathval": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
- "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
- "dev": true
- },
- "picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
- },
- "pify": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
- "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA=="
- },
- "pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg=="
- },
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "requires": {
- "find-up": "^4.0.0"
- }
- },
- "pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA=="
- },
- "postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
- "requires": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- }
- },
- "postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "requires": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- }
- },
- "prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
- "dev": true
- },
- "prettier": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
- "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
- "dev": true
- },
- "prettier-linter-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
- "dev": true,
- "requires": {
- "fast-diff": "^1.1.2"
- }
- },
- "pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "requires": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
- },
- "react-is": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
- }
- }
- },
- "pretty-quick": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-4.0.0.tgz",
- "integrity": "sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==",
- "dev": true,
- "requires": {
- "execa": "^5.1.1",
- "find-up": "^5.0.0",
- "ignore": "^5.3.0",
- "mri": "^1.2.0",
- "picocolors": "^1.0.0",
- "picomatch": "^3.0.1",
- "tslib": "^2.6.2"
- },
- "dependencies": {
- "execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "requires": {
- "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"
- }
- },
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "picomatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
- "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
- "dev": true
- }
- }
- },
- "proc-log": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
- "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA=="
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "proggy": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz",
- "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A=="
- },
- "promise": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz",
- "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==",
- "dev": true,
- "requires": {
- "asap": "~2.0.6"
- }
- },
- "promise-all-reject-late": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz",
- "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw=="
- },
- "promise-call-limit": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.1.tgz",
- "integrity": "sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg=="
- },
- "promise-inflight": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="
- },
- "promise-retry": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
- "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
- "requires": {
- "err-code": "^2.0.2",
- "retry": "^0.12.0"
- }
- },
- "prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "requires": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- }
- },
- "promzard": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/promzard/-/promzard-1.0.2.tgz",
- "integrity": "sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==",
- "requires": {
- "read": "^3.0.1"
- }
- },
- "prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "prop-types-extra": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
- "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==",
- "requires": {
- "react-is": "^16.3.2",
- "warning": "^4.0.0"
- }
- },
- "protocols": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz",
- "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q=="
- },
- "proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
- },
- "psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
- },
- "pure-rand": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz",
- "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA=="
- },
- "qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "requires": {
- "side-channel": "^1.0.4"
- }
- },
- "querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
- "dev": true
- },
- "queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
- },
- "quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g=="
- },
- "react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
- "requires": {
- "loose-envify": "^1.1.0"
- }
- },
- "react-bootstrap": {
- "version": "2.10.5",
- "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.5.tgz",
- "integrity": "sha512-XueAOEn64RRkZ0s6yzUTdpFtdUXs5L5491QU//8ZcODKJNDLt/r01tNyriZccjgRImH1REynUc9pqjiRMpDLWQ==",
- "requires": {
- "@babel/runtime": "^7.24.7",
- "@restart/hooks": "^0.4.9",
- "@restart/ui": "^1.6.9",
- "@types/react-transition-group": "^4.4.6",
- "classnames": "^2.3.2",
- "dom-helpers": "^5.2.1",
- "invariant": "^2.2.4",
- "prop-types": "^15.8.1",
- "prop-types-extra": "^1.1.0",
- "react-transition-group": "^4.4.5",
- "uncontrollable": "^7.2.1",
- "warning": "^4.0.3"
- }
- },
- "react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
- "requires": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
- }
- },
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
- "react-lifecycles-compat": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
- "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
- },
- "react-transition-group": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
- "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
- "requires": {
- "@babel/runtime": "^7.5.5",
- "dom-helpers": "^5.0.1",
- "loose-envify": "^1.4.0",
- "prop-types": "^15.6.2"
- }
- },
- "read": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/read/-/read-3.0.1.tgz",
- "integrity": "sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==",
- "requires": {
- "mute-stream": "^1.0.0"
- },
- "dependencies": {
- "mute-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz",
- "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA=="
- }
- }
- },
- "read-cmd-shim": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz",
- "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q=="
- },
- "read-package-json-fast": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
- "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
- "requires": {
- "json-parse-even-better-errors": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- },
- "dependencies": {
- "json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ=="
- }
- }
- },
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
- "requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- },
- "dependencies": {
- "hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
- },
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- }
- },
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "requires": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
- "path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "requires": {
- "pify": "^3.0.0"
- }
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="
- },
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
- }
- }
- },
- "read-pkg-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==",
- "requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww=="
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
- }
- }
- },
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "readdirp": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
- "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA=="
- },
- "redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
- "requires": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
- }
- },
- "reflect.getprototypeof": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz",
- "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==",
- "requires": {
- "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"
- }
- },
- "regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
- },
- "regenerate-unicode-properties": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz",
- "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==",
- "dev": true,
- "requires": {
- "regenerate": "^1.4.2"
- }
- },
- "regenerator-runtime": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
- "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
- },
- "regenerator-transform": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
- "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.8.4"
- }
- },
- "regexp.prototype.flags": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
- "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "set-function-name": "^2.0.0"
- }
- },
- "regexpu-core": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
- "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
- "dev": true,
- "requires": {
- "@babel/regjsgen": "^0.8.0",
- "regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.1.0",
- "regjsparser": "^0.9.1",
- "unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.1.0"
- }
- },
- "regjsparser": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
- "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
- "dev": true,
- "requires": {
- "jsesc": "~0.5.0"
- },
- "dependencies": {
- "jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
- "dev": true
- }
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
- },
- "require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
- },
- "requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true
- },
- "resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
- },
- "resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "requires": {
- "resolve-from": "^5.0.0"
- }
- },
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
- },
- "resolve-pkg-maps": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="
- },
- "resolve.exports": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
- "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg=="
- },
- "restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "requires": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- }
- },
- "retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="
- },
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="
- },
- "run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "requires": {
- "queue-microtask": "^1.2.2"
- }
- },
- "rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
- "requires": {
- "tslib": "^2.1.0"
- }
- },
- "safe-array-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz",
- "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==",
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "isarray": "^2.0.5"
- },
- "dependencies": {
- "isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
- }
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "safe-regex-test": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
- "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
- "is-regex": "^1.1.4"
- }
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "sass": {
- "version": "1.79.4",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.4.tgz",
- "integrity": "sha512-K0QDSNPXgyqO4GZq2HO5Q70TLxTH6cIT59RdoCHMivrC8rqzaTw5ab9prjz9KUN1El4FLXrBXJhik61JR4HcGg==",
- "requires": {
- "chokidar": "^4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- }
- },
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
- "saxes": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
- "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
- "dev": true,
- "requires": {
- "xmlchars": "^2.2.0"
- }
- },
- "scheduler": {
- "version": "0.23.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
- "requires": {
- "loose-envify": "^1.1.0"
- }
- },
- "semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
- },
- "set-function-length": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
- "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
- "requires": {
- "define-data-property": "^1.1.1",
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
- }
- },
- "set-function-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
- "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
- "requires": {
- "define-data-property": "^1.0.1",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.0"
- }
- },
- "shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "requires": {
- "kind-of": "^6.0.2"
- }
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
- "sigstore": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz",
- "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==",
- "requires": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "@sigstore/sign": "^2.3.2",
- "@sigstore/tuf": "^2.3.4",
- "@sigstore/verify": "^1.2.1"
- }
- },
- "sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
- },
- "slice-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
- "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "astral-regex": "^2.0.0",
- "is-fullwidth-code-point": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- }
- }
- },
- "smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
- },
- "socks": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
- "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
- "requires": {
- "ip-address": "^9.0.5",
- "smart-buffer": "^4.2.0"
- }
- },
- "socks-proxy-agent": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz",
- "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==",
- "requires": {
- "agent-base": "^7.1.1",
- "debug": "^4.3.4",
- "socks": "^2.8.3"
- },
- "dependencies": {
- "agent-base": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
- "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
- "requires": {
- "debug": "^4.3.4"
- }
- }
- }
- },
- "sort-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
- "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==",
- "requires": {
- "is-plain-obj": "^1.0.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
- },
- "source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
- "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.20",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz",
- "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw=="
- },
- "split": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
- "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
- "requires": {
- "through": "2"
- }
- },
- "split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "requires": {
- "readable-stream": "^3.0.0"
- }
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
- },
- "ssri": {
- "version": "10.0.6",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
- "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
- "requires": {
- "minipass": "^7.0.3"
- },
- "dependencies": {
- "minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
- }
- }
- },
- "stack-utils": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
- "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
- "requires": {
- "escape-string-regexp": "^2.0.0"
- },
- "dependencies": {
- "escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
- }
- }
- },
- "stream-browserify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
- "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
- "requires": {
- "inherits": "~2.0.4",
- "readable-stream": "^3.5.0"
- }
- },
- "stream-events": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz",
- "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==",
- "dev": true,
- "requires": {
- "stubs": "^3.0.0"
- }
- },
- "streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "requires": {
- "safe-buffer": "~5.2.0"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "requires": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- }
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- }
- }
- },
- "string-width-cjs": {
- "version": "npm:string-width@4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- }
- }
- },
- "string.prototype.matchall": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
- "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
- "requires": {
- "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"
- }
- },
- "string.prototype.trim": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
- "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "string.prototype.trimend": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
- "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "string.prototype.trimstart": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
- "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-ansi-cjs": {
- "version": "npm:strip-ansi@6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
- },
- "strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
- },
- "strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "requires": {
- "min-indent": "^1.0.0"
- }
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
- },
- "strnum": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
- "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
- },
- "strong-log-transformer": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz",
- "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==",
- "requires": {
- "duplexer": "^0.1.1",
- "minimist": "^1.2.0",
- "through": "^2.3.4"
- }
- },
- "stubs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz",
- "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=",
- "dev": true
- },
- "styled-jsx": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
- "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
- "requires": {
- "client-only": "0.0.1"
- }
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
- },
- "symbol-tree": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true
- },
- "sync-request": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz",
- "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==",
- "dev": true,
- "requires": {
- "http-response-object": "^3.0.1",
- "sync-rpc": "^1.2.1",
- "then-request": "^6.0.0"
- }
- },
- "sync-rpc": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz",
- "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==",
- "dev": true,
- "requires": {
- "get-port": "^3.1.0"
- },
- "dependencies": {
- "get-port": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
- "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=",
- "dev": true
- }
- }
- },
- "synckit": {
- "version": "0.8.8",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz",
- "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
- "requires": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
- }
- },
- "table": {
- "version": "6.8.2",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
- "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
- "requires": {
- "ajv": "^8.0.1",
- "lodash.truncate": "^4.4.2",
- "slice-ansi": "^4.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1"
- },
- "dependencies": {
- "ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- }
- }
- },
- "tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
- },
- "tar": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
- "requires": {
- "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"
- },
- "dependencies": {
- "fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "requires": {
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- }
- }
- },
- "tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
- "requires": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- }
- },
- "teeny-request": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz",
- "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==",
- "dev": true,
- "requires": {
- "http-proxy-agent": "^4.0.0",
- "https-proxy-agent": "^5.0.0",
- "node-fetch": "^2.6.1",
- "stream-events": "^1.0.5",
- "uuid": "^8.0.0"
- }
- },
- "temp-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ=="
- },
- "test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "requires": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- }
- },
- "text-extensions": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz",
- "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ=="
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
- },
- "then-request": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz",
- "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==",
- "dev": true,
- "requires": {
- "@types/concat-stream": "^1.6.0",
- "@types/form-data": "0.0.33",
- "@types/node": "^8.0.0",
- "@types/qs": "^6.2.31",
- "caseless": "~0.12.0",
- "concat-stream": "^1.6.0",
- "form-data": "^2.2.0",
- "http-basic": "^8.1.1",
- "http-response-object": "^3.0.1",
- "promise": "^8.0.0",
- "qs": "^6.4.0"
- },
- "dependencies": {
- "@types/node": {
- "version": "8.10.66",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
- "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==",
- "dev": true
- },
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "form-data": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
- "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
- "dev": true,
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "requires": {
- "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"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
- },
- "through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "requires": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "requires": {
- "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"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "tmp": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
- "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w=="
- },
- "tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
- },
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "tough-cookie": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
- "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
- "dev": true,
- "requires": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
- },
- "dependencies": {
- "universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
- "dev": true
- }
- }
- },
- "tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.1"
- }
- },
- "treeverse": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz",
- "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ=="
- },
- "trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw=="
- },
- "ts-api-utils": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
- "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
- "requires": {}
- },
- "tsconfig-paths": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
- "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
- "requires": {
- "json5": "^2.2.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
- }
- }
- },
- "tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
- "tuf-js": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz",
- "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==",
- "requires": {
- "@tufjs/models": "2.0.1",
- "debug": "^4.3.4",
- "make-fetch-happen": "^13.0.1"
- }
- },
- "type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
- "dev": true,
- "requires": {
- "prelude-ls": "~1.1.2"
- }
- },
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
- },
- "type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
- },
- "typed-array-buffer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
- "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1",
- "is-typed-array": "^1.1.10"
- }
- },
- "typed-array-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
- "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
- "requires": {
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
- }
- },
- "typed-array-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
- "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
- "requires": {
- "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"
- }
- },
- "typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
- "requires": {
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
- }
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
- "typescript": {
- "version": "4.9.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
- "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="
- },
- "uglify-js": {
- "version": "3.19.2",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz",
- "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==",
- "optional": true
- },
- "unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
- "requires": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
- }
- },
- "uncontrollable": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
- "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
- "requires": {
- "@babel/runtime": "^7.6.3",
- "@types/react": ">=16.9.11",
- "invariant": "^2.2.4",
- "react-lifecycles-compat": "^3.0.4"
- }
- },
- "unicode-canonical-property-names-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
- "dev": true
- },
- "unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "dev": true,
- "requires": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
- }
- },
- "unicode-match-property-value-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
- "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
- "dev": true
- },
- "unicode-property-aliases-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
- "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
- "dev": true
- },
- "unique-filename": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
- "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==",
- "requires": {
- "unique-slug": "^4.0.0"
- }
- },
- "unique-slug": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz",
- "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==",
- "requires": {
- "imurmurhash": "^0.1.4"
- }
- },
- "universal-user-agent": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
- "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ=="
- },
- "universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="
- },
- "upath": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
- "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w=="
- },
- "update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
- "requires": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dev": true,
- "requires": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
- "urlgrey": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz",
- "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==",
- "dev": true,
- "requires": {
- "fast-url-parser": "^1.1.3"
- }
- },
- "util": {
- "version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
- "requires": {
- "inherits": "^2.0.3",
- "is-arguments": "^1.0.4",
- "is-generator-function": "^1.0.7",
- "is-typed-array": "^1.1.3",
- "which-typed-array": "^1.1.2"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true
- },
- "v8-to-istanbul": {
- "version": "9.1.3",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz",
- "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==",
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^2.0.0"
- },
- "dependencies": {
- "convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
- }
- }
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "validate-npm-package-name": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
- "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ=="
- },
- "w3c-xmlserializer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
- "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
- "dev": true,
- "requires": {
- "xml-name-validator": "^4.0.0"
- }
- },
- "walk-up-path": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
- "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA=="
- },
- "walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "requires": {
- "makeerror": "1.0.12"
- }
- },
- "warning": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
- "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
- "requires": {
- "loose-envify": "^1.0.0"
- }
- },
- "wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "requires": {
- "defaults": "^1.0.3"
- }
- },
- "webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true
- },
- "whatwg-encoding": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
- "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
- "dev": true,
- "requires": {
- "iconv-lite": "0.6.3"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- }
- }
- }
- },
- "whatwg-mimetype": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
- "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
- "dev": true
- },
- "whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
- "dev": true,
- "requires": {
- "tr46": "^3.0.0",
- "webidl-conversions": "^7.0.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
- "requires": {
- "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"
- }
- },
- "which-builtin-type": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
- "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
- "requires": {
- "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"
- },
- "dependencies": {
- "isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
- }
- }
- },
- "which-collection": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
- "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
- "requires": {
- "is-map": "^2.0.1",
- "is-set": "^2.0.1",
- "is-weakmap": "^2.0.1",
- "is-weakset": "^2.0.1"
- }
- },
- "which-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
- "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
- "requires": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.4",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
- }
- },
- "wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "requires": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "window-size": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
- "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
- "optional": true
- },
- "word-wrap": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
- "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
- "dev": true
- },
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- }
- }
- },
- "wrap-ansi-cjs": {
- "version": "npm:wrap-ansi@7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
- "requires": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- }
- },
- "write-json-file": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz",
- "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==",
- "requires": {
- "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"
- },
- "dependencies": {
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
- },
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
- },
- "write-file-atomic": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
- "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
- "requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- }
- }
- },
- "write-pkg": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz",
- "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==",
- "requires": {
- "sort-keys": "^2.0.0",
- "type-fest": "^0.4.1",
- "write-json-file": "^3.2.0"
- },
- "dependencies": {
- "type-fest": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz",
- "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw=="
- }
- }
- },
- "ws": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
- "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
- "dev": true,
- "requires": {}
- },
- "xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
- "dev": true
- },
- "xml2js": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
- "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
- "requires": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- }
- },
- "xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
- },
- "xmlchars": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
- },
- "y18n": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
- "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==",
- "optional": true
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "requires": {
- "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"
- },
- "dependencies": {
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
- }
- }
- },
- "yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
- },
- "yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
- }
- }
-}
diff --git a/package.json b/package.json
deleted file mode 100644
index 125515eb..00000000
--- a/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "private": true,
- "workspaces": [
- "bids-validator",
- "bids-validator-web"
- ],
- "scripts": {
- "lint": "eslint \"./bids-validator/{tests,utils,validators}/**/*.js\"",
- "coverage": "jest --coverage",
- "codecov": "codecov",
- "test": "node bids-validator/bin/test-submodule-exists && jest",
- "postversion": "lerna version prerelease --preid dev --ignore-scripts --yes --force-publish=*",
- "prepublishOnly": "npm run prepublishOnly -w bids-validator",
- "web-dev": "cd bids-validator-web && npm run dev",
- "web-build": "cd bids-validator-web && npm run build",
- "web-start": "cd bids-validator-web && npm run build && npm start",
- "web-export": "npm run web-build && cd bids-validator-web && next build"
- },
- "jest": {
- "testEnvironment": "node",
- "moduleNameMapper": {
- "^uuid$": "uuid"
- },
- "transform": {
- "^.+\\.jsx?$": "babel-jest"
- },
- "testPathIgnorePatterns": [
- "/node_modules/",
- "/bids-validator/src/",
- "/bids-validator/spec/"
- ],
- "transformIgnorePatterns": [
- "node_modules/(?!chai)"
- ]
- },
- "devDependencies": {
- "@babel/core": "^7.22.10",
- "@babel/preset-env": "^7.22.10",
- "codecov": "^3.8.1",
- "eslint": "^8.57.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
- "husky": "^9.1.6",
- "jest": "^29.7.0",
- "jest-environment-jsdom": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "lerna": "^8.1.8",
- "prettier": "^3.3.3",
- "pretty-quick": "^4.0.0"
- },
- "name": "bids-validator-monorepo",
- "husky": {
- "hooks": {
- "pre-commit": "pretty-quick --staged"
- }
- },
- "browser": {
- "assert": false
- }
-}